Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Coaching client management. A Next.js app that turns coach documents into a
confirmed "active protocol", ingests real nutrition/health data from Health
Connect via an Android companion app, and closes the loop with a compliance
dashboard, an AI weekly analysis, and a generated coach check-in.
Live demo: https://show-prep-gamma.vercel.app — seeded with sample
coaching data; log in with the demo passcode.
• / — Next.js 16 (App Router) + TypeScript + Drizzle + PostgreSQL web app
• /mobile — Expo (React Native) Health Connect companion for Android
(its README)README 전문 보기 ↗Coaching client management. A Next.js app that turns coach documents into a confirmed "active protocol", ingests real nutrition/health data from Health Connect via an Android companion app, and closes the loop with a compliance dashboard, an AI weekly analysis, and a generated coach check-in.
Live demo: https://show-prep-gamma.vercel.app — seeded with sample coaching data; log in with the demo passcode.
Monorepo layout (pnpm workspaces):
/ — Next.js 16 (App Router) + TypeScript + Drizzle + PostgreSQL web app/mobile — Expo (React Native) Health Connect companion for Android
(its README)claude-opus-4-8) extracts structured prescriptions (calories, P/C/F,
effective date, cardio plan); you review and confirm before one becomes
the active protocol. Program rules/guidelines are just another document
category.check_ins. Thresholds live in the weekly_targets
table (set per client by the coach, on the client's page — Edit). Output: a copyable/mailable filled-in template.voyage-4 embeddings,
1024-dim, pgvector), with source citations./log, POST /api/manual-entry): a client logs their own days, a coach
picks a client. Saved with source: "manual"; saving a day again replaces
that day's manual entry. Macros/nutrition are not logged here./api/ingest/{nutrition|weight|hydration|sleep|exercise|activity},
Zod-validated, bearer-token-gated, idempotent (upserts on Health Connect
record UIDs).pnpm install
cp .env.example .env.local # add ANTHROPIC_API_KEY + VOYAGE_API_KEY for AI features
pnpm seed # optional: 35 days of demo data (run with dev server stopped)
pnpm dev
No database setup needed: without DATABASE_URL the app runs an embedded
PGlite (WASM Postgres, pgvector included) at .data/pglite. Point
DATABASE_URL at a real Postgres (with the pgvector extension) to use one —
same Drizzle schema/migrations either way.
PGlite is single-process: stop the dev server before running
pnpm seed, and vice versa.
Create a Postgres database (Neon, or Vercel → Storage → Postgres) and copy
its pooled connection string. Migrations and the vector extension are
applied automatically on first boot — no manual setup.
Import the repo at vercel.com/new and set env vars:
DATABASE_URL, ANTHROPIC_API_KEY, VOYAGE_API_KEY, INGEST_API_KEY
(required in prod — the ingest API is public), SESSION_SECRET, and for a
public demo SEED_COACH_PASSCODE/SEED_CLIENT_PASSCODE (see "Demo
account seeding" in .env.example — sets the seeded demo account's
passcode; there's no login-page shortcut, sign in with it like any other
account).
Seed the deployed database with sample data + AI content from your machine:
DATABASE_URL="<neon-pooled-url>" SEED_AI=1 pnpm seed
AI routes run with maxDuration = 300; next.config.ts bundles the migration
SQL into the serverless output.
| Command | What |
|---|---|
pnpm dev / pnpm build / pnpm start | Next.js |
pnpm seed | demo data (35 days, active + pending protocol) |
pnpm test | unit tests (Vitest) |
pnpm test:e2e | e2e smoke tests (Playwright) |
pnpm typecheck | tsc --noEmit |
pnpm db:generate | regenerate Drizzle migrations after schema changes |
pnpm backfill-accounts | one-time: create coach/client accounts, assign existing data (see the script's header comment) |
All optional — see .env.example. INGEST_API_KEY protects the ingest API
(the companion app sends it as a bearer token). SESSION_SECRET enables the
per-account login gate (each account has its own passcode, see
scripts/backfill-accounts.ts); leave unset for none.
Day bucketing is done in America/Los_Angeles (configurable per client — a coach
sets it on the client's page via Edit; a client sets their own in Settings):
timestamps are stored as UTC and each row also stores its local_date,
computed at ingest.
MyFitnessPal ─┐
├→ Health Connect (on-device) → mobile companion (batched POST)
Samsung Health┘ → /api/ingest/* → Postgres → dashboard / check-ins
Coach docs → upload → Claude extraction → pending protocol → user confirms
→ active protocol (compliance baseline)
→ chunked + embedded (voyage-4) → doc chat (RAG)