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。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Crash · Quote · Claim. The fastest way to price a prang.
An online tool where consumers request repair quotes from nearby panel beaters, plus an authenticated back-office portal where assessors build and issue the quotes. Built with Next.js 16 (App Router), Vercel Blob, Resend, Google Maps and Claude (licence-disc reading).
| Concern | Choice |
|---|---|
| Framework | Next.js 16 (App Router, Turbopack, React 19) |
| Styling | Tailwind CSS v4 + brand tokens (Space Grotesk / Archivo) |
| Data store | Vercel Blob (JSON documents) |
| Media | Vercel Blob (client uploads, which bypass the 4.5MB API limit) |
| Auth | Cookie session (JWT via jose) + bcrypt, role/permission model |
| Resend (branded HTML) | |
| Maps | Google Geocoding API (server only, GEOCODING_API_KEY) |
| Vehicle ID | Claude vision reads the SA licence disc (VIN API upgrade planned) |
| PDF quotes | @react-pdf/renderer |
/ → Price my Prang button → multi-step form:
name, email, insurance/warranty/claim questions, licence-disc photo (read by
Claude), optional 20-second in-browser video (auto-stops at 20s), engine-damage
question, repeatable damage photos (max 15), quotes wanted (1–4) → map of
nearby panel beaters → select → submit. A reference PMP-YYYYMMDD-SURNAME-NN
is generated and confirmation emails go to the consumer and the assessors.
/portal, auth required)view_dashboard).build_quotes).manage_panel_beaters / onboard_self).manage_parts).manage_users).admin · assessor · panel_beater. Defaults live in lib/permissions.ts;
per-user extra permissions can be granted on top.
npm install
cp .env.example .env.local # fill in the values (see below)
npm run dev
See .env.example. Minimum to run locally: SESSION_SECRET, SEED_SECRET,
BLOB_READ_WRITE_TOKEN (link a Vercel Blob store). Maps, Claude and Resend are
optional, and the app degrades gracefully without them (map falls back to a list,
disc reading is skipped, emails are not sent).
With SEED_SECRET set, create the first admin (once):
POST /api/seed
{ "secret": "YOUR_SEED_SECRET", "name": "Carl", "email": "[email protected]", "password": "changeme" }
On Windows run this from cmd.exe (PowerShell aliases
curltoInvoke-WebRequest), or useInvoke-RestMethod.
Then sign in at /login.
Push to GitHub and import into Vercel. Add a Blob store and set the env vars.
Production emails should send from [email protected] (verify the domain
in Resend) via EMAIL_FROM. Point www.pricemyprang.com / .co.za at the
Vercel project when ready.