{"id":29492631,"url":"https://github.com/pedrcruz19/backend-architecture-template-spring","last_synced_at":"2026-04-11T13:02:11.322Z","repository":{"id":303859050,"uuid":"1016929730","full_name":"PedrCruz19/backend-architecture-template-spring","owner":"PedrCruz19","description":"A backend architecture using spring boot with pagination","archived":false,"fork":false,"pushed_at":"2025-07-09T19:11:58.000Z","size":237,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-11T07:33:19.491Z","etag":null,"topics":["java","maven","postgresql","rest-api","restful-api","spring","spring-boot","template"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PedrCruz19.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-09T18:42:53.000Z","updated_at":"2025-07-10T06:42:32.000Z","dependencies_parsed_at":"2025-07-10T04:51:53.432Z","dependency_job_id":"520d3741-c1ae-47f2-a024-802c8be26b03","html_url":"https://github.com/PedrCruz19/backend-architecture-template-spring","commit_stats":null,"previous_names":["pedrcruz19/backend-architecture-springboot","pedrcruz19/backend-architecture-template-spring"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PedrCruz19/backend-architecture-template-spring","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PedrCruz19%2Fbackend-architecture-template-spring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PedrCruz19%2Fbackend-architecture-template-spring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PedrCruz19%2Fbackend-architecture-template-spring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PedrCruz19%2Fbackend-architecture-template-spring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PedrCruz19","download_url":"https://codeload.github.com/PedrCruz19/backend-architecture-template-spring/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PedrCruz19%2Fbackend-architecture-template-spring/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265443232,"owners_count":23766370,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","maven","postgresql","rest-api","restful-api","spring","spring-boot","template"],"created_at":"2025-07-15T15:28:03.467Z","updated_at":"2025-12-30T22:07:13.231Z","avatar_url":"https://github.com/PedrCruz19.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Backend Architecture\n\n```\n\n\n ______        _        ______  ___  ____   ________  ____  _____  ______                              __      \n|_   _ \\      / \\     .' ___  ||_  ||_  _| |_   __  ||_   \\|_   _||_   _ `.                            [ |     \n  | |_) |    / _ \\   / .'   \\_|  | |_/ /     | |_ \\_|  |   \\ | |    | | `. \\    ,--.   _ .--.   .---.  | |--.  \n  |  __'.   / ___ \\  | |         |  __'.     |  _| _   | |\\ \\| |    | |  | |    `'_\\ : [ `/'`\\]/ /'`\\] | .-. | \n _| |__) |_/ /   \\ \\_\\ `.___.'\\ _| |  \\ \\_  _| |__/ | _| |_\\   |_  _| |_.' / _  // | |, | |    | \\__.  | | | | \n|_______/|____| |____|`.____ .'|____||____||________||_____|\\____||______.' (_) \\'-;__/[___]   '.___.'[___]|__]\n                                                                                                             \n\n\n```\n\nThis application is part of a lab project at ISEP/IPP to teach Domain Driven Design (DDD) REST and Spring Boot. \n\n_backendarch logo created with [kammerl ascii signature](https://www.kammerl.de/ascii/AsciiSignature.php) using font \"varsity\"_\n\n## Who do I talk to?\n\nPedro Cruz [1240589@isep.ipp.pt](emailto:1240589@isep.ipp.pt) / [pruzapple@gmail.com](emailto:pruzapple@gmail.com)\n\n## Architecture\n\nThe main architectural style is Hexagonal/Onion.\n\n## Project Structure\n\nEach functional area has a top level package which is then split in the following subpackages:\n\n- api - REST controller, view models/DTOs and corresponding mappers\n- application - use case controllers/services\n- domain - core business logic\n    - model - domain entities and value objects\n    - services - domain services\n    - repositories - domain repositories (interfaces)\n- infrastructure - adapters to infrastructure components \n    - repositories.impl - spring data repositories implementation\n- bootstrapping - bootstrapping data mainly for dmeo purposes\n\n# References and bibliography\n\nStart by reading the essential material listed in [EAPLI framework](https://bitbucket.org/pag_isep/eapli.framework/src/master/README.md)\n\n### JPA\n\n- [Entities or DTOs in JPA Queries](https://thoughts-on-java.org/entities-dtos-use-projection/)\n- [Primary key mapping](https://thoughts-on-java.org/primary-key-mappings-jpa-hibernate/)\n- [equals() and hashCode()](https://thoughts-on-java.org/ultimate-guide-to-implementing-equals-and-hashcode-with-hibernate/)\n\n### Spring boot readings\n\nStarting points on Spring:\n\n- [Baeldung's springboot tutorial](https://www.baeldung.com/spring-boot-start)\n- The complete [Baeldung's Learn Spring Boot](https://www.baeldung.com/spring-boot)\n- [mkyong's tutorials](https://www.mkyong.com/tutorials/spring-boot-tutorials/)\n- The [Spring.io guides](https://spring.io/guides)\n- And the [Spring boot reference](https://docs.spring.io/spring-boot/docs/current/reference/html/)\n\nFundamental reading used in the scope of this project:\n\n- [Spring boot multi-module projects](https://www.baeldung.com/spring-boot-multiple-modules)\n- [Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/)\n- [Spring boot console application](https://www.baeldung.com/spring-boot-console-app)\n- [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)\n- [Testing in spring Boot](https://www.baeldung.com/spring-boot-testing)\n\nThe following guides illustrate how to use some features concretely:\n\n- [Building REST services with Spring](https://spring.io/guides/tutorials/bookmarks/)\n- [Securing a Web Application](https://spring.io/guides/gs/securing-web/)\n- [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)\n- [Spring Boot and OAuth2](https://spring.io/guides/tutorials/spring-boot-oauth2/)\n- [Authenticating a User with LDAP](https://spring.io/guides/gs/authenticating-ldap/)\n- [custom banner](https://www.baeldung.com/spring-boot-custom-banners)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedrcruz19%2Fbackend-architecture-template-spring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpedrcruz19%2Fbackend-architecture-template-spring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedrcruz19%2Fbackend-architecture-template-spring/lists"}