From 8d9da1f6f0845daa51f245b1b3416425f3aab42d Mon Sep 17 00:00:00 2001 From: Fredrik Marjoni Date: Tue, 21 Apr 2026 21:57:54 +0200 Subject: [PATCH] update[readme]: update readme with more profound information --- README.md | 110 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 71 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 4313ac2..be470d5 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [//]: # (TODO: Fill inn your name and student ID) [//]: # (TODO: Mappe-2025-Marjoni-fj) -**STUDENT NAME** +**TEAM 5 STUDENT NAMES**
  • Emil Fagerjord
  • Mathea Gjerde
  • @@ -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 @@ -35,37 +38,37 @@ All source files are stored under the `src` directory.
     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
    @@ -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/
    @@ -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
     
    +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)
     
    ### Maven Layout @@ -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 @@ -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:** +
    + The program allows the user to: -
  • 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
  • +- 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 πŸ§ͺ @@ -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 @@ -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: +
    +For more references, they are included in the project report --- """