main
EquiTask
Progressive Web App de mesure de la répartition des tâches domestiques dans un foyer.
Mesurez et visualisez objectivement qui fait quoi à la maison via un système de scoring combinant temps passé et pénibilité.
Fonctionnalités
- 📱 PWA installable — fonctionne sur mobile et desktop
- 📵 Mode offline — saisie sans connexion, synchronisation automatique au retour
- 👥 Multi-membres — jusqu'à 7 personnes (2 adultes + 5 enfants)
- 📊 Dashboard complet — scores, répartition par catégorie, évolution temporelle, indicateur d'équilibre
- 📋 Catalogue de tâches — 30 tâches récurrentes prédéfinies + tâches ponctuelles
- 🔧 Administration — CRUD complet membres, catégories, tâches
- ↓ Export — CSV (Excel/Sheets) ou JSON
Stack technique
| Couche | Technologie |
|---|---|
| Frontend | React 18 + Vite 5 + TypeScript + Tailwind CSS |
| Graphiques | Recharts |
| PWA | vite-plugin-pwa + Workbox |
| Offline | IndexedDB (idb) |
| Backend | Node.js + Express + TypeScript |
| Base de données | SQLite + Drizzle ORM |
| Déploiement | Docker (single container) |
Installation et développement
Prérequis
- Node.js 20+
- npm 9+
Démarrage en développement
# 1. Installer les dépendances backend
cd backend
npm install
# 2. Démarrer le backend (port 3001)
npm run dev
Dans un second terminal :
# 3. Installer les dépendances frontend
cd frontend
npm install
# 4. Démarrer le frontend (port 5173, proxy vers 3001)
npm run dev
L'application est accessible sur http://localhost:5173
Build de production
# Builder le frontend
cd frontend && npm run build
# Le build est dans frontend/dist/
# Copier dans backend/public/ pour le servir via Express
cp -r frontend/dist/* backend/public/
# Builder et démarrer le backend
cd backend
npm run build
npm start
Déploiement avec Docker
Build et démarrage local
docker-compose up --build
Application accessible sur http://localhost:3001
Déploiement sur Coolify (VPS)
L'application est configurée pour être déployée automatiquement via Coolify :
- Pousser le code sur Gitea :
git.domench.fr - Coolify détecte le
Dockerfileet build l'image - Le container est déployé sur
equitask.domench.fravec HTTPS via Traefik - La base SQLite est persistée dans un volume Docker
Variables d'environnement Coolify :
NODE_ENV=production
PORT=3001
DATABASE_PATH=/data/equitask.db
Volume à créer dans Coolify :
- Container path :
/data - Host path : (géré par Coolify)
Modèle de données
foyer → 1 seul enregistrement
membres → jusqu'à 7 (2 adultes + 5 enfants)
categories → 7 par défaut, éditables
taches_rec. → catalogue de tâches récurrentes
saisies → historique de toutes les tâches effectuées
Formule de score : score = durée (min) × coefficient pénibilité (1-5)
Catégories et tâches par défaut
| Catégorie | Tâches incluses |
|---|---|
| 🍳 Cuisine | Préparation repas, Vaisselle, Batch cooking… |
| 🧹 Ménage | Aspiration, Salle de bain, Lessive, Repassage… |
| 🛒 Courses | Courses alimentaires, Gestion liste… |
| 👶 Enfants | Bain, Devoirs, Activités, Cartable… |
| 📋 Administratif | RDV médicaux, Papiers, Impôts… |
| 🔧 Entretien maison | Bricolage, Jardinage, Vitres… |
| 🧠 Charge mentale | Planification, Scolarité, Santé famille… |
Structure du projet
equitask/
├── backend/
│ ├── src/
│ │ ├── db/ # Schéma, seed, connexion SQLite
│ │ ├── routes/ # API REST (foyer, membres, categories, taches, saisies)
│ │ └── index.ts # Serveur Express
│ └── package.json
├── frontend/
│ ├── src/
│ │ ├── pages/ # SelectionProfil, Saisie, Dashboard, Parametres
│ │ ├── components/ # UI, saisie, dashboard, settings
│ │ ├── api/ # Clients REST
│ │ ├── offline/ # Queue IndexedDB
│ │ ├── context/ # AppContext (membre actif, online status)
│ │ └── hooks/ # useOfflineSync, useToast
│ └── package.json
├── Dockerfile
├── docker-compose.yml
└── README.md
Description
Languages
TypeScript
97.1%
Dockerfile
1.4%
JavaScript
0.6%
HTML
0.5%
CSS
0.4%