# Features — public-procon8.co.za

Evidence date: 2026-10-06. Source revision: `f3f3b6d` on `master` (2020-08-27).

Git shows one import commit, so "recently changed" cannot be read from commit history. Where a `.bak` file differs from the live file, that pair is the only evidence of an earlier behaviour, and both files arrived in the same commit.

Status vocabulary:

- **Current** — present and reachable in the imported tree.
- **Completed** — same as current; nothing in the repo marks a feature as finished versus in progress.
- **In development** — none identified.
- **Planned** — none identified. No roadmap, TODO file, or issue list.
- **Removed / superseded** — backup files that are not referenced by the live pages.

## Current features

### F-01 — Single-page brochure shell

`index.php` renders the logo, social icons, menu, slideshow, section panels, and footer. Section panels other than home are PHP includes, hidden until selected.

Evidence: `index.php`, `js/nav.js`, `css/style.css`, `fonts.css`. Status: Current.

### F-02 — Menu and footer from one list

`content.php` holds `navigator_bar_options`. `kwassie::create_nav_list` and `kwassie::create_footnav` render it. Order: Home, About us, Contact us, Overview, Project Control, Contract Management, Specialist Services, Quantivia™, Reference Projects.

Evidence: `content.php`, `common_functions.php`. Status: Current.

### F-03 — Home teasers

Four columns (Project Control, Contract Management, Specialist Services, Reference Projects), an about-company block, and a commitment quote. Read-more links use `index.php?show=`.

Evidence: `index.php`. Status: Current.

### F-04 — Image slideshows

Home slideshow: `images/slide1.jpg`–`slide12.jpg`. Quantivia slideshow: `images/dbr_1.png`–`dbr_10.png`. Both use `fadeshow` in `js/galleryscript.js`.

Evidence: `index.php`, `dbr.php`. Status: Current.

### F-05 — About, Overview, and service catalogues

Static pages:

- `aboutus.php` — company description, 15-year experience claim, DMAIC, sidebar lists.
- `Overview.php` — Project Control System and Contract Management System narrative.
- `project_control.php` — narrative plus discipline lists: General, Cost Control, Planning & Scheduling, Material / Sub Contract Control, Reporting, Claim Analysis, Change Control, Risk & Opportunity Management, Governance.
- `contract_management.php` — visible heading text is "ConTRACT  Management". Covers prime-contract administration and subcontract administration (changes, claims, payments, insurance and bonding, correspondence).
- `specialist_services.php` — Tender Preparation, Engineering Earned Value, S-Curve Reporting, Critical Issues Reporting, Management Schedules, Six Sigma, Coaching / Mentoring / Training.

Evidence: those files and the sidebar HTML in `content.php`. Status: Current. The catalogues are copy, not software modules that perform the named controls.

### F-06 — Sidebar deep links

Three HTML snippets in `content.php` (`project_control`, `contract_management`, `specialist_services`) are printed on About, Overview, and Specialist Services. Most project-control and contract-management links only select the parent panel. Specialist links add anchors. The label "Tender Preperation" is spelled that way in `content.php`. The specialist page heading is "Tender Preparation".

Evidence: `content.php`. Status: Current.

### F-07 — Quantivia / Deliverable Based Reporting panel

`dbr.php` markets Quantivia and links to `http://www.quantivia.com`. Benefits listed there (dashboard, calendar, access restrictions, change control, risk register, wizards, and others) belong to that external product.

Evidence: `dbr.php`, menu entry in `content.php`. Status: Current as a marketing panel. Not a Quantivia implementation.

### F-08 — Reference projects

Grouped tables of project name, city, country, and outbound URL. Groups: Rail projects, Aviation, Manufacturing, Building, Rail bids, Infrastructure bids. Inventory is in the PRD workflow W6.

Evidence: `reference_projects.php`. Status: Current.

### F-09 — Contact form

Fields: name, email, phone, country, comments, reCAPTCHA v2 widget, submit. Posts to `thanks.php`. Client validation in `contactus.php`.

Evidence: `contactus.php`, `recaptchalib.php` (`recaptcha_get_html` returns `api.js` plus `div.g-recaptcha`). Status: Current.

### F-10 — Enquiry email via Amazon SES

`thanks.php` verifies reCAPTCHA, then sends HTML mail with PHPMailer SMTP to `support@procon8.com`.

Evidence: `thanks.php`, `vendor/phpmailer/phpmailer` 5.2.27. Status: Current in code. Credential validity is Unknown / Requires Confirmation.

### F-11 — Social header

Twitter image links to `http://www.twitter.com/`. LinkedIn Follow Company widget uses data-id `2761141`.

Evidence: `index.php`. Status: Current. The Twitter target is the generic Twitter home page.

### F-12 — Standalone SLA dashboard page

`SLA.php` iframes `http://www.procon8.co.za:9090/publishPage.do?method=getPublishedDashboard&pagekey=...`. Not in the menu.

Evidence: `SLA.php`. Status: Current as a file. Whether it is deployed or still loads is Unknown.

### F-13 — Static email disclaimer file

`disclaimer.html` is an email footer covering confidentiality, viruses, authority to contract (written confirmation by the person named "Alastair Davisdon" in the file), negligent misstatement, and employer liability. It links to `http://www.procon8.co.za/` and `mailto:postmaster@procon8.com`.

Evidence: `disclaimer.html`. Status: Current as a file. Not linked from the site and not inserted into the contact email.

### F-14 — GoDaddy 404 template

`missing.html` and `.errordocs/` (`403.html`, `404.html`, `missing.html`) are hosting error pages. `.errordocs/.htaccess` sets HTML handlers. The web-root `.htaccess` is empty, so this repository does not itself map 404 responses to those files.

Evidence: `missing.html`, `.errordocs/`. Status: Current as files. Wiring on the host is Unknown.

## Completed

Every current feature above is "completed" only in the sense that the 2020 import contains it. There is no separate completed-versus-active split.

## In development

None. No branch other than `master`. No unfinished feature flag.

## Planned

None documented.

## Changed relative to backup copies in the same tree

These are not Git commits. They are pairs of files.

| Live file | Backup | What differs |
|---|---|---|
| `thanks.php` | `thanks.php.bak` | Backup verifies the old reCAPTCHA challenge fields via `recaptcha_check_answer` and sends with PHP `mail()`, From set to the visitor. Live file calls Google `siteverify` and PHPMailer/SES, From set to `support@procon8.com`, Reply-To set to the visitor |
| `recaptchalib.php` | `recaptchalib.php.bak` | Live `recaptcha_get_html` emits the v2 `g-recaptcha` widget. The rest of the old library, including `recaptcha_check_answer`, is still in the live file and is unused by `thanks.php` |
| `contactus.php` | `contactus.php.bak` | Both post to `thanks.php` and call `recaptcha_get_html`. File hashes differ. The live page is the one `index.php` includes |
| `index.php` | `index.php.bak` | SHA-256 identical. The backup is a duplicate |

Provenance: **Implemented** file pairs. The date of the mailer change is Unknown; Git does not record it separately from `f3f3b6d`.

## Present but not a product feature

| Item | Notes |
|---|---|
| `gdform.php`, `cgi/gdform.cgi`, `cgi/gdformssl.cgi` | GoDaddy form-to-file handlers. Contact form does not use them |
| `webformmailer.php` | GoDaddy form mailer. Exits unless `$_SERVER['SPI']` is set. Contact form does not use it |
| `vendor/aws/aws-sdk-php` 2.8.31, Guzzle, Symfony EventDispatcher | Committed. No application page instantiates an AWS client. Mail uses PHPMailer SMTP, not the SDK |
| `kwassie::read_page_content` and `kwassie::create_list` | Methods with no live caller. The `index.php` call to `read_page_content` is commented out |
| `logo.png`, `logo_za.png` at the repository root | Separate from `images/logo.png`, which is the logo the header uses |
| `.hcc.thumbs/` | Thumbnail cache directory from the old host. Not application logic |
| Eclipse `.project`, `.buildpath`, `.settings/` | IDE metadata. Project name `www.procon8.co.za`. Prefs dated 2014-12-10 |

## Deprecated / removed

No feature is marked deprecated in copy or comments.

Superseded behaviour that remains on disk: PHP `mail()` contact delivery and the old reCAPTCHA challenge verify, both only in `thanks.php.bak`. The live path does not call them.

## Unknown

- Which of these files are actually published on `www.procon8.co.za`.
- Whether the port-9090 dashboard, Quantivia links, LinkedIn company id, and `support@procon8.com` are still current.
