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