project / 02EN PRODUCTION

Youcus

Une couche d'étude superposée à YouTube : import de playlists, lecteur sans distraction, prise de notes Markdown synchronisées à la vidéo et suivi de progression.

Youcuscover / youcus

Overview

Youcus est une couche d'étude superposée à YouTube : on importe ses playlists, on regarde dans un lecteur sans distraction, on prend des notes en Markdown synchronisées à la vidéo, et on suit sa progression. Aucun téléchargement — uniquement les APIs officielles Google / YouTube.

Projet à but non lucratif (recouvrement des coûts) : une offre gratuite et un Premium (2,99 €/mois ou 29 €/an).

La stack

Client : Vite + React + TypeScript, TanStack Query, Tailwind CSS.
Serveur : Express + TypeScript, Prisma, MySQL.
Infra : Docker, GitHub Actions, déploiement sur Sevalla (Francfort).

Architecture en monorepo (workspaces npm : client, server).

01

Apprendre sur une plateforme faite pour distraire

YouTube héberge des millions d'heures de contenu éducatif, gratuit et de qualité. C'est, de fait, la plus grande école ouverte du monde, et c'est là que se forment beaucoup d'autodidactes.

Mais c'est aussi une plateforme dont l'algorithme est conçu pour capter l'attention, pas pour la maintenir sur une seule chose. Celui qui vient y apprendre se bat en permanence contre l'outil qu'il utilise : recommandations, miniatures, vidéo suivante lancée toute seule.

Youcus donne à ceux qui apprennent seuls un environnement de travail posé par-dessus YouTube : la matière reste la même, le cadre change.

Import d'une playlist entière et suivi de son avancement
Lecteur sans distraction : ni recommandations, ni commentaires, ni colonne latérale
Notes en Markdown horodatées, synchronisées à la vidéo

Rien n'est téléchargé : tout passe par les APIs officielles Google / YouTube, sous contrainte de quota.

Le tableau de bord : les playlists importées et leur progression
Le tableau de bord : les playlists importées et leur progression
02

Les écrans, dessinés avant d'être codés

Avant la première ligne de code, dix-sept écrans ont été dessinés, du poste fixe au mobile, avec les états qu'on oublie d'habitude : tableau de bord vide, confirmation de suppression, page 404, notifications.

La charte graphique fixe la palette et la typographie avant l'intégration, pour que le développement n'ait plus à trancher de questions de style en cours de route.

Wireframe : la page d'accueil
Wireframe : la page d'accueil
Tableau de bord
Tableau de bord
Mode focus
Mode focus
Mes notes
Mes notes
Statistiques
Statistiques
Version mobile
Version mobile
La charte graphique
La charte graphique
03

Ce que j'ai conçu avant d'écrire une ligne

Youcus est le projet où je possède le cycle de vie complet : chez mon employeur j'ai rejoint une application déjà en place, ici tout part de zéro. La conception a précédé le code — cas d'usage, modèle de données, séquences, architecture — et c'est ce dossier qui a été soutenu.

Les onze diagrammes ci-dessous sont les livrables de cette phase.

Cas d'usage
Cas d'usage
Modèle conceptuel de données
Modèle conceptuel de données
Modèle logique de données
Modèle logique de données
Diagramme de classes
Diagramme de classes
Séquence : authentification OAuth
Séquence : authentification OAuth
Séquence : import d'une playlist
Séquence : import d'une playlist
Séquence : sauvegarde d'une note
Séquence : sauvegarde d'une note
Architecture en composants
Architecture en composants
Architecture Docker
Architecture Docker
Activité : parcours utilisateur
Activité : parcours utilisateur
États : cycle de vie d'une playlist
États : cycle de vie d'une playlist
04

Le produit fini

Le mode focus retire tout ce qui détourne de la vidéo : recommandations, commentaires, colonne latérale. Il ne reste que le lecteur et la progression.

À côté, l'éditeur de notes en Markdown : chaque note est horodatée sur la vidéo, donc un clic ramène à la seconde exacte où elle a été prise.

Le lecteur en mode focus
Le lecteur en mode focus
L'éditeur de notes en Markdown
L'éditeur de notes en Markdown
05

Le cache, et sa panne

Les quotas de l'API YouTube interdisent de rappeler la source à chaque affichage. Un cache Redis en cache-aside absorbe les lectures répétées.

Le point qui compte n'est pas le cache, c'est son absence : l'application est conçue pour fonctionner sans Redis, en dégradation, et des tests couvrent explicitement ce chemin. Le cache accélère, il ne conditionne pas le service.

Séquence : lecture avec cache et repli sur la source
Séquence : lecture avec cache et repli sur la source
06

Ce qui empêche de casser la production

81 tests au total : 56 côté serveur, 25 côté client
Toutes les charges utiles entrantes passent par un schéma Zod en safeParse
Un garde-fou de configuration refuse le démarrage si SESSION_SECRET est absent ou laissé à sa valeur d'exemple : la production ne peut pas tourner avec un secret publié dans le dépôt
Couverture mesurée, chaîne d'intégration et de déploiement au vert avant toute mise en ligne
La chaîne d'intégration et de déploiement
La chaîne d'intégration et de déploiement
07

Le mémoire

Youcus est le projet du titre professionnel Concepteur Développeur d'Applications. Le dossier remis fait 123 pages : business plan, cahier des charges, user stories, modélisation, charte graphique, wireframes, spécifications techniques, plan de tests, sécurité et RGPD, documentation d'API et documentation développeur.

Il est téléchargeable ci-dessous, dans sa version publique.