Skip to content

PedrCruz19/backend-architecture-template-spring

Repository files navigation

Backend Architecture



 ______        _        ______  ___  ____   ________  ____  _____  ______                              __      
|_   _ \      / \     .' ___  ||_  ||_  _| |_   __  ||_   \|_   _||_   _ `.                            [ |     
  | |_) |    / _ \   / .'   \_|  | |_/ /     | |_ \_|  |   \ | |    | | `. \    ,--.   _ .--.   .---.  | |--.  
  |  __'.   / ___ \  | |         |  __'.     |  _| _   | |\ \| |    | |  | |    `'_\ : [ `/'`\]/ /'`\] | .-. | 
 _| |__) |_/ /   \ \_\ `.___.'\ _| |  \ \_  _| |__/ | _| |_\   |_  _| |_.' / _  // | |, | |    | \__.  | | | | 
|_______/|____| |____|`.____ .'|____||____||________||_____|\____||______.' (_) \'-;__/[___]   '.___.'[___]|__]
                                                                                                             


This application is part of a lab project at ISEP/IPP to teach Domain Driven Design (DDD) REST and Spring Boot.

backendarch logo created with kammerl ascii signature using font "varsity"

Who do I talk to?

Pedro Cruz 1240589@isep.ipp.pt / pruzapple@gmail.com

Architecture

The main architectural style is Hexagonal/Onion.

Project Structure

Each functional area has a top level package which is then split in the following subpackages:

  • api - REST controller, view models/DTOs and corresponding mappers
  • application - use case controllers/services
  • domain - core business logic
    • model - domain entities and value objects
    • services - domain services
    • repositories - domain repositories (interfaces)
  • infrastructure - adapters to infrastructure components
    • repositories.impl - spring data repositories implementation
  • bootstrapping - bootstrapping data mainly for dmeo purposes

References and bibliography

Start by reading the essential material listed in EAPLI framework

JPA

Spring boot readings

Starting points on Spring:

Fundamental reading used in the scope of this project:

The following guides illustrate how to use some features concretely:

About

A backend architecture using spring boot with pagination

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages