Téo Casanova

Abricot.

Application Next.js de gestion de projet permettant de créer des projets, organiser les tâches, gérer les contributeurs et générer des brouillons de tâches avec Mistral.

Abricot
Full-StackSaaSIA
nexttypescriptauthmistraldockercypress

Contexte

Projet réalisé dans le cadre du parcours OpenClassrooms. L'objectif était de développer le frontend d'un SaaS collaboratif à partir d'une API Express existante, puis d'en améliorer l'environnement technique et la qualité.

Stack

Next.js App RouterTypeScriptReactReact Hook FormZodCSS ModulesExpressPrismaPostgreSQL / SupabaseMistral APIDockerVitest / RTLCypressGitHub Actions

Choix techniques

  • Next.js App Router pour séparer le chargement serveur des interactions côté client
  • Route Handlers pour sécuriser les échanges entre le navigateur et l’API Express
  • React Hook Form et Zod pour gérer et valider les formulaires
  • Prisma et PostgreSQL Supabase pour assurer une persistance distante des données
  • Mistral côté serveur pour générer des brouillons de tâches validés avant création
  • Docker pour conteneuriser le backend et fiabiliser son environnement d’exécution
  • Vitest, RTL et Cypress pour couvrir les comportements métier et parcours critiques
  • GitHub Actions pour automatiser lint, typecheck, tests et builds

Fonctionnalités

Gestion des projetsGestion des tâchesContributeursVue Liste / KanbanGénération par IAAuthentification JWTInterface responsive

Ce que ce projet démontre

  • Développement d'un frontend Next.js complet connecté à une API Express
  • Gestion de formulaires complexes avec React Hook Form et Zod
  • Intégration sécurisée d’un LLM avec validation des réponses
  • Migration de SQLite vers PostgreSQL Supabase avec Prisma
  • Conteneurisation d’un backend Node avec Docker
  • Mise en place de tests unitaires, composants et E2E
  • Automatisation des contrôles qualité avec GitHub Actions

Limites actuelles

  • Backend initialement fourni puis adapté pour PostgreSQL et le déploiement
  • Création des tâches IA réalisée séquentiellement sans endpoint de création en masse
  • Couverture de tests volontairement ciblée sur les parcours et logiques critiques