Aller au contenu principal

Getting Started

Installez et lancez HeartCo en 5 minutes.

Prérequis

OutilVersion minimaleVérification
Node.js20.xnode -v
pnpm9.xpnpm -v
PostgreSQL15+ (ou Supabase)
Git2.xgit -v

Important : HeartCo utilise pnpm exclusivement. Ni npm, ni yarn ne sont supportés.

Installation

1. Cloner le projet

git clone https://github.com/votre-org/heartco.git
cd heartco

2. Installer les dépendances

pnpm install

3. Configurer les variables d'environnement

cp .env.example .env

Ouvrez .env et configurez les 6 variables essentielles pour démarrer :

# Base de données (Supabase PostgreSQL)
DATABASE_URL="postgresql://postgres:[PASSWORD]@db.[PROJECT].supabase.co:6543/postgres?pgbouncer=true"
DIRECT_URL="postgresql://postgres:[PASSWORD]@db.[PROJECT].supabase.co:5432/postgres"
 
# Authentification
AUTH_SECRET="votre-secret-min-32-chars"  # Générer : openssl rand -base64 32
NEXTAUTH_URL="http://localhost:3000"
 
# URL publique
NEXT_PUBLIC_APP_URL="http://localhost:3000"
 
# Emails (Resend)
RESEND_API_KEY="re_xxxxxxxxxxxx"

Les autres variables (Stripe, OAuth, IA, etc.) sont optionnelles pour le développement local. Consultez Déploiement pour la configuration production.

4. Générer le client Prisma

npx prisma generate

Le client est généré dans generated/prisma/ (pas dans node_modules).

5. Créer la base de données

npx prisma migrate dev --name init

Cette commande applique toutes les migrations et crée les tables dans votre base Supabase.

6. (Optionnel) Seeder les données de démo

npx prisma db seed

7. Lancer le serveur de développement

pnpm dev

Le serveur démarre sur http://localhost:3000 avec Turbopack.

Vérification

Une fois le serveur lancé, vérifiez que tout fonctionne :

  1. Page d'accueil : http://localhost:3000 — Landing page HeartCo
  2. Login : http://localhost:3000/login — Page de connexion
  3. Register : http://localhost:3000/register — Création de compte
  4. Dashboard : http://localhost:3000/dashboard — (après connexion)

Comptes de démonstration

Si vous avez seedé la base de données, les comptes suivants sont disponibles :

RôleEmailMot de passe
Adminadmin@heartco.frdemo-admin-2026
Managermanager@heartco.frdemo-manager-2026
Collaborateurcollab@heartco.frdemo-collab-2026

Commandes utiles

pnpm dev              # Serveur dev (Turbopack)
pnpm build            # Build production
pnpm lint             # Vérifier le code (ESLint)
pnpm lint:fix         # Corriger automatiquement
pnpm typecheck        # Vérifier les types TypeScript
pnpm test             # Lancer les tests (Vitest)
pnpm format:write     # Formater le code (Prettier)
npx prisma studio     # Interface graphique pour la DB

Structure du projet

heartco/
├── docs/                  # Cette documentation
├── prisma/
│   ├── schema.prisma      # Schéma de la base de données
│   └── migrations/        # Migrations SQL
├── generated/prisma/      # Client Prisma généré
├── src/
│   ├── app/               # Pages (App Router)
│   ├── components/        # Composants React
│   ├── lib/               # Utilitaires et configuration
│   ├── modules/           # Modules métier (facturx, iopole, bridge)
│   ├── server/            # API tRPC + authentification
│   └── styles/            # CSS global
├── e2e/                   # Tests E2E (Playwright)
├── packages/              # Packages partagés (ui, shared, mobile-core)
└── packages/              # Packages partagés (monorepo)

Pour une vue détaillée de l'architecture, consultez Architecture.

Problèmes courants

EPERM sur Windows (Prisma DLL)

Si vous obtenez une erreur EPERM lors de prisma generate :

Error: EPERM: operation not permitted, unlink 'generated/prisma/query_engine-windows.dll.node'

Solution : Arrêtez le serveur de développement (Ctrl+C), relancez npx prisma generate, puis redémarrez pnpm dev.

Port 3000 déjà utilisé

# Trouver le processus
lsof -i :3000
# Ou sur Windows
netstat -ano | findstr :3000

Erreurs de migration Prisma

Si les migrations échouent :

npx prisma migrate reset    # Recrée la DB (ATTENTION : perte de données)
npx prisma migrate dev      # Réapplique les migrations

Prochaines étapes