AccroCbio — site React / Django
Refonte éditoriale du site coursbiologiechaillou.fr, basée sur l'architecture Site.
Stack conservée
- Frontend : React 19, Vite, Tailwind CSS 4, composants shadcn existants, port 1028.
- Backend : Django + Django REST Framework, port 1029.
- Base : MySQL 8 / MariaDB compatible, identifiants via
.env. - Docker :
docker-compose.yml,frontend/dockerfileetbackend/dockerfileinchangés. - Gestion du contenu : Django Admin (
/admin/) pour les PDF/liens, les avis, les offres et les messages.
Mise en place
- Utiliser une nouvelle base de données, distincte de celle du site de boulangerie. Ne pas pointer sur une base de production existante.
- Copier
.env.examplevers.env, renseigner les secrets forts et le domaine réel (ALLOWED_HOSTS). docker compose up -d --build(ou le scriptstart.shdans un conteneur Pterodactyl configuré comme auparavant).docker compose exec backend python manage.py migrate.docker compose exec backend python manage.py createsuperuser: il permet l'accès à/admin/.- En production, placer le frontend et
/api/derrière nginx sous le même domaine HTTPS. Vite preview/Django runserver restent des outils de développement : pour une exposition publique durable, préférer un serveur statique et Gunicorn.
Les migrations insèrent des références à quelques PDF déjà publics (liens externes uniquement). L'auteur des documents et son hébergement gardent leurs droits. Il faut ajouter dans l'administration les PDF manquants dont le lien n'a pas été vérifié. Aucune archive PDF tierce n'est embarquée.
Ressources administrables
GET /api/education/resources/?category=svt-premiereGET /api/education/testimonials/GET /api/education/announcements/POST /api/education/contact/(limite anonyme : 5 par heure par adresse IP, messages visibles depuis l'admin).
La notification des messages par mail est facultative et s'active via CONTACT_NOTIFICATION_EMAIL, EMAIL_HOST, EMAIL_HOST_USER, EMAIL_HOST_PASSWORD, etc. Sans SMTP, le contact est enregistré en base mais aucun mail n'est envoyé.
Pages livrées
Accueil, Présentation, Services à la personne, Avance immédiate, Ressources (SVT Seconde/Première/Terminale, BPH, SBM, STL Première/Terminale), Contact, Avis, Offre de rentrée, Mentions légales, Confidentialité.
Points à personnaliser avant publication
- Renseigner l'hébergeur et valider les mentions légales / la politique de confidentialité.
- Vérifier avec la propriétaire le droit d'utiliser le nom AccroCbio, les informations personnelles et les documents existants.
- Confirmer la validité de toute offre avant de l'activer dans Django Admin (offre de septembre 2026 désactivée par défaut).
- Définir une durée de rétention et un processus de purge pour les demandes de contact.
- Configurer HTTPS,
ALLOWED_HOSTS, SMTP si nécessaire, sauvegardes DB et éventuel cache partagé pour le throttling si plusieurs workers.
Tests
- Backend :
python manage.py test education(requiert les dépendances Python et une DB de test). - Frontend :
npm ci && npm run build.
Sécurité
Les fichiers .env, .git et les anciens modules de gestion de la boulangerie sont exclus de l'archive de distribution. Le modèle utilisateur personnalisé users.User et ses migrations sont préservés pour compatibilité avec l'ancienne structure de la base et l'administration Django.