NestJS Todo App
Description
Une application complète de gestion de tâches (todo) construite avec NestJS pour le backend et Svelte pour le frontend. Cette application permet de créer, lire, mettre à jour et supprimer des tâches, avec des fonctionnalités supplémentaires comme le filtrage, le tri et la gestion de l'état des tâches.
Fonctionnalités
Gestion complète des tâches (CRUD)
- ✅ Création de nouvelles tâches
- 📄 Lecture des tâches existantes
- ✏️ Mise à jour des tâches (titre, description, état)
- 🗑️ Suppression des tâches
Interface utilisateur intuitive
- 📝 Formulaire pour ajouter/modifier des tâches
- 📋 Affichage des tâches en cartes
- ✅ Indicateurs visuels pour les tâches terminées
Filtrage et tri
- 🔍 Filtrer par état (toutes, en cours, terminées)
- 📅 Trier par date (plus récentes, plus anciennes)
Architecture robuste
- ⚙️ Backend NestJS avec TypeORM
- 💡 Frontend Svelte réactif
- 🔐 Communication API REST sécurisée
Technologies utilisées
Backend
- NestJS : Framework Node.js progressif
- TypeORM : ORM pour PostgreSQL
- PostgreSQL : Base de données relationnelle
- Class-validator : Validation des DTOs
Frontend
- Svelte : Framework JS compilé
- TypeScript : Superset JavaScript typé
- CSS3 : Pour le style des composants
Installation
Prérequis
- Node.js (v14+)
- npm ou yarn
- Docker et Docker Compose
Configuration
git clone [email protected]:monkeyDkz/Todo-nestjs-svelte.git
cd todo
Lancer avec Docker
docker-compose up --build
Mode d'emploi
Frontend : http://localhost:3000
Utilisation
- Ajouter une tâche : Formulaire avec titre et description
- Afficher les tâches : Cartes avec infos, état, boutons
- Filtrer : Toutes / En cours / Terminées
- Trier : Plus récentes / Plus anciennes
- Modifier : Bouton "Editer" pour charger la tâche dans le formulaire
- Compléter : Toggle via bouton avec icône
- Supprimer : Bouton "Supprimer" directement sur la carte
Structure du projet
API Endpoints (NestJS)
GET /todos
GET /todos/:id
POST /todos
PATCH /todos/:id
DELETE /todos/:id
Dépannage
Problèmes fréquents
- Docker ne démarre pas : Vérifiez qu'il est lancé
- Les tâches ne s'affichent pas : Vérifiez la base PostgreSQL et les logs backend
- Erreurs dans le navigateur : Vérifiez la console (CORS/API offline)
Redémarrer l'application
docker-compose down -v
docker-compose up --build
Réinitialiser la base de données
docker-compose down -v
Fichiers principaux
Frontend (Svelte)
FormTodo.svelte
: Formulaire d'ajout/modif
Todo.svelte
: Carte individuelle
Todos.svelte
: Liste + filtres + tri
api.ts
: Fonctions fetch vers l'API
Backend (NestJS)
todo.entity.ts
: Modèle de données
todos.service.ts
: Logique métier
todos.controller.ts
: Contrôleur REST
Développement
Frontend
cd frontend
npm install
npm run dev
Backend
cd backend
npm install
npm run start:dev
Tests
# Backend
cd backend
npm run test
Déploiement
- Clonez le repo sur un serveur
- Configurez
.env
- Lancez :
docker-compose up -d
Variables d'environnement
DATABASE_URL=postgres://user:password@db:5432/todos
Contribuer
# Fork + Branch
git checkout -b feature/ma-super-fonction
# Dev + Commit
# Push + PR
Zahidi Kays — — kays.zahidi@gmail.com
Projet : git@github.com:monkeyDkz/Todo-nestjs-svelte.git
Roadmap
Remerciements
- NestJS
- Svelte
- PostgreSQL
- Docker
- TypeORM