Documentation de l'Application
1. Présentation Générale
Objectif de l'application
Application permettant la création et la gestion d'articles de blog avec CRUD.
Architecture Générale
Schéma de l'architecture :

Environnement de Développement
- Node.js & npm
- MongoDB
- Cloudinary (stockage des fichiers)
- Gatsby (pour le front-end)
Installation
git clone https://github.com/user/repo.git cd repo npm install npm run dev
2. Tier Présentation (Front-end)
Technologies utilisées
- React / Gatsby
- Context API / Provider
- Requêtes API avec Axios
- Markdown pour le contenu des articles
3. Tier Application (Back-end)
Endpoints de l’API
Voir les endpoints
GET /articles - Récupérer tous les articles GET /article/:slug - Récupérer un article par slug POST /save/:slug - Ajouter un article PUT /update/:slug - Modifier un article DELETE /article/:slug - Supprimer un article POST /upload/:slug - Upload un fichier Markdown
Exemple de requête API
curl -X GET https://blog-api.david-konate.fr/api/articles
4. Tier Données (Base de données)
Schéma de la base de données
Voir le schéma
const articleSchema = new mongoose.Schema({
title: String,
slug: String,
category: String,
fileUrl: String,
createdAt: { type: Date, default: Date.now },
image: String,
author: String,
date: String,
protected: Boolean,
});5. Déploiement et Infrastructure
Déploiement sur O2Switch avec gestion des environnements.
6. Gestion des Articles
Service useArticles
Voir l'exemple de code
const fetchArticles = async (page = 1, category = "") => {
setLoading(true);
const response = await fetch(
`https://blog-api.david-konate.fr/api/articles?page=${page}&category=${category}`
);
const data = await response.json();
setArticles(data);
};