# Features — website (1 For The Road)

Evidence date: 2026-09-28. Source: `git@bitbucket.org:overdrive/website.git`.

Status words used here:

- **Current on `development_russel`** — present at `a87b0c5` (2021-06-25). Not merged to `master`.
- **Current on `master`** — present at `581c5d9` (2023-05-05), the default branch.
- **Removed** — existed on one line and is absent on the other, as shown by the diff.
- **Not in git** — named by the task-creation scan or by the HTML, but no file exists.

Deployment of either branch is **Unknown / Requires Confirmation**. "Current" means current in that git tree, not proven production.

## Current on `development_russel` (the membership product)

### Public site

| Feature | Location | Notes |
|---|---|---|
| Homepage | `index.html` | Hero lines "Enjoy your night out" and "Don't drink and drive!". Join Now and View Packages. Testimonials naming David Higgs, Tank Lanning, and John Smit. |
| About | `aboutus.html` | Founder story (Joffy Senekal). Video tag points at `./videos/about_video1.mp4`, which is **not in the tree**. |
| Packages | `packages.html` | Basic, 20, 40, 80, Function. Family add-on copy. Join steps and phone number. |
| Why join | `whyjoin.html` | Road-safety statistics (MRC, MEC Robin Carlisle, SADD) as published on the page. |
| FAQ | `faq.html` | Booking, contract, and "how it works" accordions. A "Download our App" heading. Store links were not confirmed as real app URLs. |
| Contact | `contact.html`, `contact.php` | Form plus published emails and phones. |
| Register | `register.html`, `register.php` | Package selection, member, vehicle, bank details, terms, reCAPTCHA. |
| 404 | `404.html` | Branded "1 For the Road - 404". |
| COVID banner | Shared on public pages | Link to the South African coronavirus portal. |
| Footer | Shared | Hours, `info@` and `bookings@`, Silicon Overdrive credit, "1 FOR THE ROAD TM 2021". |
| Terms PDFs | `pdfs/TermsandConditions.201309.pdf`, `pdfs/TermsandConditons.pdf` (filename spelling as stored), `webadmin/Documents/14YATCs.pdf`, `webadmin/Documents/Indemnification and Waiver.pdf` | Present as files. Which file the register checkbox opens was not fully traced. |

Navigation comments in the HTML still say Packages was based on the service template and Why Join on the about template (`<!-- use service page as template-->`).

### Staff application (`webadmin`)

| Feature | Location | Data |
|---|---|---|
| Login and login audit | `webadmin/login.php` | `sysUser`, `sysSecurityGroup`; `tblLoginInsert` |
| Security-group menus | `webadmin/_nemo.menu.basic.cls.php` | `tblMenuLevel1`, `tblMenuLevel2` |
| Clients | `webadmin/client.php`, `includes/client.cls.php` | `tblClient`, `tblClientPackage` |
| Family / child records | `webadmin/child.php`, `includes/child.cls.php` | `tblChild`, master client link `refMasterID` |
| Packages | `webadmin/package.php`, `includes/package.cls.php` | `tblPackage` |
| Vehicles | `webadmin/vehicle.php`, `includes/vehicle.cls.php` | `tblVehicle` |
| Drivers | `webadmin/driver.php`, `includes/driver.cls.php` | `tblDriver` |
| Bookings | `webadmin/booking.php`, `includes/booking.cls.php` | `tblBooking` |
| Trip bookings | `webadmin/bookingTrip.php`, `includes/bookingTrip.cls.php` | `tblTripBooking` |
| Young-adult bookings | `webadmin/bookingYA.php`, `includes/bookingYA.cls.php` | 14ya emails and parent approval mail |
| Young-adult invoices | `webadmin/invoiceYA.php`, `includes/invoiceYA.cls.php` | `tblInvoice` usage from this module |
| Invoices | `webadmin/invoice.php`, `includes/invoice.cls.php` | `tblInvoice` |
| Payments | `webadmin/pay.php`, `includes/pay.cls.php` | Payment records. No card-gateway name was found |
| Areas | `webadmin/area.php`, `includes/area.cls.php` | `tblArea` |
| Schedule | `webadmin/schedule.php`, `includes/schedule.cls.php` | |
| Reports | `webadmin/report.php`, `includes/booking.weekly.rpt.php`, `booking.monthly.rpt.php`, `booking.monthly.area.rpt.php` | Weekly, monthly, monthly-by-area booking reports |
| Users | `webadmin/user.php`, `includes/user.cls.php` | `sysUser` |
| Security groups | `webadmin/security.group.php`, `includes/security.group.cls.php` | `sysSecurityGroup` |
| Settings | `webadmin/settings.php`, `includes/settings.cls.php` | System settings consumed as `$SystemSettings` |
| Sweeper | `webadmin/sweeper.php`, `includes/sweeper.cls.php` | Purpose beyond the filename is **Unknown** |
| Messages | `webadmin/message.php` | |
| Usage log | `webadmin/usage.log.php` | Shown on the admin home when the user may view it |
| Dashboard gate | `webadmin/index.php` | Shows booking and usage-log blocks only when `blnView` is set |

Framework pieces: `webadmin/_nemo.basic.cls.php`, `_nemo.database.cls.php`, `_nemo.database2.cls.php` (mysqli), `_nemo.email.cls.php`, `_nemo.control.cls.php`, `_nemo.details.cls.php`, `_nemo.list.cls.php`, `_nemo.report.cls.php`, layouts under `webadmin/layouts/`.

Front-of-site Nemo leftovers that are not the 2021 HTML pages: root `_nemo.basic.cls.php`, `system.php`, `layouts/layout.*.incl.php` (including `layout.eatout.incl.php` and `layout.food24.incl.php`), `modules/*.inc.php`. The eatout and food24 layouts carry the same 1 For The Road keyword meta tags. They look like an older Nemo front end kept beside the new static HTML. Whether any public URL still renders them is **Unknown / Requires Confirmation**.

### Cross-cutting behaviour on this branch

- reCAPTCHA v3 on register and contact.
- Welcome email and contact email.
- Spam list (`sysSpam`) and a `googlemail.com` heuristic.
- Host-based database settings, including production and 14ya hostnames, in `system.php`.
- Membership number allocation.
- Family-discount package attachment.

## Current on `master` (default branch)

| Feature | Location | Notes |
|---|---|---|
| Prime Cab homepage | `index.html` | Theme title, US placeholder address and phone, skin-colour switcher, one-way and two-way trip tabs, fleet blocks, FAQ placeholder Latin text |
| Matomo | `index.html` head | Site id 5, host `analytics.medmin.co.za`, cookie domain `*.1fortheroad.co.za`. Added 2021-08-16, retargeted 2023-05-05 |
| Theme asset mirror | `css/`, `js/`, `fonts/`, `images/` | Copied to the root in `bbdc3a0` |
| Full theme pages | `template/*.html` | Home 1–3, about, services, fleet, blog, booking, payment, login, register, FAQ, 404, contact, policy, user account |
| Theme mailers | `template/contact/*.php`, `template/mailchimp/subscribe.php` | PHP `mail` style forms shipped with the theme |
| Twitter helper | `js/api/tweet.php`, `js/api/twitteroauth/` | Theme include. Not part of the membership flow |
| Stock ignore file | `.gitignore` | Atlassian sample. Does not mention PHP secrets or uploads |

Root `index.html` links to `home-1.html`, `aboutus.html`, `booking-form.html`, and the other theme pages without the `template/` prefix. Those files are only under `template/`. Opening the root page and using the menu does not reach them.

## Planned

No issue list, TODO file, or roadmap is in the repository.

Commit `7be75b4` on `development_russel` says "Initial commit after refresh changes - still busy". Nothing later marks the refresh complete. Treat "still busy" as a historical note, not an active plan.

The Function package copy says tailored packages can be created. That is a sales statement. There is no self-service builder for it.

## In development

Nothing in git is mid-change. Both branch tips are old (2021 and 2023) and the working trees inspected were clean clones of those tips.

`development_russel` was never merged. Relative to `master` it is an open line of work, not an open pull request. No pull-request metadata was read from Bitbucket (the Bitbucket API client available to this task returned 401).

## Recently changed

"Recent" in this repository means the last commits, not the last weeks.

| When | Where | Change |
|---|---|---|
| 2023-05-05 | `master` `index.html` | Matomo host from `analytics.siliconsoftware.net` site 3 to `analytics.medmin.co.za` site 5; cookie domain `*.1fortheroad.co.za` added |
| 2021-08-16 | `master` `index.html` | Matomo snippet added |
| 2021-06-25 | `development_russel` | Contact page, homepage margins, popup close button, live database details, logo |

## Removed or replaced

| Item | Evidence |
|---|---|
| `template/` directory | Removed on `development_russel` in `73f005d` ("Remove template folder, add 1fortheroad email to footer link"). Still present on `master` |
| Prime Cab placeholder content | Replaced on `development_russel` by 1 For The Road pages. Still the content of `master` |
| Matomo at `analytics.siliconsoftware.net` site id 3 | Replaced on `master` in `581c5d9`. Never added on `development_russel` |
| Older package prices inside HTML comments (R250 / R380 / R615 and a March 2015 tariff comment) | Left in `packages.html` but commented out, so not shown |

## Not in git

| Item | Notes |
|---|---|
| `sonar-project.properties`, `sonarqube_scan.bat` | Listed when this onboarding task was created. Absent from both branches |
| `videos/about_video1.mp4` | Referenced by About. Absent |
| Member mobile app | Heading on the FAQ only |
| Call-centre / SMS platform | Described to customers. Not in the repo |
| Database dump | Tables are used by PHP. Schema SQL is only the fragments commented inside class files |

## Deprecated theme features that must not be read as product features

These exist on `master` / `template/` and are the Prime Cab demo:

- Online booking form, booking confirmation, payment, payment confirmation, booking cancel.
- User registration and login pages that do not post to `webadmin`.
- Fleet catalogue, blog, coupons, skin switcher.
- Mailchimp subscribe script.

They are **Implemented** only as static theme files. They are not the 1 For The Road booking process, which the FAQ says is a phone call.
