Ressources
Les ressources recommandées par le plan, rangées par sujet avec le jour où elles servent, puis le projet TaskFlow lui-même : où le trouver, comment le lancer et comment s'en servir pendant le parcours.
Documentation officielle
NestJS
La documentation officielle, docs.nestjs.com, est la référence de chaque chapitre. Le plan cite les sections Overview, Techniques, Security et Recipes. Depuis, la section Techniques a été répartie entre Application, Data et HTTP ; les anciennes adresses /techniques/... redirigent vers les nouvelles. Les pages utiles au parcours :
| Section | Pages | Jours |
|---|---|---|
| Overview | First steps, Controllers, Providers, Modules | J1 à J3 |
| Overview | Middleware, Exception filters, Pipes, Interceptors | J6 |
| Overview | Guards, Custom decorators | J8 |
| Fundamentals | Custom providers, Dynamic modules, Injection scopes, Circular dependency | J3 |
| Fundamentals | Lifecycle events | J7 |
| Fundamentals | Testing | J10 |
| Application | Validation, Serialization | J2, J8 |
| Application | Configuration, Logging | J7 |
| Application | Events, Task scheduling, Queues | J9 |
| Data | TypeORM | J4, J5 |
| HTTP | Versioning | J2 |
| Security | Authentication, Authorization, Encryption and Hashing | J8 |
| Security | Security headers, CORS, Rate limiting | J11 |
| Recipes | Passport | J8 |
| Recipes | Async local storage | Contexte par requête (piège) |
| Reliability | Health checks (Terminus) | J11 |
| OpenAPI | Introduction, CLI Plugin, Mapped Types | J2, J11 |
| CLI | Overview | J1 |
| FAQ | Request lifecycle | J6 |
Le cours officiel
Le plan recommande le cours officiel « NestJS Fundamentals », accessible depuis le lien « Official courses » de la documentation (courses.nestjs.com). Le plan le dit gratuit ; à la rédaction de cette page (octobre 2026), ce cours est payant, avec une leçon en accès libre. L'équivalent gratuit le plus proche est la section Fundamentals de la documentation, listée ci-dessus.
TypeORM
typeorm.io, et en particulier :
| Sujet | Page | Jours |
|---|---|---|
| Entités et colonnes | Entities | J4 |
| Recherche | Find options, Select Query Builder | J4 |
| Options de connexion | Data source options | J4 |
| Relations | Many-to-one / one-to-many, Eager and lazy relations | J5 |
| Migrations | Generating, Executing, Reverting | J5 |
| Transactions | Transactions | J5 |
Node.js
- The Node.js Event Loop : phases de la boucle,
setImmediate,process.nextTick. À lire avant le J1 (event loop). - Worker threads : calcul CPU hors du thread principal (différences).
- Asynchronous context tracking :
AsyncLocalStorage.
Outils de l'écosystème
- TypeScript, décorateurs : les décorateurs « expérimentaux » sur lesquels repose Nest.
- class-validator : liste des décorateurs de validation.
- Jest.
- BullMQ : retries, backoff, workers.
- oxlint et sa règle no-floating-promises.
- Profils Docker Compose.
Le projet TaskFlow
TaskFlow est l'API construite pendant le parcours, dans le dossier examples/ du dépôt de ce site. Tous les extraits de code du site en proviennent, et la construction du site échoue si un extrait cité disparaît. Le projet compile, passe le lint, 27 tests unitaires (86,3 % des lignes couvertes) et 8 tests e2e sur une vraie base PostgreSQL. L'image Docker se construit et démarre ; le pipeline GitLab n'a pas été exécuté.
| Fichier | Contenu |
|---|---|
README.md | Démarrage, scripts, séquence Docker (migrations comprises), structure |
LEARNINGS.md | Le modèle du journal quotidien (méthode) |
docker-compose.yml, .env.example | L'environnement local (Docker Compose et .env) |
Dockerfile, .gitlab-ci.yml | L'image et le pipeline (J11) |
.gitignore, .dockerignore | Ce qui reste hors de git et de l'image (node_modules, dist, coverage, .env* sauf .env.example) |
src/, test/ | Le code, organisé par domaine (structure) |
Lancer l'API
cd examples
cp .env.example .env.development
docker compose up -d # PostgreSQL + Adminer (http://localhost:8081)
npm ci
npm run migration:run
npm run seed # admin@taskflow.local / admin-password-dev
npm run start:dev # Swagger sur http://localhost:3000/docsAucune variable n'est à exporter pour ces commandes : l'application lit .env.development, et Compose ne demande JWT_SECRET que pour le conteneur app (explication). Le compte créé par le seed est un compte de développement ; SEED_ADMIN_PASSWORD permet de choisir son mot de passe lors de sa création.
Pour lancer l'API dans son conteneur plutôt qu'avec npm run start:dev : exportez un vrai JWT_SECRET, construisez l'image, appliquez les migrations avec npm run migration:run:prod, puis démarrez le profil app (séquence).
Vérifier le projet
npm run typecheck && npm run lint && npm test # compilation, oxlint, tests unitaires
npm run test:cov # avec le seuil de couverture
cp .env.example .env.test # puis DB_PORT=5433, DB_NAME=taskflow_test, NODE_ENV=test
docker compose up -d db-test && npm run test:e2eS'en servir pendant le parcours
- Comme corrigé : reconstruisez TaskFlow jour après jour, et comparez avec le projet fini quand vous bloquez. Les chapitres indiquent quel fichier correspond à chaque étape.
- Comme terrain d'essai : modifiez le code pour voir l'effet d'un piège (retirer un
await, passersynchronizeàtruesur la base de test, enlever@Exclude()), puis lancez les tests. - Comme référence plus tard : l'index des situations part d'un besoin concret et mène au fichier TaskFlow qui le résout.