opencompany
스스로 개선하는 AI가 사업 전체를 운영, 6명 AI 직원이 개발·디자인·회계·영업·마케팅·세무를 200개 모델로 자동화
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 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.