From 2bf176c69c52c269e7ba59d49a554618c991d119 Mon Sep 17 00:00:00 2001 From: Fredrik Jonathan Marjoni Date: Tue, 21 Apr 2026 12:33:16 +0200 Subject: [PATCH 01/10] Update README.md Add skeletal structure for readme --- README.md | 152 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 151 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f186dda..e88f3df 100644 --- a/README.md +++ b/README.md @@ -1 +1,151 @@ -# Help-Me-Help +# Help-Me-Help - IDATT1005 Team 5 Portofolio Project Spring 2026 :octocat: + +[//]: # (TODO: Fill inn your name and student ID) +[//]: # (TODO: Mappe-2025-Marjoni-fj) + +**STUDENT NAME** +
+
  • Emil Fagerjord
  • +
  • Mathea Gjerde
  • +
  • Fredrik Jonathan Marjoni
  • +
  • Lucy Ciara Herud-Thomassen
  • +
    + +## Project descriptionπŸ’» + +[//]: # (TODO: Write a short description of your project/product here.) +This Java-based application, developed using Maven... + +## Project structure πŸ“ + +--- +The project follows a standard Maven layout and is organized into clearly separated packages according to responsibility-driven design (RDD). +All source files are stored under the `src` directory. + +### Main Package Structure (`src/main`) + +
    +
    +
    +[//]: # (TODO: Describe the structure of your project here. How have you used packages in your structure. Where are all sourcefiles stored. Where are all JUnit-test classes stored. etc.) + +### πŸ“¦ Package Responsibilities + +#### Models + +#### Controller + +#### View + +#### Utils + +### JUnit Tests (`src/test`) + +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 +
    +
    + +### Maven Layout + +The project uses the standard Maven directory structure, which ensures: + +* clean separation of source and test files +* compatibility with IDEs such as IntelliJ, VS Code, and Eclipse +* maintainability and easy future extensions (e.g., persistence or additional views) + +--- + +## Link to repositoryπŸ“š + +[//]: # (TODO: Include a link to your GitHub repository here.) +[GitHub Repository - IDATT2003 Mappevurdering 2026](https://github.com/LucyCiara/IDATT2003v26-millions) + +--- + +## How to run the projectπŸ“ + +[//]: # (TODO: Describe how to run your project here. What is the main class? What is the main method? +What is the input and output of the program? What is the expected behaviour of the program?) + +**Requirements:** + +* Java JDK 25 +* Maven +* IDE (Ideally IntelliJ or VSCode with Java Extension Pack) +**Steps:** + +1. **Clone repository** + 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`). + +3. **Build the Project:** + Open the terminal in VS Code (`Ctrl + ~`) and run: + + ```bash + mvn clean compile + +4. **Run the Application:** + Start the program by running the main class: + + ```bash + mvn javafx:run + +5. **Input and Output** + +* Input: +* Output: + +1. **Excpected behavior:** +The program allows the user to: + +--- + +## How to run the tests πŸ§ͺ + +This project uses JUnit 5 for unit testing. +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`). + +* ### Run all tests + + To execute the full test suite, run: + + ```bash + mvn clean test + +This command: + + 1. Cleans old build files + 2. Compiles the main source code + 3. Compiles the tests + 4. Runs all JUnit tests + +--- + +* ### Viewing test results + +After the tests finish, Maven creates detailed reports here: +`target/surefire-reports/` + +Each report includes: + + 1. Test class summaries + 2. Stack traces for any failures + 3. Execution times + 4. Running tests in an IDE + +[//]: # (TODO: Describe how to run the tests here.) + +## 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. + +--- +""" From 3748fc5ead2e20a892209745c0043d19bdebf7ab Mon Sep 17 00:00:00 2001 From: Fredrik Jonathan Marjoni Date: Tue, 21 Apr 2026 15:30:25 +0200 Subject: [PATCH 02/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e88f3df..af2a3dd 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ The project uses the standard Maven directory structure, which ensures: ## Link to repositoryπŸ“š [//]: # (TODO: Include a link to your GitHub repository here.) -[GitHub Repository - IDATT2003 Mappevurdering 2026](https://github.com/LucyCiara/IDATT2003v26-millions) +[GitHub Repository - IDATT1005 Project Spring 2026](https://git.ntnu.no/Group-5/Help-Me-Help) --- From 1b22059237ab6e601fd9a4d7c1e5e3655600e611 Mon Sep 17 00:00:00 2001 From: Fredrik Marjoni Date: Tue, 21 Apr 2026 15:45:31 +0200 Subject: [PATCH 03/10] Update[Readme]: Add more detailed information about the project --- README.md | 139 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 121 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index af2a3dd..4313ac2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Help-Me-Help - IDATT1005 Team 5 Portofolio Project Spring 2026 :octocat: +# Help-Me-Help - IDATT1005 Team 5 Portofolio Project Spring 2026 :octocat: [//]: # (TODO: Fill inn your name and student ID) [//]: # (TODO: Mappe-2025-Marjoni-fj) @@ -14,7 +14,16 @@ ## Project descriptionπŸ’» [//]: # (TODO: Write a short description of your project/product here.) -This Java-based application, developed using Maven... +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 + +- User authentication and profile management +- Browse verified and pending organizations with descriptions and logos +- Make donations to organizations +- View donation history +- Data persistence using H2 database +- Web scraping of organization information (descriptions, logos) from external sources ## Project structure πŸ“ @@ -25,19 +34,106 @@ All source files are stored under the `src` directory. ### Main Package Structure (`src/main`)
    -
    +src/main/java/edu/group5/app/
    +β”œβ”€β”€ 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)
    +|
    +β”œβ”€β”€ 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)
    +β”‚ β”œβ”€β”€ user/
    +β”‚ β”‚ β”œβ”€β”€ 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)
    +β”‚ β”œβ”€β”€ 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)
    +|
    +β”œβ”€β”€ view/ (JavaFX UI components)
    +β”‚ β”œβ”€β”€ loginpage/
    +β”‚ β”‚ β”œβ”€β”€ LoginPageView.java
    +β”‚ β”‚ β”œβ”€β”€ SignUpPageView.java
    +β”‚ β”‚ β”œβ”€β”€ LoginHeader.java
    +β”‚ β”‚ └── loginpage.css
    +β”‚ β”œβ”€β”€ homepage/
    +β”‚ β”‚ └── HomePageView.java
    +β”‚ β”œβ”€β”€ causespage/
    +β”‚ β”‚ β”œβ”€β”€ CausesPageView.java
    +β”‚ β”‚ β”œβ”€β”€ OrganizationCard.java
    +β”‚ β”‚ └── causespage.css
    +β”‚ β”œβ”€β”€ organizationpage/
    +β”‚ β”‚ β”œβ”€β”€ OrganizationPageView.java
    +β”‚ β”‚ └── organizationpage.css
    +β”‚ β”œβ”€β”€ donationpage/
    +β”‚ β”‚ β”œβ”€β”€ DonationPageView.java
    +β”‚ β”‚ β”œβ”€β”€ PaymentCompletePageView.java
    +β”‚ β”‚ └── donationpage.css
    +β”‚ β”œβ”€β”€ userpage/
    +β”‚ β”‚ └── UserPageView.java
    +β”‚ β”œβ”€β”€ aboutuspage/
    +β”‚ β”‚ └── AboutUsView.java
    +β”‚ └── Header.java
    +|
    +└── utils/
    +└── ParameterValidator.java (Input validation utilities)
    +
    +src/main/resources/
    +β”œβ”€β”€ header/
    +β”‚   └── images/
    +β”‚       └── hmh-logo.png
    +β”œβ”€β”€ loginpage/
    +β”‚   └── loginpage.css
    +β”œβ”€β”€ homepage/
    +β”‚   └── homepage.css
    +β”œβ”€β”€ causespage/
    +β”‚   └── causespage.css
    +β”œβ”€β”€ organizationpage/
     
    + [//]: # (TODO: Describe the structure of your project here. How have you used packages in your structure. Where are all sourcefiles stored. Where are all JUnit-test classes stored. etc.) ### πŸ“¦ Package Responsibilities -#### Models +#### Models: Business logic and data entities + +- `Organization`: Represents a charity/relief organization with status, logo, description +- `User` & `Customer`: User profiles with authentication +- `Donation`: Records of user donations +- Services and Repositories implement the business logic and data access layers -#### Controller +#### Controller: Bridge between UI and business logic -#### View +- `AuthController`: Handles user login/registration with password hashing (BCrypt) +- `OrganizationController`: Manages organization data retrieval and caching +- `DonationController`: Processes donations and updates user history +- `NavigationController`: Coordinates page navigation -#### Utils +#### View: JavaFX UI components + +- Login/signup pages with form validation +- Organization browsing with filtering (approved/pending) +- Donation flow with payment confirmation +- User profile and donation history + +#### Utils: Helper functions + +- `ParameterValidator`: Validates null, empty, and positive values ### JUnit Tests (`src/test`) @@ -49,9 +145,9 @@ The JUnit tests are stored under `src/test` and mirror the main package structur The project uses the standard Maven directory structure, which ensures: -* clean separation of source and test files -* compatibility with IDEs such as IntelliJ, VS Code, and Eclipse -* maintainability and easy future extensions (e.g., persistence or additional views) +- clean separation of source and test files +- compatibility with IDEs such as IntelliJ, VS Code, and Eclipse +- maintainability and easy future extensions (e.g., persistence or additional views) --- @@ -69,9 +165,10 @@ What is the input and output of the program? What is the expected behaviour of t **Requirements:** -* Java JDK 25 -* Maven -* IDE (Ideally IntelliJ or VSCode with Java Extension Pack) +- Java JDK 25 +- Maven +- IDE (Ideally IntelliJ or VSCode with Java Extension Pack) + **Steps:** 1. **Clone repository** @@ -94,12 +191,18 @@ What is the input and output of the program? What is the expected behaviour of t 5. **Input and Output** -* Input: -* Output: +- Input: User interactions (login, organization selection, donation amount) +- 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
  • --- ## How to run the tests πŸ§ͺ @@ -107,11 +210,11 @@ The program allows the user to: This project uses JUnit 5 for unit testing. All test classes mirror the main package structure and are stored in `src/test` -* ### Open the Project +- ### Open the Project Open VS Code and select **File > Open Folder**, navigating to the root folder of the project (containing `pom.xml`). -* ### Run all tests +- ### Run all tests To execute the full test suite, run: @@ -127,7 +230,7 @@ This command: --- -* ### Viewing test results +- ### Viewing test results After the tests finish, Maven creates detailed reports here: `target/surefire-reports/` From 8d9da1f6f0845daa51f245b1b3416425f3aab42d Mon Sep 17 00:00:00 2001 From: Fredrik Marjoni Date: Tue, 21 Apr 2026 21:57:54 +0200 Subject: [PATCH 04/10] 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 --- """ From 7ddebccb69dad14c224a80c4a6c4553e2dfca137 Mon Sep 17 00:00:00 2001 From: Fredrik Marjoni Date: Tue, 21 Apr 2026 22:09:09 +0200 Subject: [PATCH 05/10] update[*Readme]: update readme with better show of project structure and better display of references --- README.md | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index be470d5..9425d62 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Help-Me-Help - IDATT1005 Team 5 Portofolio Project Spring 2026 :octocat: +# Help-Me-Help - IDATT1005 Team 5 Portfolio Project Spring 2026 :octocat: [//]: # (TODO: Fill inn your name and student ID) [//]: # (TODO: Mappe-2025-Marjoni-fj) @@ -96,17 +96,20 @@ src/main/java/edu/group5/app/ └── utils/ └── ParameterValidator.java (Input validation utilities) -src/main/resources/ +src/main/resources/ (Static assets - CSS, images, etc.) β”œβ”€β”€ header/ β”‚ └── images/ -β”‚ └── hmh-logo.png +β”‚ └── hmh-logo.png (Application logo) β”œβ”€β”€ loginpage/ -β”‚ └── loginpage.css +β”‚ └── loginpage.css (Login/signup page styling) β”œβ”€β”€ homepage/ -β”‚ └── homepage.css +β”‚ └── homepage.css (Home page styling) β”œβ”€β”€ causespage/ -β”‚ └── causespage.css +β”‚ └── causespage.css (Organization browsing styling) β”œβ”€β”€ organizationpage/ +β”‚ └── organizationpage.css (Organization details styling) +└── donationpage/ + └── donationpage.css (Donation flow styling)
    [//]: # (TODO: Describe the structure of your project here. How have you used packages in your structure. Where are all sourcefiles stored. Where are all JUnit-test classes stored. etc.) @@ -207,7 +210,7 @@ What is the input and output of the program? What is the expected behaviour of t 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 yoru IDE (`Ctrl + ~`) and run: + Open the terminal in your IDE (`Ctrl + ~`) and run: ```bash mvn clean compile @@ -223,7 +226,7 @@ What is the input and output of the program? What is the expected behaviour of t - Input: User interactions (login, organization selection, donation amount) - Output: JavaFX UI displaying organizations, user profiles, donation confirmations -1. **Excpected behavior:** +1. **Expected behavior:**
    The program allows the user to: @@ -278,9 +281,10 @@ Each report includes: ## References πŸ”— -Innsamlingskontrollen API: -
    -For more references, they are included in the project report +For more references and project details, kindly refer yourself to the project report and Wiki pages + +- **GitHub Wiki**: [GitHub Wiki](https://git.ntnu.no/Group-5/Help-Me-Help/wiki) + +- **Innsamlingskontrollen API**: [Innsamlingskontrollen](https://app.innsamlingskontrollen.no/api/public/v1/all) --- -""" From 64088ce2104fb59ba161ee3497b15cef399ee3fb Mon Sep 17 00:00:00 2001 From: Fredrik Jonathan Marjoni Date: Wed, 22 Apr 2026 09:11:26 +0200 Subject: [PATCH 06/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9425d62..5e1b8da 100644 --- a/README.md +++ b/README.md @@ -265,7 +265,7 @@ This command: --- -- ### Viewing test results +### Viewing test results After the tests finish, Maven creates detailed reports here: `target/surefire-reports/` From 88f566319b1c4b3c59275a1ee6815f45bbab8a83 Mon Sep 17 00:00:00 2001 From: Lucy Ciara Herud-Thomassen <86323303+LucyCiara@users.noreply.github.com> Date: Wed, 22 Apr 2026 19:26:27 +0200 Subject: [PATCH 07/10] docs[README]: clean up TODOs --- README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index 5e1b8da..7d77679 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,6 @@ # Help-Me-Help - IDATT1005 Team 5 Portfolio Project Spring 2026 :octocat: - -[//]: # (TODO: Fill inn your name and student ID) -[//]: # (TODO: Mappe-2025-Marjoni-fj) - **TEAM 5 STUDENT NAMES** +
  • Emil Fagerjord
  • Mathea Gjerde
  • @@ -13,7 +10,6 @@ ## 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). From 1d94ded1a4f1725f33180213fb0ee76619773808 Mon Sep 17 00:00:00 2001 From: Lucy Ciara Herud-Thomassen <86323303+LucyCiara@users.noreply.github.com> Date: Thu, 23 Apr 2026 12:35:22 +0200 Subject: [PATCH 08/10] chore&update[README]: update installation guide and remove TODOs --- README.md | 54 +++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 7d77679..a15b28c 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,6 @@ src/main/resources/ (Static assets - CSS, images, └── donationpage.css (Donation flow styling) -[//]: # (TODO: Describe the structure of your project here. How have you used packages in your structure. Where are all sourcefiles stored. Where are all JUnit-test classes stored. etc.) ### πŸ“¦ Package Responsibilities @@ -177,47 +176,49 @@ The project uses the standard Maven directory structure, which ensures: - compatibility with IDEs such as IntelliJ, VS Code, and Eclipse - maintainability and easy future extensions (e.g., persistence or additional views) ---- - ## Link to repositoryπŸ“š -[//]: # (TODO: Include a link to your GitHub repository here.) -[GitHub Repository - IDATT1005 Project Spring 2026](https://git.ntnu.no/Group-5/Help-Me-Help) - ---- +https://git.ntnu.no/Group-5/Help-Me-Help ## How to run the projectπŸ“ -[//]: # (TODO: Describe how to run your project here. What is the main class? What is the main method? -What is the input and output of the program? What is the expected behaviour of the program?) - **Requirements:** - Java JDK 25 - Maven -- IDE (Ideally IntelliJ or VSCode with Java Extension Pack) +- JavaFX SDK 25.0.1-- -**Steps:** +**Run With Maven:** (Windows + Mac + Linux) -1. **Clone repository** - Clone the Repository from GitHub +1. **Download and Unzip Project:** + Download project zip from the repository. -2. **Open the Project:** - Open your IDE and select **File > Open Folder**, navigating to the root folder of the project (containing `pom.xml`). +2. **Navigate to Project Folder:** + Navigate to project folder in the terminal. + + ```bash + cd path/to/project/ (linux + mac) + cd path\to\project\ (windows) + ``` -3. **Build the Project:** - Open the terminal in your IDE (`Ctrl + ~`) and run: +3. **Run the Application:** + Start the program by running the main class: + + ```bash + mvn javafx:run + ``` + ``` - ```bash - mvn clean compile - -4. **Run the Application:** - Start the program by running the main class: +**Run From JAR: (Windows) + +1. Download Project JAR: + Go to repository and download the JAR. + +2. Run the JAR in Terminal: ```bash - mvn javafx:run - -5. **Input and Output** + java --module-path "path\to\javafx\sdk" --add-modules javafx.controls -jar path\to\jar.jar + - Input: User interactions (login, organization selection, donation amount) - Output: JavaFX UI displaying organizations, user profiles, donation confirmations @@ -273,7 +274,6 @@ Each report includes: 3. Execution times 4. Running tests in an IDE -[//]: # (TODO: Describe how to run the tests here.) ## References πŸ”— From 17470d8e2b4c0e7f0a676c293423043603375a4e Mon Sep 17 00:00:00 2001 From: Fredrik Marjoni Date: Thu, 23 Apr 2026 12:41:06 +0200 Subject: [PATCH 09/10] fix[readme]: change interface to abstract when elaborating project structure --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a15b28c..45d2bd0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # Help-Me-Help - IDATT1005 Team 5 Portfolio Project Spring 2026 :octocat: + **TEAM 5 STUDENT NAMES**
    @@ -61,8 +62,8 @@ src/main/java/edu/group5/app/ β”‚ β”‚ β”œβ”€β”€ 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) +β”‚ β”œβ”€β”€ Repository.java (Base repository abstract) +β”‚ └── DBRepository.java (Database repository abstract) | β”œβ”€β”€ view/ (JavaFX UI components) β”‚ β”œβ”€β”€ loginpage/ @@ -108,7 +109,6 @@ src/main/resources/ (Static assets - CSS, images, └── donationpage.css (Donation flow styling) - ### πŸ“¦ Package Responsibilities #### Models: Business logic and data entities @@ -178,7 +178,7 @@ The project uses the standard Maven directory structure, which ensures: ## Link to repositoryπŸ“š -https://git.ntnu.no/Group-5/Help-Me-Help + ## How to run the projectπŸ“ @@ -207,6 +207,7 @@ https://git.ntnu.no/Group-5/Help-Me-Help ```bash mvn javafx:run ``` + ``` @@ -216,6 +217,7 @@ https://git.ntnu.no/Group-5/Help-Me-Help Go to repository and download the JAR. 2. Run the JAR in Terminal: + ```bash java --module-path "path\to\javafx\sdk" --add-modules javafx.controls -jar path\to\jar.jar @@ -274,7 +276,6 @@ Each report includes: 3. Execution times 4. Running tests in an IDE - ## References πŸ”— For more references and project details, kindly refer yourself to the project report and Wiki pages From 02d4379375b9f92cf2f7afa690f8fb8b337b1e68 Mon Sep 17 00:00:00 2001 From: Fredrik Marjoni Date: Thu, 23 Apr 2026 12:43:24 +0200 Subject: [PATCH 10/10] fix[readme]: fix markdown styling in readme --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 45d2bd0..ac54a61 100644 --- a/README.md +++ b/README.md @@ -208,10 +208,7 @@ The project uses the standard Maven directory structure, which ensures: mvn javafx:run ``` - ``` - - -**Run From JAR: (Windows) +**Run From JAR: (Windows)** 1. Download Project JAR: Go to repository and download the JAR.