Plateforme complète pour la gestion de sessions de jeu de rôle avec intégration Notion et système de proxies.
Monorepo avec:
- Admin App (
apps/admin) - Interface d'administration Next.js 15 - Combien App (
apps/combien) - Calculateur de prix pour JDR - UI Package (
packages/ui) - Composants shadcn/ui partagés - Supabase Package (
packages/supabase) - Configuration et types Supabase
# Node.js 22+, pnpm, Docker
# Installer pnpm
curl -fsSL https://get.pnpm.io/install.sh | sh
# Installer Supabase CLI
pnpm add -g supabase# 1. Installer les dépendances
pnpm install
# 2. Setup Supabase local (automatisé)
./scripts/setup-local.sh
# 3. Démarrer en mode développement
pnpm dev- Admin: http://localhost:3002
- Combien: http://localhost:3001
- Supabase Studio: http://127.0.0.1:55323
- Emails: http://127.0.0.1:55324
Le script setup-local.sh crée automatiquement un compte de test pour le développement local:
- Email:
admin@jdr.coffee - Password:
admin123
Interface principale pour:
- 🗄️ Gestion des proxies Notion
- 👤 Authentification utilisateurs
- 📊 Dashboard de monitoring
- 🔧 Configuration et diagnostics
Calculateur de monnaie pour JDR:
- 💰 Conversion Or/Argent/Cuivre
- 🧮 Calculs automatiques de prix
- ⚡ Interface rapide et intuitive
- Local:
http://127.0.0.1:55321 - Production: Configurez votre propre instance Supabase
- Ports locaux: 55321-55327 (évite conflits avec autres projets)
Voir les fichiers .env.example dans chaque app pour la configuration complète.
notion_proxies {
id: uuid (PK)
user_id: uuid (FK)
notion_database_id: text
notion_database_name: text
is_public: boolean
last_synced: timestamp
items_count: integer
}
notion_proxy_data {
id: uuid (PK)
proxy_id: uuid (FK)
notion_page_id: text
data: jsonb
last_edited: timestamp
}# Développement
pnpm dev # Démarrer tous les apps
pnpm dev:admin # Admin app seulement
pnpm dev:combien # Combien app seulement
# Build & Test
pnpm build # Build tous les projets
pnpm typecheck # Vérification TypeScript
pnpm lint # Linting Biome
# Supabase
supabase start # Démarrer base locale
supabase stop # Arrêter base locale
supabase db reset # Reset avec migrations# Basculer environnements
./scripts/switch-env.sh local # Local Docker
./scripts/switch-env.sh prod # Production
# Migration environnements
./scripts/migrate-env.sh staging
./scripts/migrate-env.sh production --dry-run# Ajouter un composant shadcn/ui
pnpm dlx shadcn@latest add button -c apps/admin
pnpm dlx shadcn@latest add dialog -c apps/combienLes types Supabase sont générés automatiquement:
import { Database, NotionProxy } from '@workspace/supabase';
// Types disponibles
type Proxy = NotionProxy;
type ProxyData = Database['public']['Tables']['notion_proxy_data']['Row'];Chaque application possède un fichier .env.example avec toutes les variables nécessaires.
# Copiez les fichiers exemple et remplissez vos valeurs
cp apps/admin/.env.example apps/admin/.env.local
cp apps/combien/.env.example apps/combien/.env.local
cp apps/pnj/.env.example apps/pnj/.env.local
# Pour le développement local avec Supabase Docker
# Les clés sont générées automatiquement par `supabase start`
# Voir la sortie de la commande pour récupérer les clés
# Pour la production
# Obtenez vos clés depuis: https://app.supabase.com/project/_/settings/apijdr-coffee/
├── apps/
│ ├── admin/ # Interface d'admin (Next.js)
│ └── combien/ # Calculateur prix (Next.js)
├── packages/
│ ├── ui/ # Composants shadcn/ui
│ └── supabase/ # Client & types Supabase
├── scripts/ # Scripts d'automation
├── supabase/ # Migrations & config
└── utils/ # Utilitaires partagés
- Local: Développement et tests
- Staging: Tests d'intégration
- Production: Déploiement final
# 1. Test local
pnpm build && pnpm typecheck
# 2. Migration staging
./scripts/migrate-env.sh staging
# 3. Migration production
./scripts/migrate-env.sh production- Configuration Supabase - Setup détaillé base de données
- Scripts d'Automation - Scripts de gestion environnement
- Types TypeScript - Types générés auto
- Fork le projet
- Créer une branche (
git checkout -b feature/amazing-feature) - Commit (
git commit -m 'Add amazing feature') - Push (
git push origin feature/amazing-feature) - Ouvrir une Pull Request
⚠️ Ne commitez JAMAIS vos fichiers.env.local- ils sont dans.gitignorepour une bonne raison⚠️ Ne partagez JAMAIS vos clés API dans le code, issues, ou discussions publiques- ✅ Utilisez les fichiers
.env.examplecomme référence pour configurer votre environnement - ✅ Changez TOUS les secrets en production (utilisez des valeurs différentes du développement local)
Les clés dans scripts/setup-local.sh sont les clés par défaut de Supabase local (générées par Docker).
- Ces clés sont publiques et non sensibles
- Elles sont identiques pour tous les utilisateurs de Supabase local
- Elles ne peuvent être utilisées que pour accéder à votre instance locale Docker
Les identifiants admin@jdr.coffee / admin123 sont:
- Uniquement pour le développement local
- Créés automatiquement par le script
setup-local.sh ⚠️ Ne JAMAIS utiliser en production
Si vous rendez ce projet public:
- Générez de nouvelles clés Supabase pour la production
- Créez un nouveau token d'intégration Notion
- Régénérez votre clé API Google Gemini
- Mettez à jour toutes les variables d'environnement dans Vercel/votre plateforme de déploiement
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.