Application de logging quotidien de la pluviométrie permettant de suivre et analyser les précipitations.
- ✅ Saisie quotidienne de pluviométrie (date + quantité en mm)
- ✅ Stockage dans SQLite (via sql.js dans le navigateur)
- ✅ Affichage en tableau des enregistrements
- ✅ Graphique d'évolution de la pluviométrie
- ✅ Validation des données (dates, quantités)
- Frontend : React 18 + TypeScript
- Base de données : SQLite (sql.js pour le navigateur)
- Graphiques : Recharts
- Build : Vite
- Tests : Jest + React Testing Library + Playwright
💡 Problème avec Docker ? Consultez README-INSTALL.md pour les options d'installation.
# Configuration et déploiement en production
make minikube-setup
# Ou en mode développement
make minikube-devVoir README-DOCKER.md pour plus de détails.
# Lancer en mode développement
make docker-compose-up# Construire les images
make docker-build
# Lancer en production
make docker-runSi vous voulez développer localement (non recommandé pour ce projet) :
# Installer les dépendances
npm install
# Lancer l'application en mode développement
npm run dev
# Lancer les tests unitaires
npm test
# Lancer les tests avec couverture
npm run test:coverage
# Lancer les tests E2E
npm run test:e2e
# Build pour la production
npm run buildL'application suit les principes de Clean Architecture :
src/
├── domain/ # Couche Domain (entités, règles métier)
│ ├── entities/
│ ├── repositories/
│ └── validators/
├── application/ # Couche Application (use cases)
│ └── use-cases/
├── infrastructure/ # Couche Infrastructure (implémentations)
│ ├── repositories/
│ └── services/
└── presentation/ # Couche Presentation (UI)
└── components/
CREATE TABLE rainfall_entries (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT NOT NULL UNIQUE,
amount REAL NOT NULL CHECK(amount >= 0),
created_at TEXT NOT NULL DEFAULT (datetime('now'))
);Les données sont stockées dans le localStorage du navigateur (base SQLite sérialisée).
L'application est développée en suivant le Test Driven Development (TDD) :
- 🔴 RED : Écrire un test qui échoue
- 🟢 GREEN : Écrire le code minimal pour faire passer le test
- 🔵 REFACTOR : Améliorer le code tout en gardant les tests verts
- Tests unitaires :
tests/unit/ - Tests d'intégration :
tests/integration/ - Tests E2E :
tests/e2e/
Objectif : ≥80% de couverture
npm run test:coverageMIT