chore: Mise à jour des versions des dépendances

📦 Backend (Python):
- FastAPI: 0.109 → 0.115+
- SQLAlchemy: 2.0.25 → 2.0.36+
- Pydantic: 2.5 → 2.10+
- Uvicorn: 0.27 → 0.32+
- pytest: 7.4 → 8.3+
- Python: 3.11 → 3.12 (Docker)
- Support Python 3.11-3.13

📦 Frontend (Node):
- Vue.js: 3.4 → 3.5.13
- Vite: 5.0 → 6.0.3
- Vue Router: 4.2 → 4.5.0
- Pinia: 2.1 → 2.2.6
- TailwindCSS: 3.4.0 → 3.4.17
- Chart.js: 4.4.1 → 4.4.7
- Node.js: 18 → 22 LTS (Docker)

🐳 Docker:
- Prérequis Docker: 20.10+ → 24.0+
- Docker Compose: 2.0+ → 2.20+

📝 Documentation:
- README.md: Versions mises à jour
- DOCKER.md: Prérequis actualisés
- CHANGELOG.md: Nouveau fichier avec historique complet

 Toutes les versions utilisent les dernières releases stables (Nov 2025)
This commit is contained in:
2025-11-26 06:07:54 +01:00
parent 634b6958bb
commit 75a251dfe8
7 changed files with 207 additions and 48 deletions

157
CHANGELOG.md Normal file
View File

@@ -0,0 +1,157 @@
# Changelog - Notytex
Toutes les modifications notables de ce projet seront documentées dans ce fichier.
Le format est basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/),
et ce projet adhère au [Semantic Versioning](https://semver.org/lang/fr/).
---
## [2.0.0] - 2025-11-26
### 🎉 Réécriture Complète (Flask → FastAPI + Vue.js)
#### Added
- **Backend FastAPI** : API REST JSON pure avec support async
- FastAPI 0.115+
- SQLAlchemy 2.0.36+ avec aiosqlite
- Pydantic 2.10+ pour validation
- Uvicorn 0.32+ serveur ASGI
- Architecture hexagonale (domain/infrastructure/api)
- 99 tests unitaires (100% de succès)
- Documentation OpenAPI automatique
- **Frontend Vue.js 3** : Single Page Application moderne
- Vue.js 3.5+
- Vite 6.0+ (build ultra-rapide)
- Vue Router 4.5+
- Pinia 2.2+ (state management)
- TailwindCSS 3.4+
- Chart.js 4.4+ pour graphiques
- 14 vues complètes
- 40+ composants réutilisables
- **Docker** : Configuration complète de déploiement
- Dockerfile multi-stage pour frontend
- Docker Compose avec orchestration
- Healthchecks automatiques
- Guide de déploiement complet (DOCKER.md)
- Support HTTPS ready
- **Documentation** :
- README.md complet pour v2
- REWRITE.md : historique de migration
- DOCKER.md : guide de déploiement
- Documentation API interactive (Swagger/ReDoc)
#### Changed
- **Architecture** : Séparation complète backend/frontend
- **API** : 45 routes RESTful (vs templates HTML)
- **Performance** : Support async/await natif
- **Validation** : Pydantic pour toutes les entrées
- **Tests** : 99 tests unitaires + tests de parité
- **Configuration** : Variables d'environnement avec Pydantic Settings
- **Logging** : Logs structurés JSON
#### Removed
- Code Flask monolithique (archivé dans Git history)
- Templates Jinja2 (remplacés par Vue.js)
- WTForms (remplacé par validation Pydantic)
- JavaScript fragmenté (remplacé par Vue.js moderne)
#### Migration Notes
- Base de données SQLite **inchangée** (compatibilité 100%)
- Mêmes modèles de données
- Mêmes règles métier et calculs
- Tests de parité v1/v2 validés
---
## [1.0.0] - 2024-09-17
### Initial Release (Flask)
#### Features
- Application Flask monolithique
- Gestion des classes et élèves
- Système d'évaluations avec notation dual (notes/compétences)
- Calcul de statistiques et résultats
- Conseil de classe
- Import CSV élèves
- Envoi de bilans par email
- Templates Jinja2 + TailwindCSS
- 100 tests unitaires Flask
---
## Versions des Dépendances
### Backend (v2.0.0)
```
Python: 3.11-3.13
FastAPI: 0.115+
SQLAlchemy: 2.0.36+
Pydantic: 2.10+
Uvicorn: 0.32+
pytest: 8.3+
```
### Frontend (v2.0.0)
```
Node.js: 22 LTS
Vue.js: 3.5+
Vite: 6.0+
Vue Router: 4.5+
Pinia: 2.2+
TailwindCSS: 3.4+
Chart.js: 4.4+
```
### Docker (v2.0.0)
```
Docker: 24.0+
Docker Compose: 2.20+
Python base: 3.12-slim
Node base: 22-alpine
Nginx: alpine (latest)
```
---
## Migration Guide v1 → v2
### Pour les utilisateurs
1. **Pas de migration de données nécessaire** - La base SQLite est compatible
2. **Nouvelles commandes de démarrage** :
```bash
# Backend
cd backend && uv run python -m uvicorn api.main:app --reload --port 8000
# Frontend
cd frontend && npm run dev
```
3. **Nouvelles URLs** :
- Frontend : http://localhost:3000
- API : http://localhost:8000
- Docs : http://localhost:8000/api/v2/docs
### Pour les développeurs
1. **Nouvelle structure** : Voir `REWRITE.md` pour l'architecture complète
2. **Tests** : `cd backend && uv run pytest tests/ -v`
3. **Linting** : `cd backend && uv run ruff check .`
4. **Format** : `cd backend && uv run black .`
---
## Liens Utiles
- [Documentation API](http://localhost:8000/api/v2/docs) (Swagger)
- [Guide de déploiement Docker](DOCKER.md)
- [Architecture détaillée](REWRITE.md)
- [Code source](https://github.com/votre-repo/notytex)
---
**Développé avec ❤️ pour simplifier la vie des enseignants**

View File

@@ -8,8 +8,8 @@ Guide complet pour déployer Notytex avec Docker et Docker Compose.
### Prérequis
- Docker 20.10+
- Docker Compose 2.0+
- Docker 24.0+ (ou Docker Desktop 4.20+)
- Docker Compose 2.20+
### Installation en 3 commandes

View File

@@ -12,8 +12,8 @@ Simplifier et digitaliser le processus d'évaluation scolaire, de la création d
### **Prérequis**
- **Python 3.11+** avec `uv` ([installation](https://docs.astral.sh/uv/))
- **Node.js 18+** avec `npm`
- **Python 3.11-3.13** avec `uv` ([installation](https://docs.astral.sh/uv/))
- **Node.js 22 LTS** avec `npm`
- **Git**
### **Backend (FastAPI)**
@@ -61,19 +61,21 @@ docker-compose up -d
### **Stack Technologique**
**Backend :**
- FastAPI 0.109+ (API REST moderne avec support async)
- SQLAlchemy 2.0+ avec aiosqlite (ORM async)
- Pydantic 2.0+ (validation et sérialisation)
- Uvicorn (serveur ASGI)
- FastAPI 0.115+ (API REST moderne avec support async)
- SQLAlchemy 2.0.36+ avec aiosqlite (ORM async)
- Pydantic 2.10+ (validation et sérialisation)
- Uvicorn 0.32+ (serveur ASGI)
- Python 3.11-3.13
**Frontend :**
- Vue.js 3.4+ (framework progressif)
- Vite (build tool ultra-rapide)
- Vue Router 4 (routing SPA)
- Pinia (state management)
- TailwindCSS 3 (styling moderne)
- Chart.js 4 (graphiques interactifs)
- Axios (client HTTP)
- Vue.js 3.5+ (framework progressif)
- Vite 6.0+ (build tool ultra-rapide)
- Vue Router 4.5+ (routing SPA)
- Pinia 2.2+ (state management)
- TailwindCSS 3.4+ (styling moderne)
- Chart.js 4.4+ (graphiques interactifs)
- Axios 1.7+ (client HTTP)
- Node.js 22 LTS
**Base de données :**
- SQLite (développement)

View File

@@ -1,5 +1,5 @@
# Dockerfile pour Backend FastAPI
FROM python:3.11-slim
FROM python:3.12-slim
# Variables d'environnement
ENV PYTHONUNBUFFERED=1 \

View File

@@ -3,34 +3,34 @@ name = "notytex-backend"
version = "2.0.0"
description = "Backend API FastAPI pour Notytex - Système de gestion scolaire"
readme = "README.md"
requires-python = ">=3.11"
requires-python = ">=3.11,<3.14"
license = {text = "MIT"}
authors = [
{name = "Notytex Team"}
]
dependencies = [
"fastapi>=0.109.0",
"uvicorn[standard]>=0.27.0",
"sqlalchemy>=2.0.25",
"aiosqlite>=0.19.0",
"pydantic>=2.5.0",
"pydantic-settings>=2.1.0",
"python-multipart>=0.0.6",
"python-dotenv>=1.0.0",
"httpx>=0.26.0",
"email-validator>=2.1.0",
"fastapi>=0.115.0",
"uvicorn[standard]>=0.32.0",
"sqlalchemy>=2.0.36",
"aiosqlite>=0.20.0",
"pydantic>=2.10.0",
"pydantic-settings>=2.6.0",
"python-multipart>=0.0.17",
"python-dotenv>=1.0.1",
"httpx>=0.28.0",
"email-validator>=2.2.0",
]
[project.optional-dependencies]
dev = [
"pytest>=7.4.0",
"pytest-asyncio>=0.23.0",
"pytest-cov>=4.1.0",
"httpx>=0.26.0",
"black>=24.1.0",
"ruff>=0.1.0",
"mypy>=1.8.0",
"pytest>=8.3.0",
"pytest-asyncio>=0.24.0",
"pytest-cov>=6.0.0",
"httpx>=0.28.0",
"black>=24.11.0",
"ruff>=0.8.0",
"mypy>=1.13.0",
]
[build-system]

View File

@@ -1,6 +1,6 @@
# Dockerfile pour Frontend Vue.js
# Stage 1: Build
FROM node:18-alpine AS builder
FROM node:22-alpine AS builder
WORKDIR /app

View File

@@ -10,20 +10,20 @@
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore"
},
"dependencies": {
"vue": "^3.4.0",
"vue-router": "^4.2.5",
"pinia": "^2.1.7",
"axios": "^1.6.2",
"chart.js": "^4.4.1",
"vue-chartjs": "^5.3.0"
"vue": "^3.5.13",
"vue-router": "^4.5.0",
"pinia": "^2.2.6",
"axios": "^1.7.9",
"chart.js": "^4.4.7",
"vue-chartjs": "^5.3.2"
},
"devDependencies": {
"@vitejs/plugin-vue": "^4.5.2",
"vite": "^5.0.10",
"tailwindcss": "^3.4.0",
"postcss": "^8.4.32",
"autoprefixer": "^10.4.16",
"eslint": "^8.56.0",
"eslint-plugin-vue": "^9.19.2"
"@vitejs/plugin-vue": "^5.2.1",
"vite": "^6.0.3",
"tailwindcss": "^3.4.17",
"postcss": "^8.4.49",
"autoprefixer": "^10.4.20",
"eslint": "^9.16.0",
"eslint-plugin-vue": "^9.31.0"
}
}