Synaplan
기업을 위한 오픈소스 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 전문 보기 ↗