Abricot.
Next.js project management app to create projects, organize tasks, manage contributors and generate task drafts with Mistral.

Context
Project built as part of the OpenClassrooms program. The goal was to develop the frontend of a collaborative SaaS on top of an existing Express API, then improve its technical environment and quality.
Stack
Next.js App RouterTypeScriptReactReact Hook FormZodCSS ModulesExpressPrismaPostgreSQL / SupabaseMistral APIDockerVitest / RTLCypressGitHub Actions
Technical choices
- Next.js App Router to separate server-side loading from client-side interactions
- Route Handlers to secure exchanges between the browser and the Express API
- React Hook Form and Zod to handle and validate forms
- Prisma and Supabase PostgreSQL to provide remote data persistence
- Mistral on the server to generate task drafts validated before creation
- Docker to containerize the backend and make its runtime environment reliable
- Vitest, RTL and Cypress to cover business behaviors and critical user flows
- GitHub Actions to automate lint, typecheck, tests and builds
Features
What this project demonstrates
- Building a complete Next.js frontend connected to an Express API
- Handling complex forms with React Hook Form and Zod
- Secure integration of an LLM with validation of its responses
- Migration from SQLite to Supabase PostgreSQL with Prisma
- Containerization of a Node backend with Docker
- Setting up unit, component and end-to-end tests
- Automation of quality checks with GitHub Actions
Current limitations
- Backend initially provided, then adapted for PostgreSQL and deployment
- AI task creation performed sequentially, without a bulk creation endpoint
- Test coverage deliberately focused on critical flows and logic