5ac4b99e326db535e6bed7116441a493e9839129
api.konstitisyon.la
Backend Directus pour konstitisyon.la, une plateforme de rédaction constitutionnelle collaborative. Ce dépôt contient la configuration Directus et le schéma de la base de données.
Architecture
Technologies
- Backend: Directus 11.x
- Base de données: SQLite
- Authentification: JWT via Directus
Structure du projet
api.konstitisyon.la/
├── extensions/ # Extensions Directus personnalisées
├── uploads/ # Fichiers uploadés
├── data.db # Base de données SQLite
└── .env # Configuration de l'environnement
Modèle de données
Schéma de la base de données
erDiagram
TITRES ||--o{ ARTICLES : contient
TITRES ||--o{ COMMENTAIRES : discute
TITRES {
uuid id PK
string status
uuid user_created FK
datetime date_created
text contenu
integer numero
}
ARTICLES {
uuid id PK
string status
uuid user_created FK
datetime date_created
text contenu
integer numero
uuid titre FK
}
COMMENTAIRES {
uuid id PK
string status
uuid user_created FK
datetime date_created
text contenu
uuid titre FK
}
VOTES {
uuid id PK
uuid user_created FK
datetime date_created
datetime date_updated
uuid content_version_id FK
integer vote
}
DIRECTUS_VERSIONS ||--o{ VOTES : evalue
DIRECTUS_USERS ||--o{ VOTES : cree
DIRECTUS_USERS ||--o{ COMMENTAIRES : ecrit
DIRECTUS_USERS ||--o{ ARTICLES : redige
DIRECTUS_USERS ||--o{ TITRES : redige
Collections Directus
Collections principales
-
Titres
- Sections principales de la constitution
- Numérotés et versionnés
- Champs : numero, contenu, status
-
Articles
- Contenus détaillés sous chaque titre
- Liés à un titre parent
- Champs : numero, contenu, titre (FK), status
Collections participatives
-
Commentaires
- Discussions sur les titres
- Liés à un titre spécifique
- Champs : contenu, titre (FK), user_created
-
Votes
- Évaluation des versions de contenu
- Valeurs : +1 ou -1
- Champs : content_version_id (FK), vote, user_created
Installation
Prérequis
- Node.js 16+
- npm ou yarn
- SQLite 3
Configuration
Copier le fichier .env.sample vers un fichier .env :
cp .env.sample .env
Démarrage
# Installation des dépendances
npm install
# Démarrage du serveur
npx directus start
API
Points d'entrée principaux
Titres
GET /items/titres: Liste des titresGET /items/titres/:id: Détails d'un titrePOST /items/titres: Créer un titrePATCH /items/titres/:id: Modifier un titre
Articles
GET /items/articles: Liste des articlesGET /items/articles/:id: Détails d'un articlePOST /items/articles: Créer un articlePATCH /items/articles/:id: Modifier un article
Commentaires
GET /items/commentaires: Liste des commentairesGET /items/commentaires/:id: Détails d'un commentairePOST /items/commentaires: Créer un commentaire
Votes
GET /items/votes: Liste des votesGET /items/votes/:id: Détails d'un votePOST /items/votes: Créer un votePATCH /items/votes/:id: Modifier un vote
Authentification
POST /auth/login: Connexion utilisateurPOST /auth/refresh: Rafraîchissement du tokenPOST /auth/logout: Déconnexion
Base de données
Le projet utilise une base de données SQLite. Un fichier data.sample.db est fourni avec :
- La structure complète de la base de données
- Un compte administrateur par défaut :
- Email : admin@example.com
- Mot de passe : admin
Pour démarrer un nouveau projet :
- Copier
data.sample.dbversdata.dbcp data.sample.db data.db
- Mettre à jour le fichier
.envpour pointer versdata.db - Démarrer le serveur
License
Ce projet est sous licence AGPL-3. Cette licence garantit que le code reste libre et que toute modification doit être partagée avec la communauté. Voir le fichier LICENSE pour plus de détails.
Contact
Pour toute question ou suggestion concernant le projet, n'hésitez pas à ouvrir une issue sur Codeberg.
Description
Backend Directus pour konstitisyon.nu, une plateforme de rédaction constitutionnelle collaborative. Ce dépôt contient la configuration Directus et le schéma de la base de données.
Languages
JavaScript
100%