TruckHire is a React-based booking platform for hiring trucks across South Africa — from 1-ton city runs to 10-ton commercial hauls, tippers, crane trucks, and refrigerated transport. It's built as a full front-end prototype: search, compare, book, pay, and manage — all in one flow, with separate portals for clients, drivers, and staff.
# HaulRight — Truck Hire Prototype
A frontend-only React prototype for a South African truck-hire platform: client
accounts, truck listings, a full booking + payment flow, an admin dashboard, and
a careers/CV page. Built with React, Tailwind CSS, and lucide-react icons.
## What this is
- **Homepage** — hero banner (real photo), scrolling marquee, "Who We Are" section,
stats band, fleet showcase, trust section.
- **Trucks page** — filterable/sortable grid of 9 sample trucks.
- **Client login / register** — required before hiring a truck. Session-only
accounts (see "Demo accounts" below).
- **Booking flow** — Dates → Details → Review → Payment → Confirmation. Payment
step offers Card (simulated PayFast redirect) or Cash on pickup, with a live
price breakdown (base rate, driver fee, delivery fee, insurance, VAT, deposit).
- **Admin dashboard** — separate staff login (link in the footer). Shows every
completed booking with client info and truck hired, a printable/downloadable
invoice per booking (browser print → "Save as PDF"), and a list of driver CV
applications with a working "Download CV" button.
- **Careers page** — lists open driver positions; applicants fill in their
details and upload a CV, which lands directly in the admin dashboard.
## Demo accounts
| Role | Email | Password |
|--------|--------------------------|------------|
| Client | demo@haulright.co.za | demo1234 |
| Admin | admin@haulright.co.za | admin123 |
The client login screen also has a "Use demo account" shortcut button. New
client registrations work too — they're just held in memory for the session.
## Important limitations (read before treating this as production-ready)
This is a **frontend-only prototype** — there is no backend, database, or real
payment gateway behind it:
- **Auth is mocked.** Accounts, sessions, and passwords live in React state only
— nothing is hashed, persisted to a database, or secured. Refreshing the page
clears all accounts, …