Skip to content

Darsonn/odo-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Odo API - Vehicle Shift Tracking System

Java Spring Boot Flyway Docker

Odo API to wydajna usługa RESTful zaprojektowana do zarządzania flotą pojazdów oraz czasem pracy kierowców. Aplikacja pozwala na ewidencję użytkowników, pojazdów oraz precyzyjne śledzenie rozpoczęcia i zakończenia poszczególnych zmian za kierownicą (Shift Tracking).

Projekt symuluje rzeczywiste systemy logistyczne i jest zbudowany z naciskiem na najlepsze praktyki inżynierii oprogramowania (wzorzec DTO, wersjonowanie bazy danych, centralna obsługa wyjątków).

🚀 Główne funkcjonalności

  • Zarządzanie Zmianami (Shift Tracking): Dedykowane operacje biznesowe do rozpoczynania (StartShiftRequest) i kończenia zmian (EndShiftRequest), łączące kierowcę z odpowiednim pojazdem.
  • Zarządzanie Flotą i Użytkownikami (CRUD): Pełna obsługa rejestrów pojazdów (Vehicle) oraz pracowników (User).
  • Wzorzec DTO (Data Transfer Object): Ścisła separacja logiki prezentacji od warstwy dostępu do danych. Encje bazodanowe nigdy nie są eksponowane na zewnątrz API.
  • Wersjonowanie Schematu Bazy Danych: Implementacja skryptów migracyjnych SQL (np. V1__init_schema.sql) zapewniająca przewidywalność struktury bazy danych.
  • Globalna Obsługa Błędów: Spójne odpowiedzi błędów API (np. dla ResourceAlreadyExistsException) zarządzane centralnie przez GlobalExceptionHandler.

🛠️ Stack technologiczny

  • Java
  • Spring Boot (Web, Data JPA)
  • Relacyjna Baza Danych (inicjalizowana przez skrypty SQL)
  • Migracje DB (wsparcie dla Flyway/Liquibase bazujące na /db/migration)
  • Docker (zawiera Dockerfile dla łatwego wdrożenia)
  • Maven (budowanie z użyciem mvnw)

⚙️ Wymagania i uruchomienie lokalne

Aplikację można uruchomić lokalnie przy użyciu wbudowanego wrappera Maven.

  1. Sklonuj repozytorium

    git clone https://github.com/Darsonn/odo-api.git
    cd odo-api
  2. Konfiguracja Bazy Danych Upewnij się, że Twoja relacyjna baza danych jest uruchomiona, a odpowiednie poświadczenia (URL, użytkownik, hasło) zostały zaktualizowane w pliku src/main/resources/application.properties. Struktura bazy danych zostanie automatycznie wygenerowana przy starcie aplikacji dzięki skryptom migracyjnym.

  3. Uruchomienie przez Maven Wrapper

    ./mvnw spring-boot:run
  4. Uruchomienie za pomocą Dockera Możesz również zbudować i uruchomić projekt jako kontener:

    docker build -t odo-api .
    docker run -p 8080:8080 odo-api

🏗️ Struktura Architektoniczna

Kod źródłowy został podzielony według standardów Domain-Driven / N-Tier:

  • controller/ - Wystawia bezpieczne i przejrzyste endpointy HTTP.
  • service/ - Enkapsuluje złożoną logikę biznesową (np. walidacje przed startem zmiany).
  • repository/ - Interfejsy komunikujące się z bazą danych (Spring Data JPA).
  • model/entity/ - Modele odwzorowujące tabele w bazie danych.
  • model/dto/ - Obiekty transferowe, określające kształt requestów i response'ów.
  • exception/ - Logika globalnego przechwytywania wyjątków.

About

Enterprise REST API do śledzenia zmian kierowców i zarządzania flotą pojazdów. Aplikacja oparta na Spring Boot, wykorzystująca ścisłą separację danych (wzorzec DTO), konteneryzację Docker oraz produkcyjne migracje bazy danych za pomocą Flyway.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors