Skip to content

Probe311/AquaTrack

Repository files navigation

AquaTrack

Application web de suivi des paramètres d'eau d'aquarium : relevés, historique, graphiques, gestion de plusieurs bacs et catalogue d'espèces avec vérification de compatibilité.

Dépôt : github.com/Probe311/AquaTrack


Fonctionnalités

  • Relevés d'eau — NO₂, NO₃, GH, KH, pH, Cl₂, CO₂, température (optionnelle)
  • Calcul automatique du CO₂ — dérivé du KH et du pH via la formule standard aquarium planté (voir ci-dessous)
  • Dashboard — statut Optimal / Attention par paramètre, dernières valeurs
  • Historique & graphiques — courbes Recharts, tableau des relevés, suppression
  • Aquariums multiples — nom, volume, relevés rattachés par bac
  • Catalogue d'espèces — 200+ poissons d'eau douce (données Fishipedia), recherche et fiches
  • Compatibilité espèces — comparaison température, pH et GH du dernier relevé avec les exigences de chaque espèce présente

Stack technique

Couche Technologie
Frontend React 19, TypeScript, Vite 6, Tailwind CSS 4
Graphiques Recharts
Backend API REST PHP (MySQL)
Base de données MySQL

Les scripts PHP sont dans public/api/ et copiés dans dist/api/ au build.


Paramètres suivis

Paramètre Unité Plage recommandée Remarque
NO₂ (Nitrites) mg/L 0 – 0,5 Toxique pour les poissons
NO₃ (Nitrates) mg/L 0 – 50 Nutriments plantes
GH (Dureté totale) °dGH 4 – 20 Ca, Mg
KH (Dureté carbonatée) °dKH 3 – 15 Pouvoir tampon du pH
pH 6,5 – 8,0 Acidité
Cl₂ (Chlore) mg/L 0 Doit être nul
CO₂ mg/L 15 – 35 Calculé automatiquement (voir formule)
Température °C 22 – 28 Optionnelle, pour compatibilité espèces

Calcul automatique du CO₂

Le CO₂ n'est plus saisi manuellement : il est calculé en temps réel dans le formulaire de relevé à partir du KH et du pH, selon la relation utilisée dans les tableaux JBL :

CO₂ (mg/L) = 3 × KH × 10^(7 − pH)
  • Arrondi à l'entier le plus proche
  • Champ CO₂ en lecture seule dans le formulaire
  • Implémentation : utils/waterParams.ts

Exemples :

KH pH CO₂ calculé
10 7,2 19 mg/L
6 6,8 29 mg/L
15 7,6 71 mg/L

Zone idéale pour un aquarium planté : 15 – 35 mg/L.


Structure du projet

Aquatrack/
├── App.tsx                 # Application principale (navigation, dashboard)
├── components/             # UI React (formulaire, graphiques, aquariums, espèces)
├── services/storage.ts     # Client API (fetch vers PHP)
├── utils/waterParams.ts    # Calcul CO₂
├── types.ts                # Modèles TypeScript et métadonnées paramètres
├── public/
│   ├── api/                # Endpoints PHP (readings, aquariums, health…)
│   └── data/species.json   # Catalogue espèces (lecture seule)
├── api/
│   ├── init.sql            # Schéma MySQL
│   └── README.md           # Doc API & BDD
├── scripts/                # Outils (génération catalogue espèces)
├── DEPLOIEMENT.md          # Guide FTP / o2switch
└── ROADMAP.md              # Pistes d'évolution

Lancer en local

Prérequis : Node.js 20+, PHP 8+ (pour l'API), MySQL.

npm install
npm run dev

Interface : http://localhost:5173

API PHP en local

npm run dev:php

Endpoints : http://localhost:8080/api/

Configurez le proxy Vite si nécessaire pour que le frontend appelle l'API locale (voir vite.config.ts).

Base de données

  1. Créez une base MySQL.
  2. Exécutez une fois api/init.sql (tables readings, aquariums, aquarium_stock).
  3. Créez un fichier .env à la racine (non commité) :
DB_HOST=localhost
DB_USER=votre_utilisateur
DB_PASSWORD=votre_mot_de_passe
DB_NAME=votre_base

Vérifier l'API

curl http://localhost:8080/api/health.php
# {"ok":true,"db":true}

Build & déploiement

npm run build
npm run preview   # prévisualisation locale du dossier dist/

Le dossier dist/ contient l'app statique + dist/api/ + dist/data/.

Pour la mise en ligne (FTP, o2switch, structure serveur, .env production) : DEPLOIEMENT.md


API REST

Méthode Endpoint Description
GET /api/health.php Santé PHP + connexion MySQL
GET/POST /api/readings.php Liste / création de relevés
DELETE /api/readings.php?id= Suppression d'un relevé
GET/POST /api/aquariums.php Aquariums
GET/POST/DELETE /api/aquarium_stock.php Poissons par aquarium

Détails : api/README.md


Catalogue espèces

Données dérivées de Fishipedia, stockées dans public/data/species.json. Usage local uniquement, sans appel API externe en runtime.

Regénération (optionnel) :

node scripts/generate-species.js

Scripts npm

Commande Action
npm run dev Serveur de développement Vite
npm run dev:php Serveur PHP local (public/)
npm run build Build production → dist/
npm run preview Prévisualisation du build

Documentation


Licence

Projet personnel — voir le dépôt GitHub pour les conditions d'utilisation.

About

AquaTrack, suivi des parametres d aquarium avec frontend TypeScript et API PHP. Stack: TypeScript, PHP, HTML, CSS.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages