2026-04-28 20:02:27 +02:00
2026-04-28 20:02:27 +02:00
2026-04-28 19:59:36 +02:00

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 :

  1. Pousser le code sur Gitea : git.domench.fr
  2. Coolify détecte le Dockerfile et build l'image
  3. Le container est déployé sur equitask.domench.fr avec HTTPS via Traefik
  4. 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
S
Description
Déployé automatiquement par deploy.py — 2026-04-28 19:51
Readme 87 KiB
Languages
TypeScript 97.1%
Dockerfile 1.4%
JavaScript 0.6%
HTML 0.5%
CSS 0.4%