Skip to content

Commit

Permalink
update[readme]: update readme with more profound information
Browse files Browse the repository at this point in the history
  • Loading branch information
Fredrik Marjoni committed Apr 21, 2026
1 parent 1b22059 commit 8d9da1f
Showing 1 changed file with 71 additions and 39 deletions.
110 changes: 71 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[//]: # (TODO: Fill inn your name and student ID)
[//]: # (TODO: Mappe-2025-Marjoni-fj)

**STUDENT NAME**
**TEAM 5 STUDENT NAMES**
<br>
<li>Emil Fagerjord</li>
<li>Mathea Gjerde</li>
Expand All @@ -14,7 +14,10 @@
## Project description💻

[//]: # (TODO: Write a short description of your project/product here.)
Help-Me-Help (HmH) is a Java desktop application, developed using Maven, designed to help users donate money to legitimate charitable organizations and emergency relief initiatives. The application fetches verified organization data from Innsamlingskontrollen (IK), a non-profit foundation that verifies fundraising activities. Users can create profiles, track their donation history, and browse organizations by status (approved/pending). The application prioritizes security, data persistence, and an intuitive user experience following Don Norman's interaction design principles.
Help-Me-Help (HmH) is a Java desktop application, developed using Maven, designed to help users donate money to legitimate charitable organizations and emergency relief initiatives.
The application fetches verified organization data from Innsamlingskontrollen (IK), a non-profit foundation that verifies fundraising activities.
Users can create profiles, track their donation history, and browse organizations by status (approved/pending).
The application prioritizes security, data persistence, and an intuitive user experience following Don Norman's interaction design principles.

## Key Features

Expand All @@ -35,37 +38,37 @@ All source files are stored under the `src` directory.

<pre>
src/main/java/edu/group5/app/
├── App.java (JavaFX Application entry point)
├── App.java (JavaFX Application entry point)
|
├── control/ (Controllers - business logic)
│ ├── AuthController.java (User login/signup handling)
│ ├── DonationController.java (Donation processing)
│ ├── NavigationController.java (Page navigation)
│ └── OrganizationController.java (Organization data access)
├── control/ (Controllers - business logic)
│ ├── AuthController.java (User login/signup handling)
│ ├── DonationController.java (Donation processing)
│ ├── NavigationController.java (Page navigation)
│ └── OrganizationController.java (Organization data access)
|
├── model/ (Business entities & repositories)
├── model/ (Business entities & repositories)
│ ├── organization/
│ │ ├── Organization.java (Organization entity)
│ │ ├── OrganizationRepository.java (Data access for organizations)
│ │ ├── OrganizationService.java (Business logic)
│ │ └── OrganizationScraper.java (Web scraping - descriptions & logos)
│ │ ├── Organization.java (Organization entity)
│ │ ├── OrganizationRepository.java (Data access for organizations)
│ │ ├── OrganizationService.java (Business logic)
│ │ └── OrganizationScraper.java (Web scraping - descriptions & logos)
│ ├── user/
│ │ ├── User.java (User base class)
│ │ ├── Customer.java (Customer implementation)
│ │ ├── UserRepository.java (Data access for users)
│ │ └── UserService.java (User authentication & registration)
│ │ ├── User.java (User base class)
│ │ ├── Customer.java (Customer implementation)
│ │ ├── UserRepository.java (Data access for users)
│ │ └── UserService.java (User authentication & registration)
│ ├── donation/
│ │ ├── Donation.java (Donation entity)
│ │ ├── DonationRepository.java (Data access for donations)
│ │ └── DonationService.java (Donation processing)
│ │ ├── Donation.java (Donation entity)
│ │ ├── DonationRepository.java (Data access for donations)
│ │ └── DonationService.java (Donation processing)
│ ├── wrapper/
│ │ ├── DbWrapper.java (H2 database connection & operations)
│ │ └── OrgApiWrapper.java (Innsamlingskontrollen API client)
│ ├── AppState.java (Global application state)
│ ├── Repository.java (Base repository interface)
│ └── DBRepository.java (Database repository interface)
│ │ ├── DbWrapper.java (H2 database connection & operations)
│ │ └── OrgApiWrapper.java (Innsamlingskontrollen API client)
│ ├── AppState.java (Global application state)
│ ├── Repository.java (Base repository interface)
│ └── DBRepository.java (Database repository interface)
|
├── view/ (JavaFX UI components)
├── view/ (JavaFX UI components)
│ ├── loginpage/
│ │ ├── LoginPageView.java
│ │ ├── SignUpPageView.java
Expand All @@ -91,7 +94,7 @@ src/main/java/edu/group5/app/
│ └── Header.java
|
└── utils/
└── ParameterValidator.java (Input validation utilities)
└── ParameterValidator.java (Input validation utilities)

src/main/resources/
├── header/
Expand Down Expand Up @@ -139,6 +142,32 @@ src/main/resources/

The JUnit tests are stored under `src/test` and mirror the main package structure. These tests cover both positive and negative test of all classes (except `App.java` and UI classes) and their methods ensuring program reliability according to the specification given in the portofolie project descriptions
<pre>
src/test/java/edu/group5/app/
├── AppTest.java (Application startup tests)
├── control/
│ └── (Controller integration tests - to be added)
├── model/
│ ├── donation/
│ │ ├── DonationRepositoryTest.java (Data access layer tests)
│ │ ├── DonationServiceTest.java (Business logic tests)
│ │ └── DonationTest.java (Entity tests)
│ ├── organization/
│ │ ├── OrganizationRepositoryTest.java (Data access layer tests)
│ │ ├── OrganizationScraperTest.java (Web scraping tests - 86% coverage)
│ │ ├── OrganizationServiceTest.java (Business logic tests)
│ │ └── OrganizationTest.java (Entity tests)
│ ├── user/
│ │ ├── CustomerTest.java (Customer entity tests)
│ │ ├── UserRepositoryTest.java (Data access layer tests)
│ │ └── UserServiceTest.java (Authentication & registration tests)
│ └── wrapper/
│ ├── DbWrapperDonationsTest.java (Database wrapper tests - donations)
│ ├── DbWrapperUserTest.java (Database wrapper tests - users)
│ └── OrgApiWrapperTest.java (API client tests)
├── utils/
│ └── ParameterValidatorTest.java (Input validation tests)
└── view/
└── ViewTest.java (UI component tests)
</pre>

### Maven Layout
Expand Down Expand Up @@ -175,10 +204,10 @@ What is the input and output of the program? What is the expected behaviour of t
Clone the Repository from GitHub

2. **Open the Project:**
Open VS Code and select **File > Open Folder**, navigating to the root folder of the project (containing `pom.xml`).
Open your IDE and select **File > Open Folder**, navigating to the root folder of the project (containing `pom.xml`).

3. **Build the Project:**
Open the terminal in VS Code (`Ctrl + ~`) and run:
Open the terminal in yoru IDE (`Ctrl + ~`) and run:

```bash
mvn clean compile
Expand All @@ -195,14 +224,17 @@ What is the input and output of the program? What is the expected behaviour of t
- Output: JavaFX UI displaying organizations, user profiles, donation confirmations
1. **Excpected behavior:**
<br>
The program allows the user to:
<li>Login/signup with validation</li>
<li>Browse approved organizations from Innsamlingskontrollen API</li>
<li>View organization details (description, logo, status)</li>
<li>Complete donation workflow</li>
<li>View donation history in user profile</li>
<li>Graceful error handling with user-friendly messages</li>
- Login/signup with validation
- Browse approved organizations from Innsamlingskontrollen API
- View organization details (description, logo, status)
- Complete donation workflow
- View donation history in user profile
- Graceful error handling with user-friendly messages
---
## How to run the tests 🧪
Expand All @@ -212,7 +244,7 @@ All test classes mirror the main package structure and are stored in `src/test`
- ### Open the Project
Open VS Code and select **File > Open Folder**, navigating to the root folder of the project (containing `pom.xml`).
Open your IDE and select **File > Open Folder**, navigating to the root folder of the project (containing `pom.xml`).
- ### Run all tests
Expand Down Expand Up @@ -246,9 +278,9 @@ Each report includes:

## References 🔗

[//]: # (TODO: Include references here, if any. For example, if you have used code from the course book, include a reference to the chapter.
Or if you have used code from a website or other source, include a link to the source.)
References are included in the project report.
Innsamlingskontrollen API: <https://app.innsamlingskontrollen.no/api/public/v1/all>
<br>
For more references, they are included in the project report

---
"""

0 comments on commit 8d9da1f

Please sign in to comment.