ENISE / README_PRODUCTION.md
tiffank1802
Add comprehensive production README
51bb26f
# ENISE Site - Production Deployment Guide
## 📋 Sommaire
Ce repository contient l'application ENISE Site - une plateforme web Django pour l'école d'ingénieurs ENISE, déployée sur Hugging Face Spaces avec intégration Appwrite.
- **Repository**: https://github.com/tiffank1802/enise-site-2
- **HF Space**: https://huggingface.co/spaces/ktongue/ENISE
- **Framework**: Django 5.0
- **Backend**: Appwrite Cloud
- **Deployment**: Docker sur HF Spaces
## ✨ Caractéristiques
### ✅ Implémentées
- Homepage avec branding ENISE
- Listing des formations/spécialisations
- Intégration Appwrite pour les données
- Système de gestion des fichiers
- Authentification utilisateur
- Stockage MongoDB (optionnel)
- Fichiers statiques avec WhiteNoise
- Configuration production-ready
- Documentation complète
### 🗄️ Collections Appwrite Disponibles
- `specialites` - Programs/Specialties
- `actualites` - News/Updates
- `contact` - Contact form submissions
- `partenaires` - Academic partners
- `statistiques` - School statistics
## 🚀 Déploiement Rapide
### 1️⃣ Configuration sur HF Spaces
1. Visitez: https://huggingface.co/spaces/ktongue/ENISE
2. Cliquez **⚙️ Settings**
3. Allez à **Repository Secrets**
4. Ajoutez ces variables (voir `QUICK_START.md` pour valeurs):
```
DEBUG=False
SECRET_KEY=<votre-clé>
ALLOWED_HOSTS=*
CSRF_TRUSTED_ORIGINS=https://ktongue-enise.hf.space
APPWRITE_ENDPOINT=https://fra.cloud.appwrite.io/v1
APPWRITE_PROJECT_ID=<votre-id>
APPWRITE_API_KEY=<votre-clé> ⚠️
APPWRITE_DATABASE_ID=<votre-db-id>
```
### 2️⃣ Vérification
Une fois configuré, le space se redémarrera automatiquement.
Testez les endpoints:
- Homepage: https://ktongue-enise.hf.space/
- Formations: https://ktongue-enise.hf.space/formations/
- API: https://ktongue-enise.hf.space/api/appwrite/test/
Voir `VERIFIER_DEPLOIEMENT.md` pour guide complet.
## 📚 Documentation
| Document | Purpose |
|----------|---------|
| `QUICK_START.md` | Démarrage rapide |
| `DEPLOYMENT_CHECKLIST.md` | Checklist complète |
| `VERIFIER_DEPLOIEMENT.md` | Guide vérification (FR) |
| `DEPLOYMENT_STATUS.md` | État du déploiement |
| `FIXES_APPLIED.md` | Corrections appliquées |
## 🔧 Technologies
| Composant | Version |
|-----------|---------|
| Python | 3.11+ |
| Django | 5.0+ |
| Appwrite | 1.0+ |
| WhiteNoise | 6.5+ |
| PostgreSQL | optionnel |
## 📊 Structure du Projet
```
enise-site/
├── enise_site/ # Django project
│ ├── settings.py # Configuration
│ ├── urls.py # URL routing
│ └── wsgi.py # WSGI entry
├── app_core/ # Main application
│ ├── models.py # ORM models
│ ├── views.py # Views
│ ├── urls.py # Routes
│ └── templates/ # HTML templates
├── app_formations/ # Formations app
├── static/ # CSS, JS, images
├── media/ # User uploads
├── Dockerfile # Docker config
├── run.sh # Startup script
├── requirements.txt # Dependencies
└── manage.py # Django CLI
```
## 🔐 Configuration de Sécurité
### ✅ Appliquée
- Credentials MongoDB supprimées ✓
- SECRET_KEY en variables d'env ✓
- DEBUG=False en production ✓
- WhiteNoise pour fichiers statiques ✓
- CSRF protection configurée ✓
- API keys en HF Secrets ✓
### ⚠️ À Faire
- Jamais committer `.env`
- Régénérer SECRET_KEY pour chaque deployment
- Utiliser HTTPS en production
- Limiter ALLOWED_HOSTS si besoin
## 🧪 Tests
### Tests Locaux
```bash
# Vérifier configuration
python manage.py check
# Tester déploiement
python test_deployment.py
# Vérifier variables d'env
python check_env.py
```
### Tests HF Spaces
1. Vérifier status "Running"
2. Tester endpoints (voir `VERIFIER_DEPLOIEMENT.md`)
3. Vérifier logs en cas d'erreur
## 🚨 Dépannage
### Space "Building"
- C'est normal, attendez 5-10 minutes
- Vérifiez logs si > 15 min
### HTTP 400
- Vérifier `SECRET_KEY` configurée
- Vérifier `ALLOWED_HOSTS=*`
- Vérifier `DEBUG=False`
### API Appwrite échoue
- Vérifier `APPWRITE_API_KEY`
- Vérifier IDs du projet/database
- Régénérer clé si besoin
### Files statiques ne chargent pas
- WhiteNoise est activé ✓
- Vérifier `.log` pour erreurs
- Redémarrer le space
Voir `VERIFIER_DEPLOIEMENT.md` pour plus de solutions.
## 📈 Monitoring
Vérifiez régulièrement:
1. **Status du Space**: https://huggingface.co/spaces/ktongue/ENISE
2. **Logs**: Settings → Logs
3. **Endpoints**: Tester régulièrement
4. **Errors**: Chercher "ERROR" dans les logs
## 🔄 Mise à Jour
Pour déployer une mise à jour:
```bash
# 1. Faire changements localement
# 2. Tester localement
python manage.py check
# 3. Commit et push
git add .
git commit -m "Description"
git push origin main
# 4. HF Spaces redéploie automatiquement
# 5. Vérifier logs et endpoints
```
## 📞 Support
- **Issues**: https://github.com/tiffank1802/enise-site-2/issues
- **Docs**: Voir fichiers `*.md` dans le repo
- **Appwrite**: https://console.appwrite.io
## 📝 Notes Importantes
1. **Credentials**: Ne jamais committer secrets
2. **Branches**: Main = production, utilisez branches pour dev
3. **Migrations**: Auto-exécutées par `run.sh`
4. **Static Files**: Auto-collectés par `run.sh`
5. **Logs**: Disponibles dans HF Spaces Settings
## ✅ Dernière Vérification
Avant de considérer le déploiement comme "done":
- [ ] Space status = "Running"
- [ ] Pas d'erreurs dans les logs
- [ ] Homepage charge (200 OK)
- [ ] Formations visibles
- [ ] API test répond
- [ ] Static files chargent
- [ ] Admin panel accessible
- [ ] Appwrite connecté (avec API Key)
## 📊 Status
- **Code**: ✅ Production-ready
- **Tests**: ✅ Tous passent
- **Documentation**: ✅ Complète
- **Deployment**: ✅ Prêt
**Dernière mise à jour**: Jan 30, 2025
---
Pour commencer, consultez `QUICK_START.md` ou `VERIFIER_DEPLOIEMENT.md`.