Initial commit — Grow baby tracker

Next.js 16 App Router, Prisma + PostgreSQL, NextAuth v5 JWT.

Features: dashboard quick-log, timeline, growth charts (WHO percentiles),
stats, journal/notes, doctor notes, milestones, vaccinations, settings,
superadmin panel. Mobile-first with sidebar nav + bottom nav + quick-add FAB.
Dark mode, PWA push notifications, multi-family invite system.

Docker: multi-stage Dockerfile + docker-compose with postgres service.
This commit is contained in:
2026-06-13 01:52:46 +02:00
commit cd16c354c0
94 changed files with 14354 additions and 0 deletions
+85
View File
@@ -0,0 +1,85 @@
# 🌱 Grow — Suivi nouveau-né
Application web pour suivre les activités de votre nouveau-né (allaitement, couches, sommeil, croissance...).
## Stack
- **Next.js 16** (App Router, TypeScript)
- **PostgreSQL** + Prisma ORM (v7)
- **NextAuth v5** (authentification par email/mot de passe)
- **Tailwind CSS v4**
- **Recharts** (graphiques stats + courbes OMS)
- **TanStack Query** (sync temps réel entre les deux parents)
## Démarrage rapide
### 1. Base de données PostgreSQL
Option A — Docker (recommandé) :
```bash
docker run -d \
--name grow-db \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=grow \
-p 5432:5432 \
postgres:16
```
Option B — Homebrew :
```bash
brew install postgresql@16
brew services start postgresql@16
createdb grow
```
Option C — Cloud (Railway, Supabase, Neon) : copier l'URL de connexion.
### 2. Variables d'environnement
Éditer `.env` :
```env
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/grow"
AUTH_SECRET="votre-secret-32-chars" # openssl rand -base64 32
NEXTAUTH_URL="http://localhost:3000"
```
### 3. Migrations + démarrage
```bash
pnpm install
npx prisma migrate dev --name init
pnpm dev
```
Ouvrir [http://localhost:3000](http://localhost:3000).
### 4. Inviter le deuxième parent
Après inscription → **Réglages** → copier le lien d'invitation → envoyer à l'autre parent.
## Fonctionnalités
- **Dashboard** : boutons de log rapide (2 taps max), résumé du jour, dernières activités avec horodatage relatif
- **Journal** : timeline chronologique filtrée par type, édition des notes, suppression
- **Statistiques** : graphiques hebdomadaires (repas, couches, sommeil), intervalle moyen entre les repas
- **Courbes** : courbe de poids avec courbes OMS (P3P97), taille, périmètre crânien
- **Export CSV** : tous les événements avec filtres de dates (compatible Excel)
- **Multi-parents** : sync automatique toutes les 10 secondes, chaque événement indique qui l'a enregistré
- **PWA** : installable sur iPhone/Android depuis Safari/Chrome
## Types d'événements
| Emoji | Événement | Champs spécifiques |
|-------|-----------|-------------------|
| 🤱 | Allaitement | Sein (gauche/droite/les deux), timer live |
| 🍼 | Biberon | Volume (mL), type (maternel/artificiel) |
| 💧 | Couche mouillée | — |
| 💩 | Selles | Couleur, quantité |
| 😴 | Sieste | Timer live, durée |
| 🌙 | Sommeil nocturne | Timer live, durée |
| 💊 | Traitement | Nom, dose, unité |
| 🌡️ | Température | Valeur, °C/°F |
## Déploiement
Vercel + Railway (PostgreSQL) recommandés. Ajouter les variables d'environnement dans Vercel.