Intranet Prépavogt Alumni

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

v0.7.0 PROD

Historique des versions

v0.7.0 Juin 2026 Actuelle
  • Pages FAQ (8 questions) + Événements (6 événements, images Unsplash, 3 colonnes)
  • Analytics : django-request activé + page stats (KPIs, AreaChart, BarChart, table requêtes)
  • Import CSV contacts depuis l'admin frontend (délimiteur auto-détecté ; vs ,)
  • Migration RCT → PROD (pg_dump/psql, 185 contacts, 11 users, 9 alumni)
  • Cloudinary fix — Django 5.1 STORAGES (DEFAULT_FILE_STORAGE ignoré)
  • Domaines prod : app.prepavogt-alumni.org + intranet.prepavogt-alumni.org
  • FRONTEND_URL → app.prepavogt-alumni.org (emails activation)
  • Sidebar : titre INTRANET stylisé (gradient), auto-collapse mobile
  • Lovable branding retiré (OG tags, title, author → PVA)
  • KPI contacts corrigés (page_size 500, max_page_size dynamique)
  • Admin exclu des contacts (is_staff) + annuaire
  • Docs internes mises à jour (templates pages/)
v0.6.0 Juin 2026 Majeure
  • Phases 1-4 : client API axios (JWT interceptor, snake_case/camelCase), annuaire, actualités, profil
  • Mock toggle runtime (bouton UI, localStorage, adapter hybride)
  • Pages admin : contacts (KPIs + invitation), CRUD articles (rich text + upload image)
  • ProtectedAdminRoute — staff-only sur toutes les pages /admin/*
  • Newsletter : User.newsletter_subscribed + endpoints subscribe/unsubscribe
  • Sidebar redesign : groupes labellisés, promo/filière, jauge complétion, lien Ma promotion
  • Palette verte alignée marque PVA (remplace gris/bleu Lovable)
  • Fix noms null : sérialiseur backend (SerializerMethodField) + fallback frontend
  • Boutons Partager (Web Share API + clipboard) sur AlumniDetail et NewsDetail
  • Social links sidebar (WhatsApp, Facebook, Instagram, site web PVA)
  • Endpoint send-invitation + upload-image + contacts API (staff-only)
  • CRUD articles en API REST (ArticleWriteSerializer, RetrieveUpdateAPIView)
v0.5 Mai 2026 En cours
  • Gap analysis UI vs modèles — ajout slug, excerpt, cover_image, category sur Article
  • AlumniProfile : ajout sector (CharField) et skills (JSONField list)
  • Migrations 0002 (news) + 0003 (alumni) générées et appliquées
  • CKEditor 5 intégré dans l'admin Article avec ArticleAdminForm (CKEditor5Widget)
  • Aperçu image dans l'admin : miniature en liste (cover_thumbnail) + preview en détail (cover_preview)
  • Cloudinary configuré : USE_CLOUDINARY=True en staging/prod, False en dev (filesystem forcé dans development.py)
  • cloudinary + django-cloudinary-storage ajoutés à requirements.txt
  • URL CKEditor 5 enregistrée dans config/urls.py (NoReverseMatch corrigé)
  • Commande management load_mock_articles : 6 articles mock chargés avec images Unsplash
  • Articles serializers divisés en ArticleListSerializer + ArticleDetailSerializer
  • news/urls.py : lookup par <slug:slug>/ au lieu de <uuid:pk>/
  • Fix activation Vercel : vercel.json SPA rewrite + frontend/.env.production avec VITE_API_URL RCT
  • Fix activation link : VITE_API_URL baked au build par Vite — diagnostic cause (appel localhost:8000)
  • Docs : specs complets (PLATFORM_CONTEXT, PRD, ARCHITECTURE, DESIGN_BRIEF, DOD + 5 features)
  • Docs : env/ (README, dev, staging, prod, variables-reference)
  • Docs : analysis/ (dev-to-rct-migration, gap-analysis-models-vs-ui)
v0.4 Avril 2026 Mineure
  • Fix : endpoint GET /api/auth/activate/ renvoyait 405 — fusionné GET+POST sur même vue
  • Intégration admin_interface + colorfield pour personnalisation de l'admin Django
  • Ajout drf-spectacular, whitenoise, crispy_forms, django_countries, django_ckeditor_5
  • Backend email Resend (config/email_backends.py) pour staging et production
  • Nouvel environnement staging.py avec logging DEBUG et Resend
  • Pages de documentation interne mises à jour pour Prépavogt Alumni
v0.3 Mars 2026 Mineure
  • Frontend : page Activate.tsx avec vérification de token, formulaire mot de passe + consentement RGPD
  • Route /activate/:token enregistrée dans App.tsx
  • Admin : action "Créer profil annuaire" (bootstrap_profiles) + CSV import view
  • Commande bootstrap_alumni_profiles : crée User + AlumniProfile depuis ContactBase
  • 10 champs pré-remplis copiés de ContactBase vers AlumniProfile à l'activation
  • Settings development.py : SQLite auto-détecté, EMAIL_BACKEND console, FRONTEND_URL localhost:8080
v0.2 Février 2026 Mineure
  • Modèle ContactBase : ajout filiere, phone, promotion_year + 8 champs pré-remplis CSV
  • Modèle AlumniProfile : remplacement program/sector par filiere + champs pré-remplis
  • Commande import_contacts : lit CSV Microsoft Forms, popule 192 contacts
  • ActivationCheckSerializer : retourne les 10 champs de pré-remplissage
  • Migrations 0002 (accounts + alumni) et 0003 (pré-remplis) appliquées
v0.1 Janvier 2026 Initiale
  • Architecture initiale : apps accounts, alumni, core, news
  • Custom User model (email-based, OneToOne ContactBase)
  • JWT authentication (SimpleJWT) + permissions DRF
  • Flux d'activation : token 72h, email d'invitation, création compte
  • AlumniProfile avec consentement RGPD obligatoire
  • Configuration Docker Compose (web + db)
  • Settings multi-environnement : base, development, staging, production

Versions

v0.7.0
Juin 2026 Actuelle
v0.6.0
Juin 2026 Majeure
v0.5
Mai 2026 En cours
v0.4
Avril 2026 Mineure
v0.3
Mars 2026 Mineure
v0.2
Février 2026 Mineure
v0.1
Janvier 2026 Initiale