Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 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.