6 projets

Réalisations

Des applications en production et les outils qui m'aident à les livrer. Chaque fiche détaille les choix techniques et les décisions d'architecture.

  • DashFlow

    Application Web

    DashFlow

    DashFlow est une application web self-hosted qui réunit la gestion du budget familial et le suivi médical de tous les membres du foyer dans une interface sombre et soignée. Toutes les données sensibles sont chiffrées côté client (chiffrement de bout en bout) avant de quitter le navigateur, si bien que le serveur ne stocke que des charges utiles opaques et ne voit jamais le contenu en clair. Le frontend Angular communique avec une API NestJS via des cookies httpOnly, sur une base PostgreSQL pilotée par Drizzle ORM. Côté budget : comptes, enveloppes, prêts, récurrences et projections ; côté santé : patients, praticiens, ordonnances, médicaments et documents.

    Décision clé
    Chiffrement de bout en bout côté client
    Centraliser des données financières et médicales sans jamais les confier en clair au serveur. Arbitrage serveur vs client : tranché pour le client, la clé maître dérivée du mot de passe ne quitte pas le navigateur. Conséquence assumée : recherche/agrégation côté client après déchiffrement, et enveloppe de récupération indispensable (mot de passe perdu sans elle = données irrécupérables).
    • Angular
    • TypeScript
    • TailwindCSS
    • Docker
    • PostgreSQL
    • NestJS
    • API
    • JWT
  • CandiDash

    Application Web

    CandiDash

    CandiDash est une application full-stack de suivi de candidatures d'emploi, pensée comme un tracker dédié plutôt qu'un tableur ou un CRM surdimensionné. Le frontend Angular (signals, clean architecture domain/infra/application) offre un tableau de bord de KPIs, un CRUD de candidatures avec statuts et types de contrat, et un thème clair/sombre persistant. Le backend NestJS gère l'authentification multi-rôles (JWT + refresh rotation en cookie HttpOnly + 2FA TOTP), des relances automatiques par email via un CRON horaire, et le stockage des CV et lettres de motivation sur Cloudflare R2. L'ensemble est auto-hébergé, sans tracker tiers, avec une API documentée par Swagger.

    Décision clé
    Clean architecture 3 couches stricte côté Angular
    Chaque feature : domain (modèles `type`, gateways abstraites, use-cases) → infra (HTTP) → application (state signals + composants dumb). Le domain ne connaît pas Angular → use-cases testables sans TestBed, implémentation HTTP remplaçable par InMemory.
    • Angular
    • TypeScript
    • NestJS
    • TailwindCSS
    • PostgreSQL
    • JWT
    • Vitest

Autres projets4