[](https://opensource.org/licenses/MIT)
# Backend d'Articles
Ce projet est un backend pour la gestion d'articles. Il permet de créer, lire, mettre à jour et supprimer des articles, ainsi que de gérer les utilisateurs et les authentifications.
## Fonctionnalités
- **Gestion des articles** :
- Créer, lire, mettre à jour et supprimer des articles.
- Rechercher des articles par catégorie, auteur, tags ou statut.
- Pagination et tri des résultats.
- **Authentification** :
- Inscription et connexion des utilisateurs.
- Protection des routes avec JWT.
- Gestion des rôles (utilisateur, admin).
- **Autres fonctionnalités** :
- Validation des données.
- Gestion des erreurs centralisée.
- Journalisation des requêtes.
## Technologies utilisées
- **Backend** :
- Node.js
- Express.js
- MongoDB (avec Mongoose)
- JWT (JSON Web Tokens) pour l'authentification
- Bcrypt pour le hachage des mots de passe
- **Outils** :
- ESLint et Prettier pour la qualité du code
- Postman pour tester les API
## Installation
1. Clonez le dépôt :
```bash
git clone https://github.com/votre-utilisateur/backend-articles.git
cd backend-articles
```
-
Installez les dépendances :
npm install
-
Configurez les variables d'environnement :
- Créez un fichier
.env
à la racine du projet. - Ajoutez les variables suivantes :
PORT=3000 MONGODB_URI=mongodb://localhost:27017/nom-de-votre-base-de-donnees JWT_SECRET=votre-secret-jwt NODE_ENV=development
- Créez un fichier
-
Démarrez le serveur :
npm start
-
Accédez à l'API :
- Le serveur est accessible à l'adresse :
http://localhost:3000
- Le serveur est accessible à l'adresse :
- GET /api/article/toutArticles : Récupérer tous les articles (public).
- GET /api/article/chercherArticle : Rechercher article (public)
- GET /api/article/mesArticles : Récupérer les articles de l'utilisateur connecté.
- POST /api/article/ajouterArticle : Créer un nouvel article.
- PUT /api/article/:id : Mettre à jour un article.
- DELETE /api/article/:id : Supprimer un article.
- POST /api/signUp : Inscription d'un nouvel utilisateur.
- POST /api/login : Connexion d'un utilisateur.
- POST /api/logout : Deconnexion utilisateur.
- GET /api/checkAuth : Verification si l'utilisateur est connecter.
- GET /api/getUser : Recuperer tous les utilisateur (Admin).
- DELETE /api/:id : Supprimer utilisateur (Admin)
- GET /api/:id : Recuperer information personnel (Prive).
- ** -****
curl -X POST http://localhost:3000/api/articles \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <JWT>" \
-d '{
"title": "Mon premier article",
"content": "Contenu de l'article",
"category": "Technologie",
"tags": ["nodejs", "backend"]
}'
curl -X GET "http://localhost:3000/api/articles?category=Technologie&page=1&limit=10"
backend-articles/
├── config/ # Configuration (base de données, etc.)
├── controllers/ # Contrôleurs pour gérer les requêtes
├── models/ # Modèles Mongoose
├── routes/ # Routes de l'API
├── middleware/ # Middleware personnalisé
├── utils/ # Utilitaires (gestion des erreurs, etc.)
├── .env.example # Exemple de fichier .env
├── app.js # Point d'entrée de l'application
└── README.md # Documentation
- Forkez le projet.
- Créez une branche pour votre fonctionnalité (
git checkout -b feature/nouvelle-fonctionnalite
). - Committez vos changements (
git commit -m 'Ajouter une nouvelle fonctionnalité'
). - Poussez vers la branche (
git push origin feature/nouvelle-fonctionnalite
). - Ouvrez une Pull Request.
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
---