WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 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.