Le projet s'articule autour de trois services principaux :
- ☕ Backend : Application Spring Boot (Java 21).
- 🐘 Database : PostgreSQL (version Alpine pour la légèreté).
- 🌐 Frontend : Angular (Prochain Sprint).
Vous disposez de deux méthodes pour faire fonctionner le projet selon vos besoins : le mode Hybride (idéal pour le développement actif) et le mode Full Docker (pour une démonstration complète).
C'est le mode recommandé pour modifier le code source. Vous lancez la base de données via Docker et votre code Java directement dans votre IDE (IntelliJ, Eclipse, VS Code).
-
Démarrer uniquement la base de données : Ouvrez votre terminal à la racine du projet et saisissez :
docker-compose up -d postgres
(Cette commande expose le port
5432sur votrelocalhost). -
Configuration Spring : Assurez-vous que votre fichier
src/main/resources/application.propertiespointe bien verslocalhost:spring.datasource.url=jdbc:postgresql://localhost:5432/shipment_tracking spring.datasource.username=admin spring.datasource.password=admin123
-
Lancer l'application : Exécutez la classe
ShipmentApplication.javadepuis votre IDE. L'API sera alors disponible sur :http://localhost:8080🌐
Utilisez ce mode pour tester l'application dans un environnement de production simulé.
-
Compiler et lancer l'ensemble des services :
docker-compose up --build
Note : L'option
--buildgarantit que vos dernières modifications de code sont bien intégrées à l'image du conteneur. -
Accès aux services :
- API Backend :
http://localhost:8080 - PostgreSQL : Accessible sur le port
5432de votre machine.
- API Backend :
| Action | Commande |
|---|---|
| Arrêter tous les services | docker-compose down |
| Réinitialisation totale (Vider la DB) | docker-compose down -v |
| Consulter les logs du Backend | docker logs -f shipment-api |
| Accéder à la console SQL (CLI) | docker exec -it shipment-postgres psql -U admin -d shipment_tracking |
- ☕ Java 17 ou supérieur
- 🐳 Docker & Docker Compose
- 📦 Maven (utilisé pour la gestion des dépendances)
Le projet utilise Hibernate en mode ddl-auto=update. Par conséquent, les tables (notamment la table shipment) sont générées automatiquement lors du premier démarrage réussi de l'application.