This repository contains the backend API of the Demy project, developed in Java 21 with Spring Boot.
The goal is to provide RESTful services for user management, authentication, and functionalities related to the academic project.
- Java 21
- Maven Wrapper (
./mvnw) - (Optional) Docker if you want to run external dependencies (DB, etc.)
# Clone repository
git clone https://github.com/<org>/<repo>.git
cd <repo>
# Run with Maven
./mvnw spring-boot:runThe API will be available at: http://localhost:8080
src/main/java→ application source code.src/test/java→ unit and integration tests.docs/→ extended documentation (architecture, ADRs, API, diagrams, guides).CONTRIBUTING.md→ contribution rules (commits, branches, PRs, code style).
The project follows Domain-Driven Design (DDD) principles adapted to an academic context.
- Each module corresponds to a bounded context, with its own logic, models, and layers.
- Example modules:
iam: identity and access managementinstitution: institution management
- The
sharedmodule contains common components (e.g., exceptions, utilities) and is not considered a bounded context.
Each context follows a layered architecture pattern:
institution/
├─ application/ # Use cases (services)
├─ domain/ # Domain models
├─ infrastructure/ # Technical implementations (repositories, external services)
└─ interfaces/ # REST controllers, mappers
An example of the domain model for the institution context:
For more details, see the complete domain diagrams in docs/diagrams/.
Detailed documentation can be found in docs/:
- Quick guides →
docs/guides/ - API (endpoints, OpenAPI, examples) →
docs/api/ - Architecture and diagrams →
docs/architecture/ - Conventions and references →
docs/references/
- Main branches:
main→ stable releases (e.g., TB1, TP1, TB2, TF1).develop→ integration of new features.
- Support branches:
feature/<topic>→ new features or improvements.hotfix/<topic>→ critical fixes in production.release/vX.Y.Z→ release preparation (we use Semantic Versioning).
More details in: CONTRIBUTING.md
- Configure UTF-8 in your IDE (IntelliJ: Settings > Editor > File Encodings > UTF-8).
- Follow the code style defined in the contributors guide CONTRIBUTING.md.
- Use commit messages with Conventional Commits.
- Run tests before opening a PR:
./mvnw verify
This is an academic and private project, developed by the Software Engineering team – UPC.
External contributions are not accepted.