Skip to content

Project Structure

Martin edited this page Apr 10, 2024 · 2 revisions

The following table gives a high-level overview of the project structure.

Directory/File Description
.git-hooks Contains Git-Hooks to ensure commit messages follow the Conventional Commit convention.
.github Contains configuration of GitHub Actions and Issue Templates
documentation Contains the documentation assets of the project used in this wiki
src/main/java Source code of the application
src/main/resources Resources such as configuration files and database migrations scripts
src/test/java Java test classes
src/test/resources Resources for Java test classes
Dockerfile Dockerfile used to create a Docker-Image for the application
compose.yml Docker-compose configuration with Docker containers required for development (Database, Fake-Mailserver)
pom.xml Maven project configuration
README.md Main project information file
CONTRIBUTING.md Information for contributors
CHANGELOG.md Automatically generated changelog. DO NOT MODIFY manually.

The task administration server uses the Spring Boot Framework. The application consists of the packages described in the following table.

Directory/File Description
auth Contains classes for User Authentication. A custom OpenID/OAuth2-like authentication mechanism using Json Web Tokens (JWT) is used in this application.
config Contains the configuration classes for the application.
controllers Contains the RESTful web service controllers.
data Contains the JPA entities and the repositories for database access.
dto Contains the data transfer objects.
moodle Contains services for Moodle synchronization.
services Contains the services encapsulating the business logic. The services are called by the controllers.

Clone this wiki locally