Time Manager est une application web de gestion du temps de travail. Elle permet aux employés de pointer, aux managers de suivre les équipes via des tableaux de bord, et aux administrateurs de gérer la structure de l'entreprise.
- Pointage (Clock-in/out) : Enregistrement précis des heures d'arrivée et de départ.
- Working Times : Gestion des plages horaires travaillées.
- Dashboard & Graphiques : Visualisation des données (heures supplémentaires, présence).
- Gestion des Utilisateurs : Rôles (Admin, Manager, Employee) et hiérarchie.
- Authentification : Sécurisée via JWT.
- Backend : Java 21, Spring Boot 3.5.6
- Frontend : Angular 21 Node 22
- Data : PostgreSQL 16 (Prod), H2 (Test)
- DevOps : Docker, AWS EC2, GitHub Actions
Pour faire tourner le projet localement, assurez-vous d'avoir :
- Java 21 (JDK)
- Node.js 22
- Docker & Docker Compose
git clone https://github.com/n0kes/T-DEV-700-project-NCY_7.git
cd T-DEV-700-project-NCY_7Nous utilisons un fichier compose dédié au développement local.
docker compose -f docker-compose.dev.yml up -dLe backend est configuré pour se connecter automatiquement à la base de données Docker locale.
cd time-manager-backend
./mvnw spring-boot:run- API URL :
http://localhost:8080/api - Swagger UI :
http://localhost:8080/swagger-ui.html
cd time-manager-frontend
npm install
npm run dev- App URL :
http://localhost:5173
cd time-manager-backend
./mvnw clean testNous utilisons Spotless et Checkstyle pour garantir la qualité du code Java.
./mvnw spotless:check checkstyle:checkLe badge de couverture de code (Coverage) est mis à jour automatiquement sur le README via GitHub Actions après chaque push.
Le déploiement est automatisé via GitHub Actions (.github/workflows/deploy.yml).
- Push sur
maindéclenche le workflow - Lint & Tests : Vérification de la qualité du code et exécution des tests unitaires
- Build & Push : Création de l'image Docker optimisée et envoi sur Docker Hub
- Deploy : Mise à jour automatique des conteneurs sur l'instance AWS EC2 via SSH
Auteurs : Team 7 T-DEV-700 EOF