Construire l’application « Mes candidatures »

Construire le tableau de bord et la feuille de suivi dans le projet « Mes candidatures ».

Objectif

Construire avec l’agent une application locale simple pour suivre ses candidatures, sans créer de document de spécification intermédiaire.

Durée

60 minutes.

Résultat attendu

L’application « Mes candidatures » affiche un tableau de bord clair, une liste modifiable, un formulaire d’ajout et une page de détail pour chaque candidature.

Prompt à copier

Construis une application locale appelée « Mes candidatures ». Utilise Express, HTML, CSS et JavaScript simples. N’ajoute ni React, ni Next.js, ni Docker, ni base de données, ni service cloud. Réutilise l’installation et les lanceurs déjà fournis par le projet.

L’application doit être compréhensible par une personne non technique. Utilise des textes en français, des boutons explicites, des libellés visibles et des messages d’erreur qui expliquent quoi corriger. L’interface doit rester lisible sur ordinateur et sur mobile.

Données : utilise un fichier `applications.csv` comme seule source de vérité, avec exactement ces colonnes : id, entreprise, poste, statut, recherche, source, date_ajout, date_candidature, prochaine_action, echeance, resume, details, notes. L’id est généré automatiquement et ne doit jamais apparaître dans l’interface.

Utilise ces statuts de candidature : À étudier, À préparer, Envoyée, Relance, Échange, Entretien, Offre, Refus, Archivée. Utilise ces états de recherche : en_attente, en_cours, terminee, echec. La colonne `details` accepte du Markdown et contient les sections `## Offre et entreprise`, `## Contact`, `## Correspondance avec mon profil` et `## Sources vérifiées`.

Le parcours reste piloté par l’utilisateur : chaque nouvelle opportunité commence au statut À étudier, puis l’utilisateur la fait avancer dans le suivi. L’application ne candidate jamais automatiquement. Si une URL d’offre existe déjà, ouvre la candidature correspondante au lieu de créer un doublon.

Tableau de bord : affiche le titre « Mes candidatures » et un bouton principal « Ajouter une candidature ». Place ensuite quatre cartes : actions prévues aujourd’hui, candidatures envoyées pendant les 7 derniers jours, candidatures en attente et entretiens à venir. Calcule ces nombres depuis le CSV et affiche 0 quand aucune candidature ne correspond.

Sous les cartes, affiche une liste sous forme de feuille avec entreprise, poste, statut, date de candidature, prochaine action, échéance et état de recherche. Ajoute une recherche par entreprise ou poste, un filtre par statut et un tri par date. Les cellules statut, date de candidature, prochaine action, échéance et notes doivent être modifiables simplement. Enregistre chaque modification dès sa validation et affiche une confirmation discrète.

Quand la liste est vide, explique clairement comment ajouter la première candidature. Ne montre jamais de tableau vide sans indication. Un clic sur une ligne ouvre la page `/[id]` correspondante, mais l’id reste invisible dans le tableau.

Formulaire : accepte une URL d’offre, jusqu’à cinq fichiers, du texte collé, le nom de l’entreprise, le poste et une note. Présente ces champs avec des mots simples. Permets de créer une candidature dès qu’au moins une source est fournie : URL, fichier ou texte. À l’enregistrement, crée la ligne avec `statut=À étudier` et `recherche=en_attente`, puis ouvre sa page de détail. L’enrichissement automatique sera ajouté au chapitre suivant.

Page de détail : affiche l’entreprise et le poste en titre, puis le statut, les dates, la prochaine action, le résumé, les détails, les notes et les sources reçues. Rends les informations principales modifiables. Ajoute un lien clair pour revenir au tableau de bord. Il n’y a pas de suppression : une candidature que l’on ne veut plus suivre passe au statut Archivée.

Protège chaque écriture du CSV avec un verrou, une sauvegarde, un fichier temporaire et un renommage atomique. Si une écriture échoue, conserve les données précédentes et affiche un message compréhensible.

Ce que l’agent doit faire

  1. Créer le CSV et les routes locales en gardant l’identifiant invisible.
  2. Construire le tableau de bord, les filtres, la feuille modifiable et son état vide.
  3. Construire le formulaire, empêcher les doublons d’URL et ouvrir la bonne candidature.
  4. Construire la page de détail avec des informations modifiables et des messages compréhensibles.
  5. Sécuriser les écritures et préserver les données en cas d’échec.

Contrôle visuel

Le tableau de bord affiche « Mes candidatures », quatre cartes puis la feuille de suivi. Le bouton d’ajout est immédiatement visible. L’id n’apparaît jamais. Une liste vide explique comment commencer, et une ligne existante ouvre sa page de détail.

Critère de validation

Tu peux ajouter une candidature depuis une URL, un fichier ou du texte, la retrouver dans la feuille, modifier son statut et ouvrir sa page de détail. Une URL déjà connue ne crée pas de doublon.