Follow Alex, a talented developer, as they build the foundations of CVBoost, a cutting-edge platform for career optimization. Witness the fusion of clean code and visionary design in this professional journey of growth and innovation.
Alex sits in a modern, sunlit workspace, reviewing a recruitment letter from TalentIA. The challenge is to build CVBoost, a platform that will eventually use AI to revolutionize how people find their dream jobs.
The journey begins with the landing page, where Alex translates the vision of professional growth into a sleek, responsive design. Lines of code flow across the screen, creating an inviting portal for users to explore.
Alex focuses on the registration process, building a secure gateway where users can safely create their accounts. Every detail, from email uniqueness to password hashing, is handled with meticulous care to protect user privacy.
The login system comes to life, featuring a dynamic navigation bar that changes based on the user's status. Alex watches with satisfaction as the interface seamlessly transitions from a public view to a personalized dashboard.
In the heart of the application, Alex builds the upload module, ensuring it only accepts professional document formats. The system is designed to handle files with precision, rejecting anything that doesn't meet the strict size and type requirements.
To ensure maximum security, Alex implements a system that assigns a unique UUID to every uploaded CV. This prevents any unauthorized access and keeps the storage folder organized and protected against data leaks.
The history page takes shape, presenting a clear and organized table of all the documents a user has submitted. It provides a sense of progress, showing the date and status of each career-boosting file.
Alex designs the analysis result page, using sophisticated placeholders to represent the future AI engine. The interface promises that intelligent insights and job matching are just around the corner.
Before the final delivery, Alex organizes the code into a clean architecture and writes a comprehensive guide for other developers. Every commit in the version history tells a story of steady, professional progress.
With the MVP complete and the database ready, Alex prepares to launch the foundation of CVBoost. The stage is set for the next phase of development, where artificial intelligence will finally meet the human career path.
Generation Prompt
Contexte Vous avez été recruté par la startup TalentIA pour développer leur nouveau produit phare : CVBoost. L’objectif est de créer un service intelligent capable d'aider les utilisateurs à optimiser leur carrière grâce à l'IA. Dans cette première phase, votre mission est de construire les fondations web de la plateforme. Vous devez livrer une application robuste (un MVP - Produit Minimum Viable) permettant aux utilisateurs de s'inscrire et de soumettre leurs CV en toute sécurité. L'objectif est de stabiliser la structure web et la gestion des données avant d'injecter l'intelligence artificielle dans les phases suivantes. Objectifs pédagogiques Ce projet vous permettra de : Framework Flask : Structurer une application web complète. Templating Jinja2 : Créer des interfaces dynamiques et réutilisables. Gestion des sessions : Implémenter un système d'inscription et de connexion sécurisé. Persistance des données : Utiliser SQLAlchemy pour lier des fichiers à des utilisateurs. Sécurité & Fichiers : Gérer l'upload sécurisé (type, taille, renommage). Pratiques Pro : Versionnage Git atomique et documentation technique. Technologies & Stack Composant Technologie Backend Python / Flask Authentification Flask-Login & Werkzeug (pour le hashage) Base de données SQLite (Via SQLAlchemy) — Note : Solution temporaire pour le dev Frontend Jinja2, HTML5, CSS3 (Bootstrap ou Tailwind autorisés) Sécurité Bibliothèque UUID pour le stockage des fichiers Parcours Utilisateur & Cartographie des Pages 1. Accueil (index.html) | Route : / Présentation du concept CVBoost et des bénéfices (Design inspiré de Rezi ou Jobscan). Barre de navigation dynamique : affiche "Connexion" si l'utilisateur est anonyme, "Mon Historique" et "Déconnexion" s'il est authentifié. 2. Inscription (register.html) | Route : /register Formulaire : Nom, Prénom, Email, Mot de passe, Confirmation du mot de passe. Règle : Vérifier l'unicité de l'email et hasher le mot de passe avant enregistrement. 3. Connexion (login.html) | Route : /login Formulaire : Email et Mot de passe. Redirection automatique vers le formulaire d'upload après succès. 4. Upload de CV (upload.html) | Route : /upload Contrainte : Accessible uniquement aux utilisateurs connectés. Formulaire d'envoi acceptant exclusivement le PDF et le DOCX. Validation de la taille (max 5 Mo). Traitement : Renommage du fichier en UUID.pdf ou UUID.docx et stockage dans un dossier /uploads. 5. Mon Historique (history.html) | Route : /history Tableau listant les CV envoyés par l'utilisateur connecté. Colonnes : Nom d'origine, Date d'envoi, Statut (Fixé à "En attente d'analyse" pour le moment). Lien vers la page de résultat pour chaque document. 6. Résultat de l'Analyse (result.html) | Route : /result/<id> Page de visualisation du document sélectionné. Placeholders : Étant donné que l'IA n'est pas encore intégrée, vous devez simuler l'interface avec des messages du type "Analyse IA bientôt disponible" ou "Matching d'offres en cours de préparation". Spécifications Techniques Importantes Base de Données : Utilisez SQLite pour le moment. C'est une base de données de développement. Nous migrerons vers un SGBD sql dans les modules qui suivent. Sécurité des fichiers : Un utilisateur ne doit pas pouvoir accéder au CV d'un autre utilisateur en changeant l'ID dans l'URL (vérification de propriété via user_id). Architecture : Séparez bien vos modèles de données (models.py), vos routes (routes.py) et vos fichiers statiques. Livrables Attendus Lien du dépôt GitHub : Un historique de commits montrant l'évolution (ex: "feat: add user authentication"). README.md : * Procédure d'installation (pip install -r requirements.txt). Commande pour lancer l'application. Schéma simplifié de la base de données. Base SQLite : Le fichier .db (ou un script de peuplement) contenant au moins un compte test.