Application web (stack MEAN) regroupant des outils pédagogiques pour développeurs. Cette première version livre l'ossature complète + le premier outil : une checklist interactive de code review.
Les futurs outils (Principes SOLID, Design Patterns GoF) apparaissent en cartes « Bientôt disponible » et s'ajouteront sans refactor du cœur (un feature module Angular
- une route API suffisent).
- MongoDB (via Mongoose) — registre des outils + items de checklist
- Express.js — API REST sous
/api - Angular 19 (standalone components, routing) + Angular Material
- Node.js
CraftCode/
├── backend/ # API Express + MongoDB
│ ├── config/db.js # Connexion MongoDB
│ ├── models/ # Schémas Mongoose (Tool, ChecklistItem)
│ ├── controllers/ # Logique des endpoints
│ ├── routes/ # Définition des routes (montées sous /api)
│ ├── seed/ # Données + script de peuplement
│ └── server.js # Point d'entrée
└── frontend/ # Application Angular
└── src/app/
├── core/ # Services + modèles (logique partagée)
├── shared/ # Composants réutilisables (tool-card)
└── features/ # Une feature par page/outil (home, code-review)
- Node.js 18+ et npm
- MongoDB en local (ou une URI Atlas)
Assure-toi qu'une instance MongoDB tourne en local :
# macOS (Homebrew)
brew services start mongodb-communitycd backend
npm install
cp .env.example .env # ajuste MONGO_URI / PORT si besoin
npm run seed # peuple la base (outils + checklist)
npm run dev # démarre l'API sur http://localhost:3000Endpoints disponibles :
GET /api/tools— liste des outils du siteGET /api/code-review— items de la checklist code reviewGET /health— sonde de santé
Dans un second terminal :
cd frontend
npm install
npm start # démarre Angular sur http://localhost:4200Ouvre http://localhost:4200 :
/— page d'accueil avec les cartes d'outils/code-review— la checklist interactive (état coché conservé en localStorage)
| Variable | Description | Exemple |
|---|---|---|
MONGO_URI |
URI de connexion MongoDB | mongodb://127.0.0.1:27017/craftcode |
PORT |
Port d'écoute de l'API | 3000 |
Ne jamais committer de vraie valeur : seul
.env.exampleest versionné.
- Backend : ajouter un model si besoin, un controller + un fichier de routes,
puis le monter dans
backend/routes/index.js. Ajouter l'outil dansbackend/seed/data.js. - Frontend : créer un dossier sous
src/app/features/<outil>/, ajouter une route danssrc/app/app.routes.ts. La page d'accueil affichera la carte automatiquement (registre servi par l'API).