Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
One console for gym owners to manage every location: roster verification, plans & billing, attendance, feedback and cross-location insights.
BusinessGitHub @Bib3k4uOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Multi-tenant gym and fitness management platform. Many gyms, each with many locations, under one platform operator.
| Folder | What it is |
|---|---|
backend/ | Java 21 + Spring Boot 4 modular monolith, PostgreSQL + RLS |
frontend/ | Next.js — public SEO zone and authenticated admin console |
app/ | React Native + Expo — all five roles, one application |
docs/ | SRS, architecture, engineering standards, data model |
Read these before changing anything structural. They are the authority; when code and document disagree, one of them is a bug.
| Document | Fixes |
|---|---|
docs/LIMITBEYOND_SRS_v1.1.pdf | What the system must do — ~200 numbered requirements |
docs/LIMITBEYOND_ARCH_v1.0.pdf | Technology decisions, ADR-01 to ADR-15 |
docs/LIMITBEYOND_STANDARDS_v1.0.pdf | How code is written, reviewed and enforced |
docs/LIMITBEYOND_DATAMODEL_v1.0.pdf | 74 entities, every relationship and constraint |
CLAUDE.md is the condensed ruleset for AI coding assistants.
cd backend
docker compose up -d # PostGIS-enabled Postgres on :5432
cp .env.example .env
./mvnw spring-boot:run # http://localhost:8080
Two database roles, and the distinction matters: lb_migrator owns the schema
and runs Flyway; lb_app owns nothing and serves requests. A table owner
bypasses Row-Level Security, so connecting as the owner would silently disable
every isolation guarantee in the platform.
cd frontend
cp .env.example .env.local
npm run dev # http://localhost:3000
Public routes are statically generated with ISR and carry full metadata plus
JSON-LD built from database content. /console/* is authenticated,
client-rendered and noindex.
cd app
cp .env.example .env
npx expo start
On a physical device set EXPO_PUBLIC_API_BASE_URL to your machine's LAN IP —
localhost resolves to the phone.
These fail silently: they compile, pass ordinary tests, and show no symptom until it matters.
SET LOCAL, never bare SET, for RLS contextpublic_id, never a full URLFull reasoning in docs/LIMITBEYOND_STANDARDS_v1.0.pdf §4.
Scaffolded, compiling, and typechecking clean. Phase 1 implementation has not
started — see docs/LIMITBEYOND_ARCH_v1.0.pdf §14 for the build sequence.