-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Bienvenue sur le wiki du projet ! Cette documentation centralise toutes les informations techniques nécessaires pour comprendre, développer et maintenir notre application full-stack Angular/Express.js.
Ces guides ont été édités avec l'aide de LLMs.
- Guide de la structure du projet: explique l'organisation et les conventions utilisées regardant les fichiers
- Créer un modèle Mongoose et son interface Angular: explique comment créer un modèle Mongoose et les interfaces Angular associées
- Créer des Routes dans le Serveur Express: explique comment créer et organiser les routes API dans notre backend Express.js
- Créer des Services Angular: explique comment créer des services Angular
Avant de commencer, assurez-vous d'avoir installé :
- Node.js (version 18.0 ou supérieure) - [Télécharger ici](https://nodejs.org/)
- npm (inclus avec Node.js)
- Docker et Docker Compose - [Télécharger ici](https://docs.docker.com/get-docker/)
- Git - [Télécharger ici](https://git-scm.com/)
Vérifiez vos installations :
node --version # doit être >= 18.0
npm --version # doit être >= 8.0
docker --version
git --version
git clone https://github.com/Jipmaa/WE4B.git
cd project-root
# Installation des dépendances frontend
cd client
npm install
# Installation des dépendances backend
cd ../server
npm install
Créez le fichier de configuration pour le serveur :
cd server
cp .env.example .env
Modifiez le fichier .env
avec vos paramètres locaux :
# Configuration de base
NODE_ENV=development
PORT=3000
CORS_ORIGIN=http://localhost:3000
# Base de données MongoDB (laisser identique pour utiliser Docker)
MONGODB_URI=mongodb://localhost:27017/votre-db-name
MONGODB_TEST_URI=mongodb://localhost:27017/votre-db-test
# JWT Configuration
JWT_SECRET=your-super-secret-jwt-key-here
JWT_EXPIRES_IN=7d
Étape 1 : Lancer la base de données
cd server
docker compose up -d
Étape 2 : Démarrer le backend (dans un terminal)
cd server
npm run dev
Étape 3 : Démarrer le frontend (dans un nouveau terminal)
cd client
npm start
Une fois tous les services démarrés, vérifiez que tout fonctionne :
- Frontend Angular : Ouvrez http://localhost:4200/
- Backend API : Testez http://localhost:3000/api/health
-
Base de données MongoDB : Accessible sur
mongodb://localhost:27017
Les logs des serveurs doivent afficher :
✅ Frontend: Compiled successfully
✅ Backend: Server running on port 3000
✅ Database: Connected to MongoDB
Notre application suit une architecture full-stack moderne :
┌─────────────────┐ HTTP/REST API ┌─────────────────┐
│ │ ◄─────────────────► │ │
│ Angular Client │ │ Express Server │
│ (Port 4200) │ │ (Port 3000) │
│ │ │ │
└─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ MongoDB Atlas │
│ ou Local │
└─────────────────┘
Frontend (Client)
- Angular 20+ avec TypeScript
- Tailwind CSS pour le styling
- Angular Router pour la navigation
- RxJS pour la programmation réactive
Backend (Server)
- Express.js avec TypeScript
- Mongoose pour MongoDB ODM
- JWT pour l'authentification
- Bcrypt pour le hachage des mots de passe
Base de Données
- MongoDB avec Docker pour le développement
- MongoDB Atlas pour la production
npm start # Démarrer le serveur de développement
npm run build # Build de production
npm run test # Lancer les tests unitaires
npm run dev # Démarrer avec nodemon (rechargement auto)
npm start # Démarrer en mode production
npm run build # Compiler TypeScript
Port déjà utilisé
# Trouver le processus utilisant le port
lsof -ti:3000 # Pour le port 3000
lsof -ti:4200 # Pour le port 4200
# Arrêter le processus
kill -9 [PID]
Base de données non accessible
# Vérifier que Docker tourne
docker ps
# Redémarrer les containers
docker compose down
docker compose up -d
Erreurs de dépendances
# Nettoyer et réinstaller (se positionner dans le dossier avec le problème)
rm -rf node_modules package-lock.json
npm install
Problèmes de CORS
- Vérifiez que
CORS_ORIGIN
est correctement configuré dans.env
- Le frontend doit tourner sur
http://localhost:4200
- Par défaut, les origines
http://localhost:4200
ethttp://localhost:3000
sont autorisés en plus de la variable d'environnementCORS_ORIGIN
Consultez les logs pour diagnostiquer les problèmes :
# Logs du backend
cd server && npm run dev
# Logs de la base de données
docker compose logs mongodb
# Logs des containers Docker
docker compose logs -f
-
Créer une branche pour votre fonctionnalité
git checkout -b feature/nouvelle-fonctionnalite
-
Développer et tester vos modifications
-
Vérifier la qualité du code
-
Commiter vos changements
git add . git commit -m "feat: description de la nouvelle fonctionnalité"
-
Créer une Pull Request avec une description détaillée
- ESLint et Prettier configurés pour maintenir la cohérence
- Tests unitaires requis pour les nouvelles fonctionnalités
- Convention de nommage selon le [Guide de Structure](./structure-guide.md)
- Messages de commit suivant la convention [Conventional Commits](https://www.conventionalcommits.org/)