尚未偵測到更新。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.