Web-based booking schedule for Always Classic Cars.
  • TypeScript 93.6%
  • HTML 3.7%
  • Shell 1.6%
  • JavaScript 0.6%
  • CSS 0.4%
Find a file
2026-10-11 07:48:31 +11:00
clientportal Bump to v1.129.0 — Chauffeurs pick their navigation app 2026-10-11 07:48:31 +11:00
docs Bump to v1.129.0 — Chauffeurs pick their navigation app 2026-10-11 07:48:31 +11:00
plans Bump to v1.96.5 — Job folders tracked for every booking 2026-09-25 08:36:49 +10:00
prisma Bump to v1.129.0 — Chauffeurs pick their navigation app 2026-10-11 07:48:31 +11:00
public Bump to v1.129.0 — Chauffeurs pick their navigation app 2026-10-11 07:48:31 +11:00
scripts Bump to v1.124.20 — Example env files, and docs match the security fixes 2026-10-07 08:06:49 +11:00
src Bump to v1.129.0 — Chauffeurs pick their navigation app 2026-10-11 07:48:31 +11:00
.dockerignore Bump to v1.95.4 — Client booking portal deployment and docs 2026-09-23 19:45:20 +10:00
.gitignore Bump to v1.116.0 — Office app and chauffeur portal are separate sites with separate logins 2026-09-30 17:46:00 +10:00
auth.config.ts Bump to v1.117.0 — Sessions end on password change, chauffeur links and Activity roles fixed 2026-10-01 06:08:39 +10:00
auth.ts Bump to v1.124.2 — Permission changes apply straight away 2026-10-05 12:48:40 +11:00
CHANGELOG.md Bump to v1.129.0 — Chauffeurs pick their navigation app 2026-10-11 07:48:31 +11:00
CLAUDE.md Bump to v1.121.0 — User manual in each app 2026-10-04 18:26:39 +11:00
docker-compose.yml Bump to v1.124.19 — Security fixes from the audit 2026-10-07 08:06:22 +11:00
Dockerfile Bump to v1.124.7 — Docker runs as an unprivileged user on local ports 2026-10-05 14:00:38 +11:00
eslint.config.mjs Bump to v1.116.0 — Office app and chauffeur portal are separate sites with separate logins 2026-09-30 17:46:00 +10:00
example.env Bump to v1.125.0 — Chauffeurs can upload videos from a job 2026-10-09 06:39:31 +11:00
LICENSE Bump to v1.93.3 — Add proprietary license 2026-09-23 16:41:03 +10:00
next-auth.d.ts Bump to v1.117.0 — Sessions end on password change, chauffeur links and Activity roles fixed 2026-10-01 06:08:39 +10:00
next.config.mjs Bump to v1.125.0 — Chauffeurs can upload videos from a job 2026-10-09 06:39:31 +11:00
package-lock.json Bump to v1.129.0 — Chauffeurs pick their navigation app 2026-10-11 07:48:31 +11:00
package.json Bump to v1.129.0 — Chauffeurs pick their navigation app 2026-10-11 07:48:31 +11:00
postcss.config.mjs Build ACC booking management system v1.0 2026-04-28 05:43:06 +10:00
prisma.config.ts Build ACC booking management system v1.0 2026-04-28 05:43:06 +10:00
README.md Bump to v1.129.0 — Chauffeurs pick their navigation app 2026-10-11 07:48:31 +11:00
tailwind.config.ts Bump to v1.98.0 — Chauffeur portal redesigned for phones 2026-09-25 17:46:02 +10:00
task.md Bump to v1.90.3 — Bring task.md up to date through v1.90.2 2026-08-14 19:40:07 +10:00
tsconfig.json Bump to v1.116.0 — Office app and chauffeur portal are separate sites with separate logins 2026-09-30 17:46:00 +10:00
vitest.config.mts Bump to v1.95.4 — Client booking portal deployment and docs 2026-09-23 19:45:20 +10:00

ACC System

Web-based booking schedule for Always Classic Cars, replacing the Excel-based wedding booking spreadsheet.

Features

  • Schedule — bookings grouped by date with inline editing, search and filters (source/type/status), month/year navigation, VIC public holiday badges, date labels, "no more bookings" toggle, a print-ready date-range view, a Postponed toggle for bookings moved off their date (with or without a new date yet), and live updates across every open window when someone else edits a booking
  • Bookings — multi-car jobs with per-car chauffeur, pickup time, duration, route, and night transfer flag; client, partner, wedding, and flight details; unsaved-changes protection
  • Pricing — date-effective price lists (Settings → Pricing) with a 3-hour base per car, extra-hour rate, flat night rates, public holiday and after-midnight surcharges; Car Cost and Surcharge pre-fill automatically on the booking form and on website bookings, and each booking keeps the price list that applied when it was created
  • Payments — Waiting Deposit / Deposit Paid / Cash on Day / PIF / Hold tracking, individual payment records with live balance, discount and surcharge, automatic status updates
  • Fleet & chauffeurs — full CRUD with soft-delete protection (a chauffeur can only be deleted if they've never been given a job), availability calendars for cars and chauffeurs, double-booking and unavailability warnings, CPVV DC licence verification, portal access badges
  • Chauffeur portal — phone first, with a tab bar on phones and a sidebar on wider screens: Today shows the next job with a countdown, route and one-tap Navigate and Call; offers are answered from My Jobs with the estimated pay; each job has a detail page with its stops, office notes, people and documents; overtime is recorded per job with client signature (cost auto-calculated); availability is set by tapping days on a month calendar; pay shows the month's estimate by week and per job; subscribe to a personal iCal feed
  • Contract offers — send offers to chauffeurs by email with Accept/Decline buttons; responses update the schedule, notify the office and the chauffeur, and unassign on decline; chauffeurs are emailed again if an already-accepted job's details later change
  • Emails — all system emails (chauffeur offer, portal welcome, password reset, accept/decline notifications, job-updated notifications) editable as branded templates in a WYSIWYG editor (Settings → Email Templates)
  • PDF booking sheets — client and chauffeur PDFs generated on save and webhook import, stored via OneDrive sync; office signatures and T&C pages
  • Attachments — documents such as a client's run sheet attached under Documents on Edit Booking, kept in the booking's OneDrive job folder, and shared per file with the booking's chauffeurs
  • Website intake — WPForms webhooks auto-create priced bookings from the Wedding, General, Airport Transfer, and Transfer website forms
  • Client booking portal: a separate booking website (clientportal/) where clients book weddings, events and transfers themselves, pick cars that are free on their date, add stops, sign online, and later change details through a private link; see docs/client-portal.md
  • Admin — role-based section permissions with per-section read-only mode, reports dashboard (with or without money figures, chosen per account), full activity log with field-level diffs, Traccar GPS integration with day-limited share links
  • Mobile friendly — responsive layout with card views throughout

Tech Stack

Documentation

Doc What it covers
docs/installation.md Production quick-install, Docker, and local development setup
docs/deployment.md Full production deployment — Proxmox LXC, Node.js + PM2, Docker, Nginx, updating
docs/authentication.md Office app and chauffeur portal logins: separate accounts, sessions and routes, and the same email on both
docs/environment-variables.md Every environment variable the app reads, in one place
docs/email-smtp.md SMTP setup, including the Microsoft 365 / Exchange Online OAuth2 guide
docs/database-schema.md Entity relationships and what each Prisma model is for
docs/project-structure.md Where things live in the codebase
docs/onedrive-sync.md Syncing booking sheet PDFs from OneDrive to the server
docs/wpforms-webhooks.md Website form → booking webhooks: setup and field mappings
docs/client-portal.md Client booking portal: what clients can do, office setup, client links, security

Version

v1.129.0 — see CHANGELOG.md for the full version history. The authoritative version number lives in package.json.

License

Proprietary. Copyright (c) 2026 Stewart Bennell (Bennell IT). All rights reserved. See LICENSE.