Intranet Prépavogt Alumni

Documentation interne · Django 5.1 · DRF · React · PostgreSQL · Cloudinary · Resend

v0.7.0 PROD

Roadmap V1

Avancement des fonctionnalités pour le lancement de l'annuaire Prépavogt Alumni.

Livré Fonctionnalité disponible En cours En développement À faire Planifié V1 V2 Reporté phase suivante
Progression V1 5 / 8 fonctionnalités livrées
📋
Base de contacts privée Livré

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.

✉️
Système d'invitation Livré

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.

🔐
Activation & authentification Livré

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.

📖
Annuaire alumni Livré

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.

📰
Actualités Livré

Connexion API réelle, routage par slug, hero banner cover image. Admin CRUD (liste + formulaire rich text + upload image). 8 articles en base.

👤
Profil utilisateur Livré

GET/PATCH /api/alumni/me/, édition inline (selects + inputs), visibilité toggle, retrait consentement RGPD, jauge complétion sidebar.

🛡️
Pages administration Livré

Dashboard admin, base de contacts (KPIs + table + invitation + import CSV), CRUD articles, analytics (django-request). ProtectedAdminRoute (staff-only).

🔀
Mock toggle runtime Livré

Bouton Mock/API dans la topbar. Bascule localStorage sans rebuild. Adapter hybride axios. Auth jamais mockée.

📧
Newsletter Livré

Abonnement/désabonnement utilisateur. Toggle dans NewsDetail. BooleanField User + endpoints subscribe/unsubscribe.

🎨
Design & UX Livré

Sidebar redesign (groupes, promo, complétion, social links). Palette verte PVA. Pages FAQ et Événements.

🖼
Stockage media (Cloudinary) Livré

Django 5.1 STORAGES dict. USE_CLOUDINARY=True en staging/prod. Covers articles + uploads → Cloudinary.

💬
Messagerie interne V2

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).