{"id":48396359,"url":"https://github.com/elhalj/api.article","last_synced_at":"2026-04-06T01:24:38.204Z","repository":{"id":279875155,"uuid":"940290592","full_name":"elhalj/api.article","owner":"elhalj","description":"API that you can use to do you blog application","archived":false,"fork":false,"pushed_at":"2025-06-11T15:43:53.000Z","size":84,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"development","last_synced_at":"2025-06-11T17:10:52.886Z","etag":null,"topics":["api-blog","api-rest","blog-api-with-nodejs-and-expressjs"],"latest_commit_sha":null,"homepage":"https://api-article-g253.onrender.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elhalj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-27T23:30:32.000Z","updated_at":"2025-06-11T15:43:57.000Z","dependencies_parsed_at":"2025-02-28T08:15:04.646Z","dependency_job_id":"6739223e-14c7-421e-83e0-940770468348","html_url":"https://github.com/elhalj/api.article","commit_stats":null,"previous_names":["elhalj/api.article"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/elhalj/api.article","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elhalj%2Fapi.article","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elhalj%2Fapi.article/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elhalj%2Fapi.article/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elhalj%2Fapi.article/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elhalj","download_url":"https://codeload.github.com/elhalj/api.article/tar.gz/refs/heads/development","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elhalj%2Fapi.article/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31455955,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"ssl_error","status_checked_at":"2026-04-05T21:22:51.943Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-blog","api-rest","blog-api-with-nodejs-and-expressjs"],"created_at":"2026-04-06T01:24:37.703Z","updated_at":"2026-04-06T01:24:38.198Z","avatar_url":"https://github.com/elhalj.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"````markdown\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n# Backend d'Articles\n\nCe 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.\n\n## Fonctionnalités\n\n- **Gestion des articles** :\n\n  - Créer, lire, mettre à jour et supprimer des articles.\n  - Rechercher des articles par catégorie, auteur, tags ou statut.\n  - Pagination et tri des résultats.\n\n- **Authentification** :\n\n  - Inscription et connexion des utilisateurs.\n  - Protection des routes avec JWT.\n  - Gestion des rôles (utilisateur, admin).\n\n- **Autres fonctionnalités** :\n  - Validation des données.\n  - Gestion des erreurs centralisée.\n  - Journalisation des requêtes.\n\n## Technologies utilisées\n\n- **Backend** :\n\n  - Node.js\n  - Express.js\n  - MongoDB (avec Mongoose)\n  - JWT (JSON Web Tokens) pour l'authentification\n  - Bcrypt pour le hachage des mots de passe\n\n- **Outils** :\n  - ESLint et Prettier pour la qualité du code\n  - Postman pour tester les API\n\n## Installation\n\n1. Clonez le dépôt :\n   ```bash\n   git clone https://github.com/votre-utilisateur/backend-articles.git\n   cd backend-articles\n   ```\n````\n\n2. Installez les dépendances :\n\n   ```bash\n   npm install\n   ```\n\n3. Configurez les variables d'environnement :\n\n   - Créez un fichier `.env` à la racine du projet.\n   - Ajoutez les variables suivantes :\n     ```env\n     PORT=3000\n     MONGODB_URI=mongodb://localhost:27017/nom-de-votre-base-de-donnees\n     JWT_SECRET=votre-secret-jwt\n     NODE_ENV=development\n     ```\n\n4. Démarrez le serveur :\n\n   ```bash\n   npm start\n   ```\n\n5. Accédez à l'API :\n   - Le serveur est accessible à l'adresse : `http://localhost:3000`\n\n## Routes de l'API\n\n### Articles\n\n- **GET /api/article/toutArticles** : Récupérer tous les articles (public).\n- **GET /api/article/chercherArticle** : Rechercher article (public)\n- **GET /api/article/mesArticles** : Récupérer les articles de l'utilisateur connecté.\n- **POST /api/article/ajouterArticle** : Créer un nouvel article.\n- **PUT /api/article/:id** : Mettre à jour un article.\n- **DELETE /api/article/:id** : Supprimer un article.\n\n### Authentification\n\n- **POST /api/signUp** : Inscription d'un nouvel utilisateur.\n- **POST /api/login** : Connexion d'un utilisateur.\n- **POST /api/logout** : Deconnexion utilisateur.\n- **GET /api/checkAuth** : Verification si l'utilisateur est connecter.\n- **GET /api/getUser** : Recuperer tous les utilisateur (Admin).\n- **DELETE /api/:id** : Supprimer utilisateur (Admin)\n- **GET /api/:id** : Recuperer information personnel (Prive).\n- **\n  -\\*\\***\n\n### Exemples de requêtes\n\n#### Créer un article\n\n```bash\ncurl -X POST http://localhost:3000/api/articles \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer \u003cJWT\u003e\" \\\n  -d '{\n    \"title\": \"Mon premier article\",\n    \"content\": \"Contenu de l'article\",\n    \"category\": \"Technologie\",\n    \"tags\": [\"nodejs\", \"backend\"]\n  }'\n```\n\n#### Rechercher des articles\n\n```bash\ncurl -X GET \"http://localhost:3000/api/articles?category=Technologie\u0026page=1\u0026limit=10\"\n```\n\n## Structure du projet\n\n```\nbackend-articles/\n├── config/           # Configuration (base de données, etc.)\n├── controllers/      # Contrôleurs pour gérer les requêtes\n├── models/           # Modèles Mongoose\n├── routes/           # Routes de l'API\n├── middleware/       # Middleware personnalisé\n├── utils/            # Utilitaires (gestion des erreurs, etc.)\n├── .env.example      # Exemple de fichier .env\n├── app.js            # Point d'entrée de l'application\n└── README.md         # Documentation\n```\n\n## Contribuer\n\n1. Forkez le projet.\n2. Créez une branche pour votre fonctionnalité (`git checkout -b feature/nouvelle-fonctionnalite`).\n3. Committez vos changements (`git commit -m 'Ajouter une nouvelle fonctionnalité'`).\n4. Poussez vers la branche (`git push origin feature/nouvelle-fonctionnalite`).\n5. Ouvrez une Pull Request.\n\n## Licence\n\nCe projet est sous licence MIT. Voir le fichier [LICENSE](LICENSE) pour plus de détails.\n\n```\n\n---\n\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felhalj%2Fapi.article","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felhalj%2Fapi.article","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felhalj%2Fapi.article/lists"}