Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
This repo holds two independent projects side by side (not a monorepo with shared tooling/workspaces — each has its own dependencies and build):
• backend/ — Spring Boot (Maven)
• frontend/ — React (Vite)
Each project has its own env file, and both are git-ignored. Copy the templates and fill in real values:
On first run against an empty database, demo/seed data is loaded automatically (2 clubs, sample students,
events, RSVPs, attendance). Demo accounts (password: password123):檢視完整 README ↗This repo holds two independent projects side by side (not a monorepo with shared tooling/workspaces — each has its own dependencies and build):
Each project has its own env file, and both are git-ignored. Copy the templates and fill in real values:
cp backend/.env.example backend/.env # backend: database login, JWT secret, mail (read automatically on start)
cp frontend/.env.example frontend/.env # frontend: VITE_API_BASE_URL (read automatically by Vite)
cp .env.example .env # only for `docker compose up` (see below)
docker compose up
On first run against an empty database, demo/seed data is loaded automatically (2 clubs, sample students,
events, RSVPs, attendance). Demo accounts (password: password123):
[email protected][email protected][email protected][email protected], [email protected], [email protected]Note: the database is MySQL 8 (schema managed by Flyway migrations).
Or run each separately:
cd backend && ./mvnw spring-boot:run
cd frontend && npm install && npm run dev
Set these in backend/.env (see backend/.env.example), or in the root .env for docker compose. The defaults suit local development and the demo docker compose stack; a real deployment should change them.
| Variable | Local / demo default | Real deployment |
|---|---|---|
SEED_DEMO_DATA | true — loads the demo accounts above into an empty database | false (the backend's prod profile already defaults to this) |
BOOTSTRAP_ADMIN_EMAIL / BOOTSTRAP_ADMIN_PASSWORD | empty | Set both (password 12+ characters) to create the first Super Admin when none exists |
REQUIRE_EMAIL_VERIFICATION | false — no SMTP needed to use the app | true — joining clubs, RSVPs, payments and proposing clubs need a verified email |
JPA_DDL_AUTO | validate — Flyway creates and upgrades the schema; Hibernate only checks it | leave as validate |
TRUST_FORWARDED_HEADERS | false | true only behind a proxy that overwrites X-Forwarded-For (needed for correct per-IP rate limiting there) |
/verify-certificate/{code}.page/size (paged by the database, with an X-Total-Count response header); events also take q, category, from, to, and clubs take q.See MANUAL_TEST_PLAN.md for how to verify each of these and JIRA_UPDATES.md for the story list.
The schema is owned by Flyway (backend/src/main/resources/db/migration) and applied automatically at startup — there is
no manual SQL to run. Existing databases created by earlier builds are picked up (baselined at V1) and upgraded in
place. To change the schema, add a new V<n>__description.sql; never edit one that has been released. Hibernate only
validates, so an entity change without a migration fails the tests and the startup instead of silently altering data.
cd backend && DB_USERNAME=root DB_PASSWORD=... ./mvnw verify # unit + integration tests (~315)
cd frontend && npm ci && npm run lint && npm test # ~22 tests
The backend integration tests run the real application against MySQL in a dedicated database
(club_management_test, created on first use; override with TEST_DATASOURCE_URL). They wipe that database on every
test and refuse to run unless its name contains test, so your development data is never touched.
Backend and frontend have separate pipelines that only run when their own folder changes:
| Workflow | What it does |
|---|---|
backend.yml | tests on MySQL → Docker image (GHCR, Trivy scan) → deploy to Render → waits for the new commit to report healthy → smoke tests |
frontend.yml | lint, tests, build, audit → Vercel PR previews → production deploy → live smoke test |
Setup (Render, Vercel, GitHub secrets), the first release, rollback and troubleshooting are in
docs/DEPLOYMENT.md. GET /api/health is the public health/version probe.