Backend API pour l'application TopBudget, une solution de gestion budgétaire personnelle développée avec Node.js, Express, TypeScript et MongoDB.
Avant de commencer, assurez-vous d'avoir installé les éléments suivants :
- Node.js : Version 18 ou supérieure
- npm ou yarn : Gestionnaire de paquets
- MongoDB : Instance MongoDB (locale ou distante)
- Git : Pour cloner le dépôt
git clone https://github.com/votre-username/TopBudget.git
cd TopBudget/backendnpm install
# ou
yarn installCréez un fichier .env à partir du fichier d'exemple :
cp .env.example .envModifiez le fichier .env avec vos propres valeurs. Consultez la section Variables d'environnement pour plus de détails.
Pour démarrer le serveur en mode développement avec rechargement automatique :
npm run dev
# ou
npm run watchLe serveur démarre par défaut sur le port 5001 : http://localhost:5001
Le mode développement offre :
- Rechargement automatique avec
ts-node-dev - Transpilation TypeScript à la volée
- Logs détaillés pour le débogage
Pour compiler l'application TypeScript en JavaScript :
npm run buildLes fichiers compilés seront générés dans le répertoire dist/.
Après avoir effectué le build, démarrez le serveur depuis les fichiers compilés :
npm startLes variables d'environnement sont essentielles pour le fonctionnement de l'application. Consultez le fichier .env.example pour voir toutes les variables requises et leurs valeurs par défaut.
Les principales variables incluent :
MONGO_URI: URI de connexion à MongoDBJWT_SECRET: Secret pour la signature des tokens JWTPORT: Port d'écoute du serveurNODE_ENV: Environnement d'exécutionAPI_BASE_URL: URL de base de l'API
L'API utilise Swagger/OpenAPI pour la documentation interactive. Une fois le serveur démarré, accédez à la documentation à l'adresse :
http://localhost:5001/api-docs
npm run dev: Démarre le serveur en mode développementnpm run watch: Alias pour le mode développementnpm run build: Compile l'application TypeScriptnpm start: Démarre le serveur depuis les fichiers compilésnpm run seed: Exécute le script de peuplement de la base de données
L'API expose un endpoint de santé pour vérifier le statut du serveur et de la base de données :
GET /api/health
backend/
├── src/
│ ├── controllers/ # Contrôleurs des routes
│ ├── models/ # Modèles Mongoose
│ ├── routes/ # Définition des routes
│ ├── services/ # Logique métier
│ ├── middlewares/ # Middlewares Express
│ ├── types/ # Types TypeScript
│ ├── utils/ # Fonctions utilitaires
│ ├── docs/ # Configuration Swagger
│ └── app.ts # Point d'entrée de l'application
├── scripts/ # Scripts utilitaires
├── public/ # Fichiers statiques
└── logs/ # Logs de l'application
Le projet utilise ESLint pour maintenir la qualité du code. Pour vérifier le code :
npm run lintLes logs sont gérés avec Winston et sauvegardés dans le dossier logs/. Les niveaux de logs incluent :
error: Erreurs critiqueswarn: Avertissementsinfo: Informations généraleshttp: Requêtes HTTPdebug: Informations de débogage