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.