Bienvenue dans le code de démarrage pour les ateliers d'Environnement de Développement Logiciel (EDL) !
Ce starter contient une application TaskFlow complète avec :
- Backend FastAPI (Python) - API REST pour gérer des tâches
- Frontend React (TypeScript) - Interface utilisateur simple
- Tests unitaires - Backend (pytest) et Frontend (Vitest)
- Python 3.11+ (pour le backend)
- Node.js 18+ (pour le frontend)
- Git
git clone https://github.com/umons-ig/edl-starter
cd edl-startercd edl-starterObjectif : Apprendre à écrire des tests unitaires backend et frontend
📄 Documentation : Voir docs/TP-1.md ou docs/TP-1.pdf
Ce que vous allez faire :
- ✅ Installer les dépendances (UV ou pip)
- ✅ Lancer le backend et le frontend localement
- ✅ Écrire des tests backend avec pytest
- ✅ Écrire des tests frontend avec Vitest
- 🎁 BONUS : Exercices Java JUnit
Démarrage rapide :
# Backend
cd backend
uv venv && uv sync
uv run uvicorn src.app:app --reload
# Frontend (nouveau terminal)
cd frontend
npm install
npm run devObjectif : Automatiser les tests avec GitHub Actions
📄 Documentation : Voir docs/TP-2.md
Ce que vous allez faire :
- ✅ Créer un workflow GitHub Actions
- ✅ Tester automatiquement backend + frontend
- ✅ Vérifier la couverture de code sur CI
- ✅ Comprendre le pipeline CI/CD
Objectif : Déployer l'application en production avec PostgreSQL
📄 Documentation : Voir docs/TP-3.md
Ce que vous allez faire :
- ✅ Migrer de stockage en mémoire vers PostgreSQL
- ✅ Déployer sur Render
- ✅ Configurer les variables d'environnement
- ✅ Tester l'application en production
edl-starter/
├── backend/
│ ├── src/
│ │ ├── app.py # API FastAPI principale
│ │ └── __init__.py
│ ├── tests/
│ │ ├── conftest.py # Fixtures pytest
│ │ └── test_api.py # Tests API
│ ├── pyproject.toml # Dépendances Python
│ └── README.md
│
├── frontend/
│ ├── src/
│ │ ├── App.tsx # Composant principal
│ │ ├── api/
│ │ │ ├── api.ts # Client API
│ │ │ └── api.test.ts # Tests API
│ │ └── components/
│ │ ├── SimpleTaskList.tsx
│ │ └── TaskForm.tsx
│ ├── package.json # Dépendances Node.js
│ └── vite.config.ts
│
├── .github/
│ └── workflows/ # Workflows à créer dans TP 2
│
└── README.md (ce fichier)
cd backend
uv run pytest -v # Tous les tests
uv run pytest --cov # Avec couverture
uv run pytest --cov-report=html # Rapport HTMLcd frontend
npm test # Tests en mode watch
npm test -- --run # Tests une fois (pour CI)
npm run test:coverage # Avec couvertureTerminal 1 - Backend :
cd backend
uv run uvicorn src.app:app --reload
# → http://localhost:8000Terminal 2 - Frontend :
cd frontend
npm run dev
# → http://localhost:5173Ouvrir dans le navigateur : http://localhost:5173
Le backend utilise un stockage en mémoire (dictionnaire Python) pour les TP 1 et 2.
TP 3 : Vous migrerez vers PostgreSQL.
Fichier de config : backend/.env.example
DATABASE_URL=postgresql://user:password@localhost:5432/taskflow
ENVIRONMENT=developmentFichier de config : frontend/.env.example
VITE_API_URL=http://localhost:8000- FastAPI - Framework web moderne et rapide
- pytest - Framework de tests Python
- pytest-cov - Couverture de code
- Pydantic - Validation de données
- SQLAlchemy - ORM (Atelier 3)
- UV - Gestionnaire de paquets Python moderne
- React 18 - Framework UI
- TypeScript - Typage statique
- Vitest - Framework de tests
- Vite - Build tool rapide
- React Testing Library - Tests de composants
# Vérifier que vous êtes dans backend/
cd backend
# Réinstaller les dépendances
uv sync# Vérifier que vous êtes dans frontend/
cd frontend
# Réinstaller les dépendances
rm -rf node_modules package-lock.json
npm install# Backend : lancer un seul test
uv run pytest tests/test_api.py::test_create_task -v -s
# Frontend : mode verbose
npm test -- --reporter=verbose- Documentation FastAPI
- Documentation pytest
- Documentation UV
- Documentation React
- Documentation Vitest
- GitHub Actions Documentation
C'est intentionnel pour simplifier l'apprentissage des tests unitaires.
Dans le TP 3, vous allez :
- Créer une base de données PostgreSQL
- Configurer SQLAlchemy
- Migrer le code pour utiliser la DB
- Déployer en production
Problèmes avec les travaux pratiques ?
- Vérifiez la documentation dans
docs/ - Relisez la section "🆘 Problèmes Courants"
- Consultez votre professeur ou assistant
Bon courage pour les travaux pratiques ! 🚀
Version: 1.0 - EDL 2024-2025