尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗MVP for a platform that lets a single bus/coach carrier run their booking pipeline end to end — client request → carrier offer → confirmed booking → generated documents — without phone calls and email back-and-forth.
This is the first build increment. See "Deferred to later increments" below for what's intentionally out of scope for now.
sr/en)@react-pdf/renderer for contract/confirmation/invoice PDFsPrerequisites: Node 20+, a local PostgreSQL 16 instance (or Docker).
cp .env.example .env
# start Postgres — either:
docker compose up -d
# or point DATABASE_URL in .env at an existing local Postgres
npm install
npx prisma migrate dev
npm run db:seed
npm run dev
Open http://localhost:3000 (redirects to /sr, switch to /en in the navbar).
npm run db:seed creates:
| Role | Password | |
|---|---|---|
| Admin | [email protected] | admin1234 |
| Carrier | [email protected] | carrier123 |
| Client | [email protected] | client123 |
The seeded carrier is pre-approved with a demo vehicle and driver, so you can log in and immediately submit a request as the client, then send an offer as the carrier.
User.role is CLIENT, CARRIER, or ADMIN. A new carrier signup creates a Carrier row with status: PENDING; an admin must approve it (/admin/carriers) before the carrier's dashboard, fleet, drivers, calendar, requests inbox and bookings become reachable — the carrier can still fill in their profile while pending.BookingRequest → any approved carrier can open it and submit an Offer (picking one of their vehicles/drivers, entering distance in km) → the system suggests a price (src/lib/pricing.ts) and blocks the offer if the chosen vehicle/driver conflicts with an existing confirmed booking (src/lib/availability.ts) → the client accepts one offer, which creates a Booking and auto-rejects the request's other pending offers → either side can generate and download PDF documents (confirmation, contract, invoice) for the booking.src/lib/distance.ts, src/lib/pricing.ts and src/lib/availability.ts are the deterministic stand-ins described in the product plan — swappable behind their current interfaces once a real routing/matching engine is built.src/lib/documents/generate.ts using @react-pdf/renderer, written to local disk under storage/documents/ (gitignored) behind a small storage abstraction (src/lib/documents/storage.ts) so swapping in S3/Blob storage later is a one-file change.Real AI dispatcher/matching, real maps/geocoding/routing API, e-invoicing/fiscalization, multi-carrier marketplace matching, payments, email/SMS notifications, a real file/photo upload pipeline, admin commission tracking and complaints handling, round-trip/multi-leg requests, automated request/offer expiry jobs.