-
Notifications
You must be signed in to change notification settings - Fork 0
Testing
Fredrik Jonathan Marjoni edited this page Apr 21, 2026
·
6 revisions
Help-Me-Help/
│
├── ROOT CONFIGURATION FILES
│ ├── pom.xml Maven build config (JUnit, JavaFX, Jackson, JSoup, H2, Spring Security)
│ ├── README.md Project documentation (Getting started, structure, references)
│ ├── .gitignore Git ignore rules
│ ├── google_checks.xml Checkstyle code quality rules
│ ├── dependency-reduced-pom.xml Auto-generated Maven file
│ ├── help-me-help.mv.db H2 database (runtime created)
│ └── help-me-help.trace.db H2 database trace logs
│
├── .github/ GitHub Configuration
│ ├── workflows/
│ │ └── main.yaml CI/CD Pipeline (Build, Test, Package jobs)
│ └── java-upgrade/ Java upgrade tracking hooks
│ └── hooks/scripts/
│ ├── recordToolUse.ps1 PowerShell tracking script
│ └── recordToolUse.sh Bash tracking script
│
├── .idea/ IntelliJ IDE Configuration
│ ├── checkstyle-idea.xml Checkstyle settings
│ ├── compiler.xml Compiler settings (Java 25)
│ ├── encodings.xml UTF-8 encoding config
│ ├── jarRepositories.xml Maven repositories
│ ├── misc.xml SDK configuration
│ ├── vcs.xml Version control settings
│ └── workspace.xml IDE workspace state
│
├── .vscode/ VSCode Configuration
│ └── settings.json Editor settings
│
├── target/ Build Artifacts (Generated, NOT in Git)
│ ├── classes/ Compiled .class files & resources
│ ├── test-classes/ Compiled test .class files
│ ├── surefire-reports/ JUnit test result reports (XML)
│ ├── generated-sources/ Generated source code
│ ├── generated-test-sources/ Generated test source code
│ └── maven-status/ Maven compilation metadata
│
└── src/ SOURCE CODE
│
├── main/
│ ├── java/edu/group5/app/ APPLICATION SOURCE CODE (35 files, 4,186 LOC)
│ │ │
│ │ ├── App.java JavaFX Application entry point
│ │ │ - Initializes all dependencies
│ │ │ - Sets up database and API connections
│ │ │ - Launches UI
│ │ │
│ │ ├── control/ CONTROLLERS (4 files)
│ │ │ ├── NavigationController.java Main navigation & page routing (8 page views)
│ │ │ ├── AuthController.java User login/signup/logout handling
│ │ │ ├── DonationController.java Donation processing & history
│ │ │ └── OrganizationController.java Organization data retrieval & filtering
│ │ │
│ │ ├── model/ BUSINESS LOGIC LAYER (15 files)
│ │ │ ├── AppState.java Global application state (current user, org, donation)
│ │ │ ├── Repository.java Generic base repository interface
│ │ │ ├── DBRepository.java Database repository base interface
│ │ │ │
│ │ │ ├── donation/ Donation domain (3 files)
│ │ │ │ ├── Donation.java Record entity (donationId, userId, orgId, amount, date, paymentMethod)
│ │ │ │ ├── DonationRepository.java Data access layer (CRUD, filtering, sorting)
│ │ │ │ └── DonationService.java Business logic layer (donation processing)
│ │ │ │
│ │ │ ├── organization/ Organization domain (4 files)
│ │ │ │ ├── Organization.java Record entity (orgNumber, name, trusted, url, description, logoUrl)
│ │ │ │ ├── OrganizationRepository.java Data access layer (CRUD, filtering by status)
│ │ │ │ ├── OrganizationService.java Business logic layer (org retrieval with logos)
│ │ │ │ └── OrganizationScraper.java Web scraping layer (fetch descriptions & logos)
│ │ │ │ - fetchDescription(url) → parseDescription(Document)
│ │ │ │ - fetchLogoUrl(url) → parseLogoUrl(Document)
│ │ │ │ - ConcurrentHashMap caching for performance
│ │ │ │
│ │ │ ├── user/ User domain (4 files)
│ │ │ │ ├── User.java Abstract base class (userId, name, email, passwordHash)
│ │ │ │ ├── Customer.java Extends User (customer-specific preferences)
│ │ │ │ ├── UserRepository.java Data access layer (authentication, user lookup)
│ │ │ │ └── UserService.java Business logic (registration with BCrypt hashing)
│ │ │ │
│ │ │ └── wrapper/ External API Integration (3 files)
│ │ │ ├── Wrapper.java Abstract base wrapper interface
│ │ │ ├── DbWrapper.java H2 database operations (JDBC connections)
│ │ │ └── OrgApiWrapper.java Innsamlingskontrollen API client (HTTP/JSON)
│ │ │
│ │ ├── view/ JAVAFX UI LAYER (9 files)
│ │ │ ├── Header.java Common header component (logo, nav, profile)
│ │ │ │
│ │ │ ├── loginpage/ Authentication UI (3 files)
│ │ │ │ ├── LoginPageView.java Login form with email/password
│ │ │ │ ├── LoginHeader.java Login page specific header
│ │ │ │ └── SignUpPageView.java Registration form with validation
│ │ │ │
│ │ │ ├── homepage/ Dashboard (1 file)
│ │ │ │ └── HomePageView.java Main landing page after login
│ │ │ │
│ │ │ ├── causespage/ Organization Browsing (2 files)
│ │ │ │ ├── CausesPageView.java Organization list with search/filter
│ │ │ │ └── OrganizationCard.java Reusable org card component
│ │ │ │
│ │ │ ├── organizationpage/ Organization Details (1 file)
│ │ │ │ └── OrganizationPageView.java Full org info + logo + description
│ │ │ │
│ │ │ ├── donationpage/ Donation Flow (2 files)
│ │ │ │ ├── DonationPageView.java Donation form (amount, payment method)
│ │ │ │ └── PaymentCompletePageView.java Confirmation page
│ │ │ │
│ │ │ ├── aboutuspage/ About Page (1 file)
│ │ │ │ └── AboutUsView.java Project information & team
│ │ │ │
│ │ │ └── userpage/ User Profile (1 file)
│ │ │ └── UserPageView.java User info + donation history
│ │ │
│ │ └── utils/ UTILITIES (1 file)
│ │ └── ParameterValidator.java Static validation methods
│ │ - objectChecker() - null validation
│ │ - stringChecker() - empty/null string validation
│ │ - intChecker() - positive integer validation
│ │
│ └── resources/ UI & DATA ASSETS (22 files)
│ ├── init.sql Database schema initialization
│ ├── test_init.sql Test database setup
│ │
│ ├── header/ Header component styling & assets
│ │ ├── header.css Navigation styling
│ │ └── images/
│ │ ├── hmh-logo.png Application logo
│ │ └── avatar.png User avatar icon
│ │
│ ├── loginpage/ Authentication UI styling
│ │ ├── login.css Login form styling
│ │ ├── signup.css Registration form styling
│ │ ├── login-image.jpg Login page background image
│ │ └── signup-image.png Signup page background image
│ │
│ ├── homepage/ Home page styling
│ │ ├── homepage.css Landing page styling
│ │ └── images/
│ │ └── charityimage.jpg Hero image
│ │
│ ├── causespage/ Organization listing styling
│ │ ├── browsepage.css Browse page styling
│ │ ├── browse_org.css Organization card styling
│ │ └── images/
│ │ ├── children_of_shambala.png Sample org logo
│ │ └── kfum_kfum_global.png Sample org logo
│ │
│ ├── organizationpage/ Organization details styling
│ │ └── organizationpage.css Org page styling
│ │
│ ├── donationpage/ Donation flow styling
│ │ ├── donation.css Donation form styling
│ │ ├── paymentcomplete.css Confirmation page styling
│ │ └── Payment Complete.png Confirmation icon
│ │
│ ├── userpage/ User profile styling
│ │ ├── userpage.css Profile page styling
│ │ └── account_circle.png Account icon
│ │
│ └── verified_check.png Verified organization icon
│
└── test/ TEST SUITE (16 files, 2,050 LOC, 86%+ coverage)
└── java/edu/group5/app/
│
├── AppTest.java Application initialization tests
│
├── model/ DOMAIN LOGIC TESTS
│ ├── donation/ Donation domain tests (3 files)
│ │ ├── DonationTest.java Entity tests
│ │ ├── DonationRepositoryTest.java CRUD & filtering tests
│ │ └── DonationServiceTest.java Business logic tests
│ │
│ ├── organization/ Organization domain tests (4 files)
│ │ ├── OrganizationTest.java Entity tests
│ │ ├── OrganizationRepositoryTest.java CRUD & filtering tests
│ │ ├── OrganizationServiceTest.java Business logic tests
│ │ └── OrganizationScraperTest.java Web scraping tests (86% coverage)
│ │ - Null/blank URL tests
│ │ - Invalid URL error handling
│ │ - Cache verification
│ │
│ ├── user/ User domain tests (3 files)
│ │ ├── UserServiceTest.java Login/registration/validation tests
│ │ ├── UserRepositoryTest.java CRUD & email lookup tests
│ │ └── CustomerTest.java Customer entity tests
│ │
│ └── wrapper/ External integration tests (3 files)
│ ├── DbWrapperDonationsTest.java Database operations (donations)
│ ├── DbWrapperUserTest.java Database operations (users)
│ └── OrgApiWrapperTest.java API client tests
│
├── utils/ UTILITY TESTS (1 file)
│ └── ParameterValidatorTest.java Validation logic tests
│
└── view/ UI TESTS (1 file)
└── ViewTest.java JavaFX component tests
***📘 Project Wiki
Last updated: April 2026
Maintained by (BIDATA) Team 5 in the course IDATT1005