Esc
↑↓ Naviguer ↔ Ouvrir Esc Fermer
Aller au contenu

📋 Yanis · Tasky

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.

TypeTask manager multi-rÎles (président, coachs, bénévoles, parents)
CibleAssociation sportive locale, ~ 60-100 utilisateurs
Volume~ 200 tĂąches par mois, kanban + calendrier
Stack frontendNext.js 16
Stack backendHono (Node 24) — rĂ©utilise le code de l’exo taskly-api axe 8
Base de donnéesPostgres + Drizzle
AuthBetter Auth (email + Google OAuth)
PaiementAucun (interne asso)
HĂ©bergementFly.io — rĂ©utilise la config IaC axe 14
Sous-axeÉpisode
5.1 HTMLYanis monte la page de connexion + le tableau des tĂąches du sprint.
5.2 CSSGrid pour le board kanban, Flex pour les cards de tĂąche.
5.3 A11yLe drag & drop kanban doit ĂȘtre accessible au clavier. Yanis ajoute les contrĂŽles ARIA + alternatives boutons.
Sous-axeÉpisode
6.1 JSCréation de tùche, marquer comme fait, filtrer par owner, par projet, par statut.
6.2 AsyncSynchronisation entre onglets (BroadcastChannel) : si un coach ajoute une tĂąche, les autres la voient sans refresh.
6.3 APIs navigateurNotifications du navigateur quand une tĂąche t’est assignĂ©e. Drag & drop API native.
6.4 TypeScriptYanis type strictement : Task, User, Project, Status, Role. Pas de any, pas de bug de type en prod.
Sous-axeÉpisode
7.1 Concepts communsMulti-utilisateurs en temps quasi-réel = framework obligatoire.
7.2 ReactComposants : KanbanBoard, TaskCard, TaskDrawer, ProjectSelector.
7.3 AlternativesYanis Ă©value Svelte mais reste sur React (vivier de mainteneurs futurs dans l’asso).
7.4 Next.jsApp Router + Server Actions pour les mutations de tĂąche.
7.5 BuildBundle initial 60 KB, perf Lighthouse 95+.
7.6 Design systemTailwind v4 + Radix UI pour les menus contextuels et drawers.
Sous-axeÉpisode
8.0 Concepts communsYanis reprend exactement le code taskly-api de l’exercice 8.1 comme base.
8.1 Node + HonoEndpoints CRUD tĂąches, projets, utilisateurs. Validation Zod.
8.2 Auth + sécuMagic link + Google OAuth. RBAC : président (admin), coach (éditeur), bénévole (lecteur + ses tùches).
8.3 NotificationsEmail 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 :

AxeExercice du guideLien avec Yanis
8.1exercises/08-backend/01-nodejs-typescript/taskly-api/Backend de rĂ©fĂ©rence — Yanis le forke
14.1exercises/14-devops/01-deploiement-complet/Yanis applique : CI GitHub Actions + Fly.io + Sentry + Better Stack
15.1exercises/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.

DerniĂšre mise Ă  jour :