WallpaperMachine
The wallpapers you love. A new home on your Mac.
Culinova crée vos recettes avec l'IA, pesées au gramme, chiffrées, illustrées et prêtes à publier. Accès gratuit sur invitation.
Translation pending
LifestyleTypeScript · JavaScriptGitHub @rivestorrensjulienOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗« De l'idée à l'assiette, avec l'IA. » — plateforme culinaire (web + PWA), en français par défaut.
Contexte et décisions : CLAUDE.md · Cahier des charges : docs/cahier-des-charges.md
.nvmrc)corepack enable (la version exacte est fixée dans package.json)pnpm install # installe toutes les dépendances
cp .env.example .env # puis remplir DATABASE_URL, BETTER_AUTH_SECRET, ADMIN_EMAIL
pnpm db:migrate # crée les tables
pnpm db:seed # données de référence + compte administrateur (ADMIN_EMAIL)
pnpm dev # http://localhost:3000
Sans clé Claude (ANTHROPIC_API_KEY), une IA « factice » génère une recette d'exemple :
tout le parcours fonctionne, sans coût. Avec la clé, pnpm ai:essai "votre idée" lance une
vraie génération et affiche son coût.
Sans clé Resend, les e-mails ne partent pas : le lien de connexion s'affiche dans le
terminal et est enregistré dans apps/web/.outbox/.
ADMIN_EMAIL.| Adresse | Rôle |
|---|---|
/connexion | Connexion par lien magique (15 min, usage unique) |
/invitation/[code] | Création du compte avec un code (CGU + confidentialité) |
/app | Espace connecté : solde du mois |
/app/creer | Wizard de création en 12 étapes (sauvegarde automatique) |
/app/recettes | Mes recettes, et chaque recette avec ses versions |
/app/compte/securite | Appareils connectés, déconnexion partout |
/2fa | Second facteur des administrateurs |
/admin | Tableau de bord, utilisateurs, invitations, journal |
/legal/cgu | Documents juridiques (versions provisoires) |
/design | Vitrine du système de design |
/en/... | Version anglaise de chaque page |
| Commande | Rôle |
|---|---|
pnpm dev | Serveur de développement |
pnpm build | Build de production |
pnpm lint | Analyse du code (ESLint) |
pnpm typecheck | Vérification des types (TypeScript strict) |
pnpm test | Tests unitaires et d'intégration (Vitest) |
pnpm test:e2e | Tests de bout en bout dans un navigateur (après pnpm build) |
pnpm check | Lint, types, tests et build d'un coup |
pnpm db:generate | Génère une migration après modification du schéma |
pnpm db:migrate | Applique les migrations |
pnpm db:seed | Données de référence (relançable sans doublons) |
pnpm ai:essai | Une vraie génération avec Claude (nécessite la clé) |
pnpm format | Formate le code (Prettier) |
Les tests d'intégration et de bout en bout utilisent des bases dédiées
(DATABASE_URL_TEST, DATABASE_URL_E2E), vidées à chaque lancement : leur nom doit
contenir « test ». Sans DATABASE_URL_TEST, les tests d'intégration sont ignorés.
Couverture des calculs : pnpm --filter @culinova/core test:coverage.
apps/web Next.js (App Router) : site public, /app, /admin, API
packages/core Logique pure : unités, conversions, portions, coûts, marges, listes de courses
packages/db Schéma Drizzle, migrations, seeds
packages/ai Prompts, schémas Zod, adaptateurs LLM et image
packages/jobs Tâches longues (Inngest)
packages/emails Gabarits d'e-mails (React Email)
packages/ui Système de design (thèmes clair et sombre)
Unités internes : grammes, millilitres, pièces, °C, secondes. Montants en centimes entiers.
Coûts d'IA en micro-dollars (1 $ = 1 000 000), car facturés en dollars par fractions de centime.
Prix au kilo / au litre / à la pièce stockés en numeric(12,4) exprimés en euros
(« 9.8000 » = 9,80 €/kg). Les calculs intermédiaires sont exacts (entiers) et
l'arrondi au centime n'a lieu qu'à la fin.