Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Logiciel SaaS B2B de gestion pour les établissements africains : parcs aquatiques et espaces de loisirs, restaurants, ou les deux. Lancement au Mali, en français, prix en FCFA (XOF).
Statut : Sprint 8 (en cours) — socle SaaS (Sprint 1), caisse POS restaurant (Sprint 2), POS Android avec impression thermique ESC/POS et tiroir-caisse (Sprint 3, validation sur matériel réel à faire), billetterie du parc avec QR codes et contrôle d'accès (Sprint 4, docs/BILLETTERIE-PARC.md), restaurant : commandes, cuisine KDS en temps réel, commandes QR, tables, stocks, réservations et tickets cuisine (Sprint 5, docs/RESTAURANT.md), bornes de commande, CRM, fidélité et planning du personnel (Sprint 6, docs/BORNES-CRM-FIDELITE-PLANNING.md), intelligence artificielle : import de carte, copilote analytique, commande vocale (Sprint 8, docs/INTELLIGENCE-ARTIFICIELLE.md), analyses, marges et exports CSV (Sprint 9, docs/ANALYSES.md), sites vitrines publics et domaines (Sprint 10, docs/SITES-VITRINES.md). Suivi détaillé : SPRINT_STATUS.md.
apps/
api/ API REST NestJS (/api/v1, Swagger sur /api/docs)
web/ Frontend Next.js App Router + Tailwind CSS
android/ Connecteur Android (WebView + pont matériel imprimante / tiroir), Kotlin
packages/
shared/ Contrats partagés : métiers, rôles, matrice RBAC, modules, navigation
database/ Schéma Prisma, migrations, scripts (db:check, super admin)
e2e/ Tests Playwright
docs/ Documentation (déploiement Railway, caisse POS, matériel, billetterie, checkpoints)
scripts/ Outils de dépôt (journaux complets des tests dans test-logs/)
| Couche | Technologie | Hébergement cible |
|---|---|---|
| Frontend | Next.js 15, React 19, Tailwind CSS 3 | Railway (web) |
| API | NestJS 11, class-validator, Swagger | Railway (api) |
| Base de données | PostgreSQL + Prisma 6 | Neon |
| CI | GitHub Actions | GitHub |
organizationId. L'organisation active vient
uniquement de la session côté serveur ; tout champ organizationId envoyé par le client est
refusé (400). Une ressource d'une autre organisation renvoie 404.httpOnly / SameSite=Lax (seul son hash SHA-256 est stocké), révocable
immédiatement (déconnexion, désactivation, suspension, changement de mot de passe)./api/v1/* sur le domaine du frontend, que Next.js
relaie vers l'API. Le cookie reste first-party, l'API n'est pas exposée en cross-site.packages/shared/src/rbac.ts, appliquée par l'API (gardes globales) et
reflétée par l'interface. Le SUPER_ADMIN est un rôle plateforme sans accès aux données métier.PARK | RESTAURANT | PARK_RESTAURANT. Seule évolution permise : vers PARK_RESTAURANT, sans perte.SubscriptionPlan), modifiables par le Super Admin, historisés dans
l'audit. Paiement Wave : interface PaymentProvider seulement — un abonnement ne sera jamais activé
sur la foi du frontend.corepack enable ou npm i -g [email protected])git clone https://github.com/Souleymane-coulibaly/park-management.git
cd park-management
pnpm install
# Variables d'environnement (jamais commitées)
Copy-Item apps/api/.env.example apps/api/.env
Copy-Item apps/web/.env.example apps/web/.env.local
# Éditez apps/api/.env : DATABASE_URL / DIRECT_URL (base Neon de développement)
# et TEST_DATABASE_URL / TEST_DIRECT_URL (branche Neon « test »)
| Environnement | Base | Variables |
|---|---|---|
| Développement | Base Neon existante | DATABASE_URL, DIRECT_URL |
| Test | Branche Neon test / base éphémère CI | TEST_DATABASE_URL, TEST_DIRECT_URL |
| Production | À choisir avant le déploiement | Variables Railway (non configurées) |
Jamais de migration destructrice ni de nettoyage de tests sur la base de développement. Détails : docs/DEPLOIEMENT-RAILWAY.md.
pnpm db:check # connexion et migrations appliquées (développement)
pnpm db:migrate:status # état des migrations
pnpm db:migrate:create -- nom_evolution # génère une migration (lecture seule sur la base)
pnpm db:migrate:check # refuse les migrations destructrices
pnpm db:migrate:deploy # contrôle puis applique les migrations en attente
pnpm db:bootstrap-super-admin -- --email [email protected] --first-name Awa --last-name Traoré
La migration initiale crée aussi les trois offres : Parc 25 000, Restaurant 35 000,
Parc + Restaurant 55 000 FCFA/mois. prisma migrate dev n'est pas utilisé : il peut proposer de
réinitialiser la base.
pnpm build:packages # compile packages/shared et packages/database
pnpm dev # API sur http://localhost:4000, web sur http://localhost:3000
pnpm lint # ESLint
pnpm format:check # Prettier
pnpm typecheck # TypeScript strict sur tous les paquets
pnpm test # tests unitaires (Jest)
pnpm db:migrate:deploy:test # migrations sur la base de test
pnpm test:integration # tests d'intégration API — base de TEST uniquement
pnpm build; pnpm test:e2e # tests Playwright (démarre l'API et le web construits, base de TEST)
⚠️ Les tests d'intégration et E2E créent puis suppriment des données. Ils s'exécutent uniquement
sur la base désignée par TEST_DATABASE_URL / TEST_DIRECT_URL (branche Neon test) et
refusent de démarrer si elle est absente ou identique à DATABASE_URL. Création de la branche :
voir docs/DEPLOIEMENT-RAILWAY.md. La CI GitHub Actions
utilise sa propre base PostgreSQL éphémère.
Voir docs/DEPLOIEMENT-RAILWAY.md. Aucun déploiement de production sans validation.