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:
157
CHANGELOG.md
Normal file
157
CHANGELOG.md
Normal 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**
|
||||
@@ -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
|
||||
|
||||
|
||||
28
README.md
28
README.md
@@ -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)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Dockerfile pour Backend FastAPI
|
||||
FROM python:3.11-slim
|
||||
FROM python:3.12-slim
|
||||
|
||||
# Variables d'environnement
|
||||
ENV PYTHONUNBUFFERED=1 \
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user