Todo API

February 26, 2026 · View on GitHub

Node.js JavaScript Express Jest ESLint CI Deploy Coverage Quality gate SonarQube Cloud Duplicated Lines (%) Vulnerabilities Maintainability Rating Quality Gate Status UptimeRobot Status UptimeRobot Uptime Ratio

API REST CRUD de gestion de todos développée en JavaScript avec Node.js et Express.

API en production :
https://todo-api-node-bnce.onrender.com/


Stack Technique

  • Runtime : Node.js
  • Framework : Express
  • Base de données : SQLite (sql.js)
  • Tests : Jest + Supertest
  • Linting : ESLint
  • CI/CD : GitHub Actions
  • Documentation API : Swagger
  • Déploiement : Render

Installation & Setup

1. Cloner le projet

git clone https://github.com/un-mec-paumer/todo-api-node.git
cd todo-api-node

2. Installer les dépendances

npm install

3. Lancer le serveur

npm start

Le serveur démarre par défaut sur :

http://localhost:3000

Scripts disponibles

npm start        # Lance le serveur
npm test         # Lance les tests avec coverage (Jest)
npm run lint     # Analyse du code avec ESLint

Endpoints API

Health

GET /health
→ Vérifie que l’API est opérationnelle.


Todos

GET /todos
→ Liste tous les todos
→ Supporte les query params :

  • ?skip= (pagination)
  • ?limit= (nombre d’éléments)

GET /todos/:id
→ Récupère un todo par son ID

GET /todos/search?q=
→ Recherche des todos via un mot-clé

POST /todos
→ Crée un nouveau todo

Body exemple :

{
  "title": "Faire le README",
  "completed": false
}

PUT /todos/:id
→ Met à jour un todo existant

DELETE /todos/:id
→ Supprime un todo


Exemple de requêtes

➜ Créer un todo

curl -X POST https://todo-api-node-bnce.onrender.com/todos \
-H "Content-Type: application/json" \
-d '{
  "title": "Faire le README",
  "completed": false
}'

➜ Récupérer tous les todos

curl https://todo-api-node-bnce.onrender.com/todos

➜ Health Check

curl https://todo-api-node-bnce.onrender.com/health

Documentation API

La documentation interactive est disponible via Swagger.

Une fois le projet lancé en local, elle est accessible à l’adresse suivante :

http://localhost:3000/api-docs

En production (Render) :

https://todo-api-node-bnce.onrender.com/api-docs

CI/CD

À chaque push :

  • ✅ Lint avec ESLint
  • ✅ Tests avec Jest + coverage
  • ✅ Déploiement automatique sur Render via GitHub Actions

Déploiement

Application déployée sur :

👉 https://todo-api-node-bnce.onrender.com/