Yanis, 26 ans, fraĂźchement embauchĂ© comme dev junior dans une scale-up parisienne. Ă cĂŽtĂ©, il est bĂ©nĂ©vole dans une asso sportive locale (basket, 4 Ă©quipes, ~ 60 licenciĂ©s). Lâasso galĂšre Ă coordonner :
- planning des matchs et entraĂźnements,
- courses des bénévoles (gourdes, plots, dossards),
- communications parents / coachs / arbitres,
- bilans financiers à présenter en AG.
Yanis propose de coder Tasky, un task manager collaboratif sur mesure â petit projet pour lâasso, gros pour son CV.
| |
|---|
| Type | Task manager multi-rÎles (président, coachs, bénévoles, parents) |
| Cible | Association sportive locale, ~ 60-100 utilisateurs |
| Volume | ~ 200 tĂąches par mois, kanban + calendrier |
| Stack frontend | Next.js 16 |
| Stack backend | Hono (Node 24) â rĂ©utilise le code de lâexo taskly-api axe 8 |
| Base de données | Postgres + Drizzle |
| Auth | Better Auth (email + Google OAuth) |
| Paiement | Aucun (interne asso) |
| HĂ©bergement | Fly.io â rĂ©utilise la config IaC axe 14 |
| Sous-axe | Ăpisode |
|---|
| 5.1 HTML | Yanis monte la page de connexion + le tableau des tĂąches du sprint. |
| 5.2 CSS | Grid pour le board kanban, Flex pour les cards de tĂąche. |
| 5.3 A11y | Le drag & drop kanban doit ĂȘtre accessible au clavier. Yanis ajoute les contrĂŽles ARIA + alternatives boutons. |
| Sous-axe | Ăpisode |
|---|
| 6.1 JS | Création de tùche, marquer comme fait, filtrer par owner, par projet, par statut. |
| 6.2 Async | Synchronisation entre onglets (BroadcastChannel) : si un coach ajoute une tĂąche, les autres la voient sans refresh. |
| 6.3 APIs navigateur | Notifications du navigateur quand une tĂąche tâest assignĂ©e. Drag & drop API native. |
| 6.4 TypeScript | Yanis type strictement : Task, User, Project, Status, Role. Pas de any, pas de bug de type en prod. |
| Sous-axe | Ăpisode |
|---|
| 7.1 Concepts communs | Multi-utilisateurs en temps quasi-réel = framework obligatoire. |
| 7.2 React | Composants : KanbanBoard, TaskCard, TaskDrawer, ProjectSelector. |
| 7.3 Alternatives | Yanis Ă©value Svelte mais reste sur React (vivier de mainteneurs futurs dans lâasso). |
| 7.4 Next.js | App Router + Server Actions pour les mutations de tĂąche. |
| 7.5 Build | Bundle initial 60 KB, perf Lighthouse 95+. |
| 7.6 Design system | Tailwind v4 + Radix UI pour les menus contextuels et drawers. |
| Sous-axe | Ăpisode |
|---|
| 8.0 Concepts communs | Yanis reprend exactement le code taskly-api de lâexercice 8.1 comme base. |
| 8.1 Node + Hono | Endpoints CRUD tĂąches, projets, utilisateurs. Validation Zod. |
| 8.2 Auth + sécu | Magic link + Google OAuth. RBAC : président (admin), coach (éditeur), bénévole (lecteur + ses tùches). |
| 8.3 Notifications | Email Resend quand une tùche est assignée ou en retard de plus de 48 h. |
Câest le seul parcours qui sâenchaĂźne directement sur les exercices fournis :
| Axe | Exercice du guide | Lien avec Yanis |
|---|
| 8.1 | exercises/08-backend/01-nodejs-typescript/taskly-api/ | Backend de rĂ©fĂ©rence â Yanis le forke |
| 14.1 | exercises/14-devops/01-deploiement-complet/ | Yanis applique : CI GitHub Actions + Fly.io + Sentry + Better Stack |
| 15.1 | exercises/15-methodes-soft-skills/01-faux-sprint/ | Yanis simule un sprint avec 2 autres bénévoles devs |
Cette rĂ©utilisation tâĂ©vite de réécrire 3 projets â tu en as un que tu enrichis au fil du guide.
- Axe 12 sécu : un coach injecte du
<script> dans le titre dâune tĂąche â XSS qui sâexĂ©cute chez les autres. Yanis comprend lâĂ©chappement strict.
- Axe 13 perf : kanban Ă 300 tĂąches â ramme. Virtualisation + pagination par projet.
- Axe 13 a11y : drag & drop accessible au clavier (Tab + flĂšches). Yanis utilise dnd-kit.
- Axe 14 DevOps : Yanis suit lâexo 14.1 Ă la lettre â dĂ©ploiement Fly.io, OIDC, Sentry, runbooks.
- Axe 15 mĂ©thodes : faux sprint Ă 3 dans lâasso â review de PR, ADR (« pourquoi Drizzle plutĂŽt que Prisma »), post-mortem sur lâincident XSS.
- Axe 16 : pour le collab temps réel sur le kanban (à la Linear), Yanis bascule sur le parcours Léa (Yjs).
- Tu te projettes en dev pro junior dans une vraie boĂźte.
- Tu veux rĂ©utiliser le code des exercices pour avoir un projet portfolio prĂȘt.
- Tu veux toucher aux enjeux dâĂ©quipe (sprint, code review, post-mortem) trĂšs concrĂštement.
- Tu cherches un fil rouge cohérent avec le reste du guide.