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.