Skip to content
Aksel Tøndel Kirkhorn edited this page Apr 21, 2026 · 4 revisions

System

Overview

This section describes the technical implementation of the Help Me Help (HmH) application.

This section provides an overview of the technical structure and implementation of the Help Me Help (HmH) application. It describes the system architecture, project structure, and key components of the solution. The purpose of this section is to give the reader a clear understanding of how the application is organized and how different parts of the system interact.


System Architecture

The application follows a Model-View-Controller (MVC) architecture using JavaFX.

  • Model – handles data and business logic
  • View – JavaFX user interface
  • Controller – connects user input with system logic

This structure helps separate responsibilities and makes the system easier to maintain and extend.


Project Structure

The project is structured into logical packages based on the MVC pattern. This makes it easier to separate responsibility between user interface, logic, and data handling. It also makes the code easier to read, maintain, and extend.

src
├── main
│   ├── java
│   │   └── no.ntnu.idatt1005.group03
│   │       ├── App.java
│   │       ├── Controller
│   │       ├── DAO
│   │       ├── Model
│   │       ├── Service
│   │       └── UI
│   └── resources
│       ├── images
│       └── styles
└── test
    └── java
        └── no.ntnu.idatt1005.group03
            ├── Controller
            └── Model

The main packages in the project are:

  • Model contains the domain classes used in the application, such as users, organizations, donations, and favorites.
  • UI contains the JavaFX screens and user interface components.
  • Controller contains the controllers that handle input from the UI and connect it to the rest of the system.
  • DAO contains the classes responsible for database access and persistence.
  • Service contains supporting functionality, such as communication with the external API.
  • resources contains CSS files and images used by the application.
  • test contains unit tests for selected parts of the system.

This structure supports separation of concerns and helped the team organize the code more clearly during development. As the project developed, parts of the code were refactored to follow MVC more consistently.


Source Code

The project is managed using Git on NTNU’s GitLab (git.ntnu.no).

  • Version control: Git
  • Development strategy: Feature branches
  • Continuous updates throughout the iterations

System Components

The following pages describe the system in more detail:

Clone this wiki locally