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 custom-built replacement for the Base44 prototype — full control over data, auth, and
the resume-parsing/keyword-search feature that a no-code builder can't do well.檢視完整 README ↗A custom-built replacement for the Base44 prototype — full control over data, auth, and the resume-parsing/keyword-search feature that a no-code builder can't do well.
/apply, no login) — candidates submit their info, pick a
discipline (Drilling / Completions / Both), and upload a resume/admin/applications) — see submitted applications
with AI-extracted keywords, Accept or Reject/my-tickets) — once logged in, a consultant
sees only their own required certifications (based on their discipline) and can
add/renew their own tickets, optionally uploading proof documents/admin/ticket-types) — you control the master list of
required certifications per discipline (H2S Alive, Fall Protection, etc.) — nothing
is hardcoded/admin/import) — import your existing consultants and their
tickets at once. Ticket expiry dates auto-calculate from the ticket type's default
validity period if left blank, and keyword columns (formations, rig types, skills,
certs, software) get matched/created and tagged on each consultant automatically/admin/evaluations) — generate a shareable link per
consultant (no login required for the client), collect a 1-5 rating and comments,
and see results both on the Evaluations dashboard and on the consultant's own profileCLIENT role and route-permission structure already anticipate this)Install dependencies:
npm install
Copy .env.example to .env and fill in:
DATABASE_URL — a Postgres connection string. Easiest options: Neon or Supabase, both have free tiers.NEXTAUTH_SECRET — generate with openssl rand -base64 32ANTHROPIC_API_KEY — your Claude API key from console.anthropic.comS3_* — an S3 bucket (AWS) or R2 bucket (Cloudflare, cheaper egress) for resume storageRESEND_API_KEY — sign up free at resend.com, create an API key. Their
test domain ([email protected]) works immediately for testing; for production you'll want
to verify your own domain in their dashboard so emails come from your own address.CRON_SECRET — generate with openssl rand -base64 32. When deployed on Vercel, this is
automatically sent as a Bearer token to your cron endpoint — you don't need to configure
anything else, Vercel reads the vercel.json in this project and calls
/api/cron/ticket-expiry once a day automatically.Push the schema and seed starter data:
npx prisma generate
npx prisma migrate dev --name init
npx prisma db seed
This creates a first admin login: [email protected] / ChangeMe123! —
change this password immediately after first login (via the admin users page,
or directly in the database until a "change password" UI is added).
Run it:
npm run dev
Visit http://localhost:3000.
Once you export your current consultants/tickets from Base44 (usually CSV or JSON),
the fastest path is a one-off script using the same Prisma client — I can write this
once I see the shape of your export file. It'll map your existing fields into the
Consultant, Keyword, and Ticket tables and can even run each consultant's
existing resume through the same Claude parsing pipeline in bulk.
Keywords are stored as a typed taxonomy (FORMATION, RIG_TYPE, SKILL,
CERTIFICATION, SOFTWARE) rather than free-text tags. This is what powers the
toggle-style filter UI on the Consultants page — each keyword becomes a clickable
chip, and you can require any selected keyword to match or all of them.
New keywords are created automatically the first time Claude extracts them from a
resume (or you can add them manually from the search page/admin), so the taxonomy
grows on its own as you upload more resumes without needing a fixed master list up front.