opencompany
Self-improving AI that runs your whole business: six AI employees automate development, design, accounting, sales, marketing, and tax with 200+ AI models.
Logiciel de gestion pour les agences de voyages : clients, dossiers de visa et d'études, documents, rendez-vous et paiements.
Translation pending
BusinessTypeScript · PLpgSQLGitHub @celselaurinnkaya-jpgOnlineOwner 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 ↗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.