BOBAPP est une application full-stack permettant d'afficher une blague aléatoire par jour. Elle est développée avec un backend Java Spring Boot et un frontend Angular. Les deux parties sont conteneurisées avec Docker et intègrent un pipeline CI/CD via GitHub Actions.
Ce projet est réalisé dans le cadre du cursus Full-Stack Java Angular d'OpenClassrooms, visant à implémenter une chaîne complète d'intégration continue (CI) et de déploiement continu (CD).
- Langage : Java 11 avec Spring Boot 2.5.4
- Endpoint principal :
GET /api/joke– Renvoie une blague aléatoire - Tests : JUnit 5
- Image Docker :
tangilecadre/bobapp-back
- Framework : Angular 14
- Interface : Single Page App (SPA)
- Tests : Jasmine
- Image Docker :
tangilecadre/bobapp-front
- Cloner le projet :
git clone https://github.com/TangiLC/OC-P10_CICD.git
cd back- Construire le projet :
mvn clean install- Lancer l'API :
mvn spring-boot:runAPI disponible sur http://localhost:8080
- Accéder au dossier
front:
cd front- Installer les dépendances :
npm install- Lancer l'application Angular :
ng serveFrontend accessible sur http://localhost:4200
Assurez-vous que Docker Desktop est installé sur votre machine. Il inclut le moteur Docker et Docker Compose.
Récupération des dernières versions des images Docker pour le backend et le frontend :
docker pull tangilecadre/bobapp-back:latest
docker pull tangilecadre/bobapp-front:latestUn fichier docker-compose.yml est présent à la racine du projet pour faciliter le déploiement.
Pour lancer les conteneurs (frontend et backend) dans un projet conjoint :
docker-compose up -dLe front-end de l'application sera disponible sur http://localhost:4200
Pour arrêter les services et libérer les ports :
docker-compose downDes pipelines GitHub Actions assurent l'intégration et le déploiement continu :
-
Code Analysis :
- Analyse statique pour Java (backend) et TypeScript (frontend)
-
Build & Test :
- Compilation et tests unitaires (JUnit 5 et Jasmine)
- Rapport de couverture SonarCloud
-
Dockerize :
- Construction des images Docker
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou une pull request.