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。 以下為已儲存的摘錄。
A self-serve session booking platform for the Career Advancement Council (CAC) at ISB.
Participants pick sessions under multi-day events (e.g. "OCC") within a per-event ticket
allotment; admins manage events, sessions, the roster, ticket allotments, and post-deadline
auto-allocation of unused tickets.
Full spec: CAC_Session_Booking_PRD.md,
CAC_Vibe_Coding_Prompt.md.檢視完整 README ↗A self-serve session booking platform for the Career Advancement Council (CAC) at ISB. Participants pick sessions under multi-day events (e.g. "OCC") within a per-event ticket allotment; admins manage events, sessions, the roster, ticket allotments, and post-deadline auto-allocation of unused tickets.
Full spec: CAC_Session_Booking_PRD.md,
CAC_Vibe_Coding_Prompt.md.
@prisma/adapter-pg) — designed for Neon's free tier.env.example to .env and fill in the values (see comments in that file for what
each one is and where to get it — Neon for Postgres, Azure AD app registration for
Microsoft sign-in, Resend for email; all free tier).npm install
npx prisma generate
npx prisma migrate dev --name init
npx prisma db seed
npm run dev
Seed data creates an admin ([email protected] / ADMIN001), ~20 demo users
(PGP2027001–PGP2027020), and an "OCC" event with 8 sessions across 2 days.
The login page offers "Sign in with Microsoft" alongside the roster (email + PGP ID) form.
The button only renders when all three AUTH_MICROSOFT_ENTRA_ID_* vars are set
(auth.ts). Whichever email Microsoft returns must match a roster isbEmail in
our DB, or the sign-in is rejected with ?error=NotRegistered — so the roster is the
authorization gate, not the tenant.
App registration (Azure Portal → App registrations, "ISB CAC platform"):
5e6de170-230c-4dca-bd0e-8e6ba99319a6signInAudience): AzureADMultipleOrgs (multi-tenant). Required because
the app is registered in a personal directory but must accept users from ISB's separate
tenant.https://login.microsoftonline.com/a4dae443-38ab-404a-b331-9d1d337fcf37/v2.0http://localhost:3000/api/auth/callback/microsoft-entra-id (local dev)https://cac-session-booking.vercel.app/api/auth/callback/microsoft-entra-id (production)Env vars — set the three AUTH_MICROSOFT_ENTRA_ID_* locally in .env and in Vercel →
Project Settings → Environment Variables. The client secret is created under Azure →
Certificates & secrets (copy the Value, not the Secret ID).
Gotchas:
.env and Vercel.npx tsx scripts/concurrency-test.ts
Fires many simultaneous booking attempts at the seeded event's lowest-capacity session and
asserts exactly capacity succeed — proving the atomic conditional-update pattern in
lib/booking.ts holds under a race.
RESEND_API_KEY is optional locally — if unset, acknowledgment emails are logged to the
console and recorded in AcknowledgmentLog instead of actually sending..env.example.