Backend REST API dla psiego przedszkola, przygotowany jako zespołowy projekt akademicki z przedmiotu Usługi sieciowe w biznesie.
Projekt modeluje procesy związane z obsługą właścicieli, psów, rezerwacji, lekcji szkoleniowych, kart zdrowia, dzienników dnia oraz struktury pracowników przedszkola. Kod został zorganizowany w stylu inspirowanym Domain-Driven Design, z wyraźnym podziałem na bounded contexty, warstwę aplikacyjną i warstwę domenową.
Projekt jest ukończony w zakresie wymaganym na potrzeby przedmiotu i został zarchiwizowany. Repozytorium pozostaje dostępne jako przykład pracy zespołowej, dokumentacji projektowej oraz implementacji backendu w Java/Spring Boot.
Uwaga: repozytorium powstało jako projekt akademicki.
- REST API dla zarządzania psim przedszkolem.
- Model domenowy podzielony na bounded contexty.
- Typowane identyfikatory agregatów w shared kernel.
- Warstwa aplikacyjna z serwisami przypadków użycia.
- Kontrolery REST z walidacją danych wejściowych.
- Utrwalanie danych przez Spring Data JPA i H2.
- Dokumentacja analityczna, projektowa i API.
- Testy jednostkowe oraz testy warstwy aplikacyjnej/kontrolerów.
- Java 21
- Spring Boot 4
- Spring Web MVC
- Spring Data JPA
- H2 Database
- Gradle
- Lombok
- SpringDoc OpenAPI / Swagger UI
- JUnit
Wymagania:
- JDK 21
- Git
Uruchomienie aplikacji:
./gradlew bootRunNa Windowsie:
.\gradlew.bat bootRunUruchomienie testów:
./gradlew testTesty są również uruchamiane automatycznie w GitHub Actions po zmianach w repozytorium.
Po uruchomieniu aplikacji na domyślnym porcie 8080 dostępne są:
- Swagger UI: http://localhost:8080/swagger-ui/index.html
- OpenAPI JSON: http://localhost:8080/v3/api-docs
- H2 Console: http://localhost:8080/h2-console
Konfiguracja bazy H2 jest zgodna z src/main/resources/application.properties:
JDBC URL: jdbc:h2:file:./data/psieszko
Username: sa
Password:
Repozytorium zawiera komplet materiałów projektowych:
docs/00-organizacja/- organizacja pracy zespołu,docs/01-analiza/- wymagania, słownik pojęć i model dziedziny,docs/02-projekt/- architektura i konteksty DDD,docs/03-api/- opis endpointów REST i przykłady użycia.
Najważniejsze dokumenty:
Dokumenty organizacyjne projektu:
- opis projektu,
- zakres projektu,
- role w zespole,
- harmonogram,
- zasady pracy.
Materiały analityczne:
- wymagania,
- odkrywanie pojęć,
- model dziedziny,
- przypadki użycia,
- diagramy UML analityczne.
Materiały projektowe:
- architektura systemu,
- podział na moduły,
- model bazy danych,
- decyzje architektoniczne,
- diagramy UML projektowe.
Opis API:
- endpointy REST,
- kontrakty,
- scenariusze użycia API,
- przykłady requestów i response'ów.
Katalog zarezerwowany na dodatkowe materiały testowe. Aktualne testy automatyczne znajdują się w src/test/java.
Katalog zarezerwowany na materiały prezentacyjne, jeśli będą potrzebne poza dokumentacją w docs/.
Instrukcje dla zespołu:
- pierwsze kroki z Gitem,
- sposób pracy z repo,
- tworzenie pull requestów,
- rozwiązywanie konfliktów.
Kod aplikacji backendowej w Java i Spring.
Miejsce na pliki pomocnicze do uruchamiania projektu lokalnie.
Jeśli dopiero zaczynasz pracę z tym repozytorium:
- Sklonuj repozytorium.
- Przeczytaj:
- Utwórz własny branch.
- Wprowadź zmiany.
- Wypchnij branch na GitHub.
- Otwórz Pull Request.
Projekt realizowany zespołowo w ramach przedmiotu Usługi sieciowe w biznesie.