Une API REST permettant la gestion de réservations de taxibe pour plusieurs coopératives de taxibe à Madagascar. Ce projet utilise Node.js, Express, Sequelize-CLI, MySQL et d'autres technologies pour la gestion des réservations et la génération de tickets PDF.
- Node.js : Serveur backend pour exécuter le JavaScript côté serveur.
- Express : Framework minimaliste pour créer l'API.
- Sequelize : ORM pour interagir avec MySQL.
- MySQL : Base de données relationnelle.
- Postman : Outil pour tester les API.
- XAMPP : Environnement local pour la gestion des bases de données.
- Bash : Pour l'exécution des scripts et commandes.
Route | Méthode | Description | Utilisateur | Admin |
---|---|---|---|---|
/auth/signup |
POST | Créer un nouveau compte utilisateur | ✅ | ✅ |
/auth/login |
POST | Connexion de l'utilisateur | ✅ | ✅ |
/auth/forgot/password |
POST | Changer le mot de passe oublié | ✅ | ✅ |
/auth/reset/password |
POST | Réinitialiser le mot de passe utilisateur | ✅ | ✅ |
Route | Méthode | Description | Utilisateur | Admin |
---|---|---|---|---|
/taxibe |
GET | Liste des taxis disponibles | ✅ | ✅ |
/taxibe/:id |
GET | Détails d'un taxi spécifique | ✅ | ✅ |
/taxibe/ |
POST | Créer un nouvel taxibe | ❌ | ✅ |
/taxibe/:id |
DELETE | Supprimer un taxibe spécifique | ❌ | ✅ |
/taxibe/:id |
PUT | Mettre à jour les taxibes | ❌ | ✅ |
Route | Méthode | Description | Utilisateur | Admin |
---|---|---|---|---|
/route |
GET | Liste des routes disponibles | ✅ | ✅ |
/route/:id |
GET | Détails d'un route spécifique | ✅ | ✅ |
/route/ |
POST | Créer un nouvel route | ❌ | ✅ |
/route/:id |
DELETE | Supprimer un route spécifiques | ❌ | ✅ |
/route/:id |
PUT | Mettre à jour un routes | ❌ | ✅ |
Route | Méthode | Description | Utilisateur | Admin |
---|---|---|---|---|
/trajet |
GET | Liste des trajets disponibles | ✅ | ✅ |
/trajet/:id |
GET | Détails d'un trajet spécifique | ✅ | ✅ |
/trajet/ |
POST | Créer un nouvel trjajet | ❌ | ✅ |
/trajet/:id |
DELETE | Supprimer un trajet spéchifique | ❌ | ✅ |
/trajet/:id |
PUT | Mettre à jour un trajet | ❌ | ✅ |
Route | Méthode | Description | Utilisateur | Admin |
---|---|---|---|---|
/cooperative |
GET | Liste des cooperative disponibles | ✅ | ✅ |
/cooperative/:id |
GET | Détails d'un cooperative spécifique | ❌ | ✅ |
/cooperative/ |
POST | Créer un nouvel cooperative | ❌ | ✅ |
/cooperative/:id |
DELETE | Supprimer un cooperative spéchifique | ❌ | ✅ |
/cooperative/:id |
PUT | Mettre à jour un cooperative | ❌ | ✅ |
Route | Méthode | Description | Utilisateur | Admin |
---|---|---|---|---|
/users/me |
GET | Récuperer le profil de l'utilisateur connecté | ✅ | ❌ |
/users/me |
PUT | Mettre à jour le profile de l'utilisateur connecté | ✅ | ❌ |
/users/password/change |
PUT | Modifier le mot de passe de l'utilisateur connecté | ✅ | ❌ |
/users/me/delete |
DELETE | Supprimer un compte de l'utilisateur connecté | ✅ | ❌ |
/users/generate-ticket/:id |
POST | Generer un ticket pour la réservation de l'utilisateur connecté | ✅ | ❌ |
/users/verify-ticket/:id |
POST | Verifier un code ticket pour la réservation de l'utilisateur connecté | ✅ | ❌ |
/users/booking/create |
POST | Créer une réservation du taxibe pour l'utilisateur connecté | ✅ | ❌ |
/users/booking/me |
GET | Lister la réservation de l'utilisateur connecté | ✅ | ❌ |
/users/booking/me |
DELETE | Supprimer ou annuler la réservation de l'utilisateur connecté | ✅ | ❌ |
Route | Méthode | Description | Utilisateur | Admin |
---|---|---|---|---|
/admin/stats |
GET | Liste des statistiques disponibles | ❌ | ✅ |
/admin/booking |
GET | Liste des réservations | ❌ | ✅ |
/admin/booking/:id |
GET | Details d'une réservation spécifique | ❌ | ✅ |
/admin/users |
GET | Listes des utilisateurs | ❌ | ✅ |
/admin/users/:id |
GET | Details d'un utilisateur spécifique | ❌ | ✅ |
/admin/users/:id |
DELETE | Supprimer un utilisateur spéchifique | ❌ | ✅ |
/admin/me |
GET | Detais du profile de l'admin | ❌ | ✅ |
/admin/me |
PUT | Mettre à jour le profile de l'admin | ❌ | ✅ |
/admin/password/change |
PUT | Changer le mot de passe de l'admin | ❌ | ✅ |
/admin/cooperative/:cooperativeId/admin |
POST | Creer un admin pour un cooperative spécifique | ❌ | ✅ |
Voici les principales dépendances utilisées dans ce projet, avec des badges pour chaque technologie.
- nodemon
- bcryptjs
- cors
- multer
- mysql2
- morgan
- sequelize
- sequelize-cli
- dotenv
- cookie-parser
- html-pdf
- jsonwebtoken
- nodemailer
- body-parser
- express
npm install
Créer un fichier .env in the racine directory Add script below to the .env file
DB_USERNAME = **your database username (eg:root)**
DB_PASSWORD =
DB_DATABASE = **your database**
DB_HOST = 127.0.0.1
SECRET_KEY = **your secret**
ADMIN_EMAIL = **your admin email**
ADMIN_NAME = **your admin name**
ADMIN_PASSWORD = **your admin password**
ADMIN_TEL = **your admin tel**
ADMIN_IMAGE = **your admin image**
npx sequelize-cli db:create
npx sequelize-cli db:migrate
npm run dev
Server is running at :
http://0.0.0.0/4000