Développement Local
Configuration Initiale
1. Cloner le Repository
git clone https://github.com/user/momentscollectifs.git
cd momentscollectifs
2. Installer les Dépendances
# Frontend
cd front-dedicaces
npm install
# Video Generator
cd ../dedicace-generator
npm install
3. Configurer Supabase Local
cd back-dedicaces
# Installer Supabase CLI
npm install -g supabase
# Démarrer Supabase
npx supabase start
Après le démarrage, noter les informations affichées :
- API URL:
http://localhost:54321 - Anon key:
eyJ... - Service role key:
eyJ...
4. Configurer les Variables d'Environnement
Frontend
// front-dedicaces/src/environments/environment.ts
export const environment = {
production: false,
supabaseUrl: 'http://localhost:54321',
supabaseKey: 'eyJ...', // Anon key de supabase start
stripeKey: 'pk_test_...',
generatorUrl: 'http://localhost:5001'
};
Video Generator
# dedicace-generator/.env
PORT=5001
NODE_ENV=development
SUPABASE_URL=http://localhost:54321
SUPABASE_SERVICE_KEY=eyJ... # Service role key
Démarrage des Services
Terminal 1 : Backend Supabase
cd back-dedicaces
npx supabase start
# Vérifier le statut
npx supabase status
Terminal 2 : Frontend Angular
cd front-dedicaces
npm start
Frontend accessible sur : http://localhost:4200
Terminal 3 : Video Generator
cd dedicace-generator
npm run dev
API accessible sur : http://localhost:5001
Terminal 4 : Landing Page (optionnel)
cd landing-page-kazadedicate
python -m http.server 8000
Landing accessible sur : http://localhost:8000
Accès aux Outils
Supabase Studio
URL : http://localhost:54323
Interface graphique pour :
- Visualiser/éditer les données
- Gérer l'authentification
- Voir les logs
- Tester les requêtes SQL
Mailhog (Emails)
URL : http://localhost:54324
Capture les emails envoyés (invitations, confirmations).
Base de Données
Appliquer les Migrations
cd back-dedicaces
npx supabase db push
Créer une Nouvelle Migration
# Après avoir modifié le schéma dans Studio
npx supabase db diff --schema public -f nom_migration
Reset de la Base
npx supabase db reset
Seed Data (Données de Test)
-- back-dedicaces/supabase/seed.sql
-- Créer un utilisateur test
INSERT INTO auth.users (id, email)
VALUES ('00000000-0000-0000-0000-000000000001', 'test@example.com');
-- Créer un événement
INSERT INTO product (name, description, created_by, date_event)
VALUES ('Test Event', 'Description', '00000000-0000-0000-0000-000000000001', '2024-06-01');
-- Créer des messages
INSERT INTO product_items (product_id, participant_name, message_media, message_type)
VALUES
(1, 'Jean', '<p>Hello World!</p>', 'TEXT'),
(1, 'Marie', '<p>Test message</p>', 'TEXT');
Debug
Frontend (Angular)
DevTools
- Ouvrir Chrome DevTools (F12)
- Onglet "Sources" pour le débogage
- Onglet "Network" pour les requêtes
- Extension Angular DevTools
Logs NGXS
// app.config.ts (dev only)
import { NgxsLoggerPluginModule } from '@ngxs/logger-plugin';
export const appConfig: ApplicationConfig = {
providers: [
// ...
importProvidersFrom(
NgxsLoggerPluginModule.forRoot({
disabled: environment.production
})
)
]
};
Backend (Supabase)
# Voir les logs
npx supabase logs
# Logs d'une fonction spécifique
npx supabase functions logs invite-participate
Video Generator
# Mode debug avec logs détaillés
DEBUG=* npm run dev