Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Multi-tenant operations platform built for Nigerian businesses. The current vertical is gym management — admins manage members, trainers, billing, and plans; members self-serve their profile, check-ins, BMI, and AI-generated workout plans.
Live: Deployed on Vercel · Stack: Next.js 15 · Supabase · Paystack · Claude AI · shadcn/ui
EngineRoom is designed to grow beyond gyms. The underlying architecture — multi-tenancy, role-based access, payments, notifications, and AI — applies across verticals. Planned or considered expansions:
| Vertical | Description |
|---|---|
| Gym Management | Current vertical — members, trainers, check-ins, workout plans, billing |
| Inventory & Retail | Stock tracking, low-stock alerts, supplier management for supermarkets and retail stores |
| HR & People Ops | Employee records, leave management, payroll tracking, onboarding workflows |
| Corporate Communications | Internal announcements, team notifications, document distribution, org-wide broadcasts |
Each vertical shares the same auth, tenant isolation, and billing infrastructure — only the domain-specific modules differ.
| Item | Status |
|---|---|
| Next.js 15 App Router, pnpm monorepo | ✅ Done |
| Supabase auth + SSR middleware | ✅ Done |
| Vercel deployment + environment variables | ✅ Done |
| Role-based routing (gym_admin / trainer / member) | ✅ Done |
| Paystack client library (init, verify, webhook sig) | ✅ Done |
| Claude AI client (workout plan generation) | ✅ Done |
| Page | Status |
|---|---|
| Landing page (hero, features, CTA) | ✅ Done |
| Login | ✅ Done |
| Register gym | ✅ Done |
| Forgot password | ✅ Done |
| Reset password | ✅ Done |
| Change password (in-app) | ✅ Done |
| Feature | Status | Notes |
|---|---|---|
| Dashboard overview (stats, revenue) | ✅ Done | |
| Member list + add member | ✅ Done | |
| Member detail / edit / remove | ✅ Done | |
| Trainer list + add trainer | ✅ Done | |
| Trainer detail / edit / remove | ✅ Done | |
| Membership plans (create, edit, toggle active) | ✅ Done | branch access per plan: all branches or specific; guest passes per month (0 = no guests) |
| Payment log (record manual payment) | ✅ Done | |
| Paystack payment flow (online billing) | ✅ Done | member self-pay renewal; webhook updates status |
| QR code check-in display + live log | ✅ Done | per-branch QR codes when branches enabled; branch tab selector on check-in page |
| Notifications (view) | ✅ Done | |
| Notifications (create / send to members) | ✅ Done | manual announcements + automated expiry alerts (7d, 3d) |
| Gym profile | ✅ Done | |
| Gym settings | ✅ Done | name, phone, address editable; Features toggle for branches; referral reward days; subscription plan management |
| Branches (multi-location) | ✅ Done | opt-in via Settings; per-branch QR; plan-level access control (all vs specific branches) |
| Team management (staff invites) | ✅ Done | roles: second_admin, front_desk, accountant; second-admin invites require owner approval before link is sent; front_desk/accountant get direct magic link |
| Guest visits log | ✅ Done | gym admin logs guest details (name, phone, email) for marketing; validates member's monthly quota; /gym-admin/guests |
| Referral settings | ✅ Done | configurable reward days per referral in Settings; applies across the gym |
| Feature | Status | Notes |
|---|---|---|
| Dashboard (membership status, quick actions) | ✅ Done | referral code card + guest passes remaining (if plan allows) |
| Check-in history (list) | ✅ Done | |
| Check-in calendar | ✅ Done | monthly calendar with day highlights + month navigation |
| QR check-in (scan gym QR to check in) | ✅ Done | deduplicates within 6 hours |
| BMI tracker (log + history) | ✅ Done | |
| Workout plan (AI-generated by Claude) | ✅ Done | |
| Workout timer (in-app countdown / stopwatch) | ✅ Done | floating panel; stopwatch + rest timer modes |
| Notifications (view) | ✅ Done | |
| Member profile / edit | ✅ Done | |
| Referral page | ✅ Done | unique 6-char code; stats (referred, converted, days earned); how-it-works steps; /member/referral |
| Feature | Status | Notes |
|---|---|---|
| Dashboard (stats + recent check-ins) | ✅ Done | |
| Assigned members list | ✅ Done | |
| Member detail (BMI, check-ins, workout plan) | ✅ Done | |
| Workout plan management | ✅ Done | trainer assigns plans from exercise library (wger-seeded) |
| Attendance tracking | ⬜ Pending |
Access model: Separate route group
/super-adminwithin the same Next.js app, accessible only to accounts with theplatform_adminrole. Can be served on a custom subdomain (e.g.admin.engineroom.ng) via Vercel domain aliases with a host-based redirect innext.config.ts.
Gym onboarding policy: New gyms registered via the public sign-up form do not go live immediately. They enter a pending approval state and must be reviewed and approved by a super-admin before they can access the platform. This prevents unauthorised or spam tenants.
以上為 README 的開頭部分。其餘內容請閱讀原文。 檢視完整 README ↗