metadata
title: ENISE Site
emoji: 🎓
colorFrom: blue
colorTo: purple
sdk: docker
sdk_version: latest
python_version: '3.12'
app_file: app.py
pinned: false
Site ENISE - Django + Appwrite Cloud
Site Django 5 déployé sur Hugging Face Spaces avec Appwrite Cloud comme backend cloud-natif.
Configuration Appwrite
1. Créer le projet
- Se connecter à Appwrite Cloud
- Créer un nouveau projet
2. Créer la base de données
- Aller dans Databases → Create Database
- Nommer la base
cours_enise
3. Collections
Créer les 3 collections suivantes :
modules
| Attribut | Type |
|---|---|
| title | string |
| code | string |
| description | string |
| year | integer |
| semester | string |
sections
| Attribut | Type |
|---|---|
| moduleId | string |
| title | string |
| order | integer |
resources
| Attribut | Type |
|---|---|
| moduleId | string |
| sectionId | string |
| title | string |
| type | string |
| url | string |
| description | string |
| order | integer |
4. Permissions
Pour chaque collection :
- Ouvrir l'onglet Settings → Permissions
- Ajouter le rôle
anyavec permissionread
5. Données示例
Module :
- title:
Énergétique – Thermique - code:
4A-S7-ET - year:
4 - semester:
S7
Sections :
- Cours (order: 1)
- TD (order: 2)
- TP (order: 3)
Resources :
- Pointer vers PDF stockés dans Appwrite Storage ou Google Drive
Variables d'environnement
Copier .env.example vers .env et remplir :
cp .env.example .env
Installation
npm install
npm run dev
Déploiement
Le site sera accessible à : https://tiffank1802.github.io/enise-site-2/
Étapes finales pour activer le déploiement :
- Aller sur https://github.com/tiffank1802/enise-site-2/settings/pages
- Sous "Build and deployment", sélectionner "GitHub Actions"
- Le workflow se lancera automatiquement au prochain push
Pour déclencher le premier déploiement :
git add .
git commit -m "Trigger deployment"
git push origin main
Structure du projet
src/
├── appwrite.js # Configuration Appwrite
├── App.jsx # Point d'entrée
├── main.jsx # Mount React
├── index.css # Styles
└── components/
├── ModulePage.jsx # Page principale du module
├── SectionList.jsx # Navigation par section
└── ResourceList.jsx # Liste des ressources