Welcome To My Savane
A profile that evolves. An application that stays true to its submission.
From building a profile to submitting an application: a job board that retains the information selected at the time of submission.

Full-stack · EPITECH pair project · 2026
Completed project · Developed as a pair
- React
- Node.js
- PostgreSQL
- Express
- JavaScript
- Docker
The starting point.
Let candidates compose an application with a message, projects, experience and a CV. The submitted dossier must retain that content even when the candidate later edits their profile.
An EPITECH educational project developed as a pair. The React interface connects to an Express API and a PostgreSQL database. The completed project includes candidate, administration and recruiter flows. The directory lists only candidates who have enabled profile visibility.
The name is deliberately parodic: the French word “savane” replaces the English “savanna” in this nod to Welcome to the Jungle.
What I built.
My own contribution to the project.
Pair project. My teammate notably developed the catalogue, search filters, CV file upload/versioning and company workspace. The contributions below describe my own work.
Authentication and profile
Registration, session-based login and candidate profile flows, with input validation and API ownership checks.
Building the application
Editing projects and experience, selecting profile items and a CV, application review and submission history.
Transaction and frozen dossier
Saving a frozen dossier in a PostgreSQL transaction, locking selected data during submission. Candidate access to their submitted dossier.
Search API and access control
Recruiter candidate-search API, with candidate-controlled profile visibility and access checks.
Administration and integration
Administration of accounts and application statuses, homepage and search experience, integration tests and Swagger documentation for the implemented routes.
What changes. What stays.
A candidate keeps updating their profile after applying. The recruiter still needs the dossier exactly as it was submitted.
The current profile
Projects and experience remain editable for future applications.
Editable after submissionThe submitted dossier
A copy of the selected items is stored with the application. Later profile edits do not rewrite it.
Kept as submittedThe guarantee lives in the transaction.
The Express API locks the selected data during submission and copies it within a PostgreSQL transaction. The interface lets the candidate review their dossier.
- Selected projects
- Selected experience
- Message and CV
- Submission history
Built as a pair. CV file upload and versioning are among my teammate’s contributions.
What I learned.
A form involves more than saving fields. Data ownership, what can still change and what must remain faithful to submission need explicit rules. The frozen dossier brought those rules together across the interface, API and SQL transaction.