Roadmap V1
Avancement des fonctionnalités pour le lancement de l'annuaire Prépavogt Alumni.
Import CSV depuis Microsoft Forms. Table ContactBase strictement privée, admin uniquement. 187 contacts importés avec 13 champs pré-remplis. Commande import_contacts + UI admin.
Envoi d'emails d'activation via token sécurisé (7 jours). Actions admin : envoyer invitation, renvoyer invitation. Emails via Resend en production, console en dev.
Page Activate.tsx : création de mot de passe + consentement RGPD explicite. Login JWT. vercel.json SPA rewrite. VITE_API_URL corrigé via .env.production.
Connexion API réelle (GET /api/alumni/), pagination 12/page, filtres (promotion, filière, ville, secteur), détail avec "Même promotion". React Query hooks. Mock toggle pour démo.
Connexion API réelle, routage par slug, hero banner cover image. Admin CRUD (liste + formulaire rich text + upload image). 8 articles en base.
GET/PATCH /api/alumni/me/, édition inline (selects + inputs), visibilité toggle, retrait consentement RGPD, jauge complétion sidebar.
Dashboard admin, base de contacts (KPIs + table + invitation + import CSV), CRUD articles, analytics (django-request). ProtectedAdminRoute (staff-only).
Bouton Mock/API dans la topbar. Bascule localStorage sans rebuild. Adapter hybride axios. Auth jamais mockée.
Abonnement/désabonnement utilisateur. Toggle dans NewsDetail. BooleanField User + endpoints subscribe/unsubscribe.
Sidebar redesign (groupes, promo, complétion, social links). Palette verte PVA. Pages FAQ et Événements.
Django 5.1 STORAGES dict. USE_CLOUDINARY=True en staging/prod. Covers articles + uploads → Cloudinary.
Reporté en V2. V1 : contact via mailto: sur le profil. WhatsApp optionnel si numéro fourni.
Décisions reportées en V2
- Messagerie interne : système de chat trop complexe pour V1. V1 : contact via
mailto:sur le profil, WhatsApp optionnel si numéro fourni. - Contenu partiel public (News) : les articles seront membres uniquement en V1. L'aperçu public avec "lire la suite" est planifié en V2.
- Carte interactive : géolocalisation sur carte reportée. V1 : filtre par ville uniquement. Pas de collecte d'adresse personnelle précise (RGPD).