尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗La gestion intelligente des agences de voyages. Logiciel de gestion (SaaS) pour les agences qui accompagnent des clients dans leurs projets de visa, d'études à l'étranger, de voyage et de démarches administratives.
État actuel : application connectée à Supabase (Phases 5 et 6 du plan), en préparation du pilote. Comptes, agences, rôles, données et pièces des clients sont enregistrés dans Supabase, cloisonnés par agence (RLS). Avant toute donnée réelle : projet Supabase de production (formule Pro, sauvegardes), e-mails personnalisés (SMTP) et politique de confidentialité validée.
Le plan complet est dans docs/PLAN_IMPLEMENTATION.md, la charte dans docs/design/DESIGN_SYSTEM.md.
Prérequis : Node.js 24 (LTS), npm et un projet Supabase (le plan gratuit suffit pour le développement). Docker n'est pas nécessaire.
Créer le projet sur supabase.com (région conseillée : Paris, eu-west-3).
Configurer l'application : copier .env.example en .env.local, puis renseigner l'URL du projet et
la clé publique (Project Settings → API Keys). La clé secrète n'est pas nécessaire.
Créer les tables et régler l'authentification (aucun mot de passe de base n'est demandé) :
npm install
npm run db:login # ouvre le navigateur, puis recopier le code affiché
npm run db:link -- --project-ref <identifiant-du-projet>
npm run db:push # applique supabase/migrations
npx supabase config diff # vérifier ce qui changerait, puis :
npx supabase config push # adresses autorisées, longueur du mot de passe
npm run dev # http://localhost:3000
Ne jamais coller le SQL des migrations dans l'éditeur SQL de Supabase : l'historique des migrations
resterait vide et db:push échouerait. Si c'est déjà fait, marquer les migrations correspondantes comme
appliquées : npx supabase migration repair --status applied <versions…> --linked.
Ouvrir l'application, créer un compte, confirmer l'adresse e-mail, puis créer son agence (ou essayer
l'agence de démonstration si DEMO_DATA_ENABLED=true).
Le service d'e-mails intégré à Supabase n'écrit qu'aux membres de l'équipe du projet Supabase, quelques fois par heure : pour inscrire d'autres personnes (collègues invités, agences pilotes), configurer un SMTP (Authentication → Emails → SMTP Settings, par exemple Brevo ou Resend).
| Commande | Rôle |
|---|---|
npm run dev | Serveur de développement |
npm run build | Compilation de production (vérifie aussi les règles de rendu de Next.js) |
npm run lint | ESLint |
npm run typecheck | Vérification TypeScript (mode strict) |
npm test | Tous les tests : règles métier et base de données |
npm run db:test | Tests de la base seule : migrations, RLS, fonctions (PGlite, sans Docker) |
npm run db:push | Applique les nouvelles migrations au projet Supabase lié |
supabase/
├─ migrations/ Tables, RLS, fonctions et stockage (à appliquer avec npm run db:push)
└─ tests/ Tests de la base avec PGlite (reproduction minimale de Supabase)
src/
├─ app/(auth)/ Connexion, inscription, mot de passe, création d'agence, invitation
├─ app/(app)/ Espace de travail (en-tête, menu, bandeau de démonstration)
├─ app/auth/confirm/ Liens reçus par e-mail
├─ proxy.ts Rafraîchit la session et protège l'espace de travail (Next.js 16)
├─ features/<module>/ Lectures (queries.ts), écritures (actions.ts), règles métier et formulaires
└─ lib/ auth/ (session, droits), data/ (lecture Supabase, colonnes), supabase/ (clients)
Règles à respecter :
readAgency() ou getAgencyContext() (src/lib), qui vérifient la session côté
serveur ; chaque page enveloppe son contenu dans un <Suspense> (Cache Components) ;npx supabase migration new <nom>),
jamais en modifiant une migration déjà appliquée ;src/lib/data/rows.ts : le test de la base vérifie qu'elles existent.