ENISE / APPWRITE_README.md
tiffank1802
starting
e1b5e25

Configuration Appwrite pour Django ENISE Site

Prérequis

  1. Compte Appwrite Cloud ou serveur Appwrite auto-hébergé
  2. Python 3.9+
  3. Django 4.2+

Installation

pip install -r requirements.txt

Configuration

1. Variables d'environnement

Créez un fichier .env à la racine du projet :

APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
APPWRITE_PROJECT_ID=your_project_id
APPWRITE_API_KEY=your_api_key
APPWRITE_DATABASE_ID=enise_db

2. Créer le projet Appwrite

  1. Connectez-vous à Appwrite Cloud
  2. Créez un nouveau projet : enise-site
  3. Notez l'ID du projet
  4. Créez une base de données : enise_db

3. Créer les collections

Dans le tableau de bord Appwrite, créez ces collections :

Collection Attributs
specialites nom (string), slug (string), description (string), image_url (url), icone (string), ordre (integer)
actualites titre (string), slug (string), contenu (string), image_url (url), date_publication (datetime), est_publie (boolean)
contact nom (string), email (email), sujet (string), message (string), date_envoi (datetime), traite (boolean)
partenaires nom (string), logo_url (url), url (url), type_partenaire (string)
statistiques nom (string), valeur (string), suffixe (string), icone (string), ordre (integer)

4. Configurer les permissions

Pour chaque collection, configurez les permissions :

  • create: Rôle any (ou utilisateur connecté)
  • read: Rôle any
  • update: Rôle any
  • delete: Rôle admin

Commandes Django

Créer les collections automatiquement

python manage.py setup_appwrite

Tester la connexion

python manage.py sync_appwrite --test

Synchroniser les données locales vers Appwrite

python manage.py sync_appwrite

API REST Endpoints

Les vues Appwrite sont disponibles à ces URLs :

Méthode URL Description
GET /api/appwrite/test/ Tester la connexion
POST /api/appwrite/documents/ Créer un document
GET /api/appwrite/documents/ Lister les documents
GET /api/appwrite/documents/<id>/ Récupérer un document
PUT /api/appwrite/documents/<id>/ Mettre à jour un document
DELETE /api/appwrite/documents/<id>/ Supprimer un document

Exemple d'utilisation

Créer un document :

curl -X POST http://localhost:8000/api/appwrite/documents/ \
  -H "Content-Type: application/json" \
  -d '{
    "collection_id": "specialites",
    "nom": "Génie Civil",
    "slug": "genie-civil",
    "description": "Formation en génie civil",
    "icone": "fa-building",
    "ordre": 1
  }'

Lister les documents :

curl "http://localhost:8000/api/appwrite/documents/?collection_id=specialites"

Structure des fichiers

enise_site/
├── settings.py              # Configuration Django
├── appwrite_service.py      # Client Appwrite
app_core/
├── appwrite_views.py        # Vues API REST
├── management/commands/
│   ├── setup_appwrite.py    # Créer les collections
│   └── sync_appwrite.py     # Synchroniser les données
requirements.txt
.env.example

Déploiement sur Hugging Face Spaces

  1. Créez un fichier Procfile :

    web: gunicorn enise_site.wsgi
    
  2. Configurez les variables d'environnement dans HF Spaces

  3. Poussez le projet :

    git add .
    git commit -m "Appwrite integration"
    git push
    

Documentation

Résolution des problèmes

  • "APPWRITE_PROJECT_ID non configuré" : Vérifiez le fichier .env
  • Erreur 401 : Vérifiez la clé API
  • Erreur 404 : Vérifiez l'ID de la collection