-
Notifications
You must be signed in to change notification settings - Fork 0
Project structure
Lukas Celius edited this page Apr 23, 2026
·
2 revisions
The project has a project structure with layered packages, where each package has a clear responsibility. This is done to make the program easier to maintain understand, and extend.
The project is split into the following package structure:
src/
├── main/
│ ├── java/
│ │ ├── app/
│ │ ├── application/
│ │ │ ├── security/
│ │ │ └── user/
│ │ ├── domain/
│ │ │ ├── donation/
│ │ │ ├── organization/
│ │ │ └── user/
│ │ ├── integration/
│ │ │ └── security/
│ │ ├── persistence/
│ │ │ ├── dao/
│ │ │ └── db/
│ │ └── ui/
│ │ ├── controller/
│ │ │ ├── auth/
│ │ │ ├── donation/
│ │ │ ├── organization/
│ │ │ └── profile/
│ │ └── util/
│ └── resources/
│ ├── css/
│ └── view/
│ ├── auth/
│ ├── donationView/
│ ├── organizationView/
│ └── profileView/
└── test/
└── java/
├── application/
│ └── user/
├── domain/
└── integration/
└── security/
Explanation of packages:
**app** - contains main, where database and Innsammlingskontrollen is initialized. There is also added testdata to main.
**application** - contains packages: security and user. This package handles everything related to a user-login, register statistics and security.
**domain** - this package contains the main model of the project. This contains donation, organization and user logic, which defines what each object is.
**integration** - contains external systems/files that are integrated. This contains the passwordhasher class which uses the imported SHA-256 algorithm, and InnsamlingskontrollClient, which is a external API/JSon file that contains verified organization.
**persistence** - contains everything java-based database communication like database creator class and all Dao (Data Access Object) classes, which uses java code to communicate with a SQL syntax database.
**ui** - contains classes that are responsible for running and creating the front end.
**util** - contains SessionManager, which manages the current user session.
**resources** - contains schema.sql which is a file that has sql-code that creates the tables in the database. Also contains fmxl and css files that help design the front end.