Johan LEROY d58647cad4 test(backend): fournit une session reelle aux tests d'integration
Les repositories a venir parlent du SQL : les eprouver sur un double ne prouve
rien. La fixture ouvre une vraie connexion, d'ou le marqueur integration.
2026-09-15 10:00:42 +02:00
2026-09-14 11:17:52 +02:00

EnerVision

Monorepo de la plateforme EnerVision : collecte, stockage, analyse et restitution de series temporelles energetiques, deployee sur une machine on-premise.

Stack cible

Domaine Technologie Emplacement Etat
Backend FastAPI, Python 3.14 apps/backend Initialise
Frontend Angular, Node 24 LTS apps/frontend A initialiser
Base PostgreSQL 17 + TimescaleDB db Initialise
ETL Apache Airflow etl/airflow A initialiser
Infra Terraform infra/terraform A initialiser
CI/CD GitHub Actions .github/workflows A initialiser
Monitoring Prometheus, Grafana, Alertmanager monitoring A initialiser

Le backend et la base sont initialises a ce stade. Les autres dossiers portent l'arborescence et un README de cadrage, leur contenu fait l'objet d'un ticket dedie.

Arborescence

.
├── apps/
│   ├── backend/        API FastAPI
│   └── frontend/       Application Angular
├── db/
│   ├── init/           Bootstrap PostgreSQL + TimescaleDB
│   ├── migrations/     Migrations SQL versionnees
│   └── seeds/          Jeux de donnees de reference
├── etl/airflow/
│   ├── dags/           DAGs d'ingestion et d'agregation
│   ├── plugins/        Operateurs et hooks maison
│   ├── include/        Requetes SQL et ressources des DAGs
│   └── tests/          Tests d'integrite des DAGs
├── infra/terraform/
│   ├── modules/        Modules reutilisables
│   └── environments/   Racines Terraform, une par environnement
├── monitoring/
│   ├── prometheus/     Collecte et regles d'alerte
│   ├── grafana/        Provisioning et dashboards
│   └── alertmanager/   Routage des alertes
├── docs/               ADR et vues d'architecture
└── scripts/            Outillage local

Demarrage

Prerequis : uv, Docker. Le poste doit disposer de Python 3.14, que uv installe seul.

cp .env.example .env                               # variables de docker-compose
cp apps/backend/.env.example apps/backend/.env     # variables du backend hors conteneur

make db-up     # PostgreSQL + TimescaleDB, publie sur le port 5433
make install   # dependances du backend
make migrate   # applique les migrations Alembic
make dev       # API sur http://localhost:8000, docs sur /docs
make check     # lint + typage + tests

make help liste les cibles disponibles.

Deux fichiers d'environnement, deux usages : .env a la racine alimente docker-compose.yml, apps/backend/.env alimente le backend lance sur le poste. Le port 5433 est publie plutot que 5432, souvent deja pris par une autre base.

La boucle de developpement est make db-up puis make dev : seule la base tourne en conteneur. Le service backend du docker-compose.yml sert la stack complete et la recette, et n'embarque pas le source, donc toute modification y demande un docker compose up -d --build backend.

Verifier que la base repond et que l'extension est chargee :

curl -s localhost:8000/api/v1/health/ready

Conventions

  • Branches : feat/, fix/, chore/, docs/ suivi d'un libelle court.
  • Commits : Conventional Commits, portee = dossier de premier niveau concerne.
  • Toute decision structurante donne lieu a un ADR dans docs/adr.
S
Description
No description provided
Readme
3.2 MiB
Languages
Python 68.8%
TypeScript 18.7%
Shell 2.7%
HTML 2.3%
SCSS 2.2%
Other 5.2%