Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗This is a Next.js project bootstrapped with create-next-app.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
Events, guests, tables and zones are stored in Supabase Postgres. The browser
talks only to the Next.js API routes in src/app/api/events/, which query the
database with a server-only secret key.
One-time setup:
supabase/migrations/20260930000000_init.sql,
then supabase/migrations/20261001000000_roles.sql (user roles and event
owners), then supabase/migrations/20261002000000_leads.sql (the sales
leads CRM), then supabase/migrations/20261003000000_leads_convert.sql
(lead-to-event conversion), then supabase/migrations/20261004000000_role_claim.sql
(puts the user's role in their session token), then
supabase/migrations/20261006000000_floor_plans.sql (private storage bucket
for hall floor plans), then supabase/migrations/20261007000000_gifts.sql
(the couple's gift ledger), then supabase/migrations/20261008000000_rsvp_tokens.sql
(guests' personal RSVP links), then
supabase/migrations/20261009000000_guest_last_contacted.sql (when each
guest was last sent an RSVP message), then
supabase/migrations/20261010000000_ai_seating.sql (the AI seating
assistant's usage quota and lock), then
supabase/migrations/20261020000000_rsvp_automation.sql and
supabase/migrations/20261022000000_rsvp_automation_hourly.sql (the RSVP
automation's progress and run log), then supabase/seed.sql
(optional demo data).
Then enable the role hook: Authentication → Hooks → Customize Access
Token (JWT) Claims → Postgres function public.custom_access_token_hook..env.example to .env.local and fill in SUPABASE_URL,
SUPABASE_SECRET_KEY and SUPABASE_PUBLISHABLE_KEY from the project's settings,
and OPENAI_API_KEY for the AI seating assistant.insert into public.profiles ... query at the bottom of
the roles migration with that user's email.npm run dev and sign in at /login./admin and /api/admin/* require a signed-in user whose profile role is
admin (checked in src/app/admin/layout.tsx and in each admin route via
getCurrentUser() from src/lib/auth.ts).
Staff (hostess) accounts are created at /admin/staff. Staff land on /live
after login, where they pick today's event or enter an event ID, and may only
open /live/*. src/proxy.ts redirects them away from /admin and /couple
using the role claim from the hook above (see src/lib/areas.ts); the
layouts and API routes enforce the same rules against the database, and the
guests API lets staff change only arrival fields.
| Route | Methods |
|---|---|
/api/events | GET list, POST create |
/api/events/[eventId] | GET, PUT (partial update, e.g. { "phase": "SEATING" }), DELETE |
/api/events/[eventId]/guests | GET, POST (create Guest[]), PUT (upsert Guest[]), DELETE ({ "ids": [...] }) |
/api/events/[eventId]/tables | same as guests, with SeatingTable[] |
/api/events/[eventId]/zones | same as guests, with SeatingZone[] |
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.