# Project plan — smsa2020

Evidence date: 2026-10-03.

Source repository: `git@bitbucket.org:overdrive/smsa2020.git`.

Inspected revision: `master` at `6c61e14` (2020-02-10, "Changed for SMSA").

There is no prior Silicon Ark directory for this project. The source repository has no README, no Markdown, and no `composer.json`. This plan describes what the repository contains. It does not decide what the product should become.

## Product

The Bitbucket repository is named **smsa2020**. The only commit whose message names SMSA (`6c61e14`) changes a hardcoded accreditation code and nothing else.

The pages a visitor sees are branded **Vodacom Super Hero Sunday (2020) — Accreditation Portal**:

- HTML title in `application/layouts/default.phtml`
- Acceptance sentence in `application/modules/default/views/scripts/index/index.phtml`
- Mail from-name and subject in `ApplicationController::sendMail`

The footer copyright line is **magus.events**. CodeDeploy writes the tree to `/mnt/data/www/html/magus.events/superhero2020.magus.events/`. Git history includes `d00f80a`, "Merge branch 'master' of https://bitbucket.org/overdrive/superhero2020".

What the letters SMSA expand to, and whether this repository is the Super Hero Sunday portal, an SMSA-specific event on that portal, or a renamed copy that was never rebranded, is **Unknown / Requires Confirmation**.

Provenance: repository name and commit message are **Documented** in Git. Visitor-facing brand, mail, and deploy path are **Implemented**.

## Branch reality

Remote branches at inspection: `master` (default; `origin/HEAD` points here), `qa`, `prod`.

29 commits. First: `7f0470f` on 2019-12-13, "initial commit of full repository". Last: `6c61e14` on 2020-02-10. Most subjects are "no message". `qa` is repeatedly merged into `prod`.

| Commit | Date | Subject |
|---|---|---|
| `7f0470f` | 2019-12-13 | initial commit of full repository |
| `94caff9` | 2019-12-20 | Added pipelines |
| `4119323` | 2019-12-20 | deploy |
| `d00f80a` | 2020-01-07 | Merge branch `master` of `superhero2020` |
| `6ad4fe4` | (on history toward HEAD) | Update favicon |
| `6c61e14` | 2020-02-10 | Changed for SMSA |

The SMSA commit replaces accreditation code `5DEB6F11DDA93` with `5E37C335A16AA` in `IndexController::indexAction` and `ApplicationController::loginAction`.

## Scope in the repository

In scope, because it is in the tree and wired to a request:

- Public accreditation application for one hardcoded event code.
- Applicant sign-in by email plus reference number.
- Applicant profile view and, while status is unlocked, profile update.
- Attendance confirm / decline links.
- Confirmation and rejection mail when the accreditation row supplies a template.
- Photo upload forwarded to `www.footprintapp.net`.
- AWS CodeDeploy of the `qa` and `prod` branches.

Present in the tree and not wired to a controller action that a route in this repository calls:

- Zend Framework 1 library under `library/Zend` (the framework itself is used; most of its components are unused by this app).
- Models for permits, gates, loading zones, loading services, administrators, history, and queuing.
- `applymultipleAction`, `applytestAction`, `testattendanceAction`, `barcodeAction`, `testAction`, `partnersAction`.
- View `sean/index.phtml` with no `SeanController`.

Out of scope of this repository, because no screen or route implements them here:

- An administrator console for approving applications, assigning zones, or editing the event. Those tables and views are read. Writes that change `Status` to Confirmed or Approved are not in this tree. Attendance decline is the exception: it sets `Status` to 2.

## System shape

PHP application on Zend Framework 1.11.10 (`library/Zend/Version.php`). One module, `default`. Front controller in `public/index.php`. MySQL through `Zend_Db` (`pdo_mysql`). Apache httpd is what the CodeDeploy hooks start. Timezone is `Africa/Johannesburg` in `public/index.php` and `ApplicationController`.

The runnable config file `application/configs/application.ini` is gitignored. A backup, `application.ini.bak`, is committed. Whether production still matches that backup is **Unknown / Requires Confirmation**.

## Major components

| Component | Path | Role |
|---|---|---|
| Front controller | `public/index.php` | Boots Zend, environment defaults to `production` |
| Bootstrap | `application/Bootstrap.php` | Empty `_initDbAdapter` |
| Layout | `application/layouts/default.phtml` | Shell, browser gate, footer |
| Public home | `IndexController` | Loads the hardcoded event and renders the wizard |
| Applicant actions | `ApplicationController` | Apply, login, profile, attendance, mail, image forward |
| Event and application tables | `application/models/` | `Zend_Db_Table` classes |
| Shared plugins | `library/PG/`, `library/Other/` | Present; this module does not show them being required by the two controllers |
| Static UI | `public/assets/`, `public/images/`, `public/accre/profile-icon.png` | Bootstrap, Font Awesome, jQuery Steps, Cropper, Select2 |
| Deploy | `bitbucket-pipelines.yml`, `codedeploy_deploy.py`, `appspec.yml`, `scripts/` | Package, S3, CodeDeploy, httpd |

## Milestones visible in Git

There is no project plan, issue tracker, or milestone file in the repository.

1. 2019-12-13 — full tree committed.
2. 2019-12-20 — Bitbucket Pipelines and CodeDeploy added (`qa` and `prod`).
3. 2020-01-07 — merge from `superhero2020`; favicon and branding strings for Vodacom Super Hero Sunday are in the later tree.
4. 2020-02-10 — accreditation code changed. No commit after that date was on `master` at inspection.

## Implementation plan

No forward plan is written in the repository. The code is a 2020 snapshot. Treating it as an active build would be an assumption.

## Known dependencies

- PHP with the `mcrypt` extension (`random_id` uses `mcrypt_create_iv`). `mcrypt` is not part of PHP 7.2 or later. The PHP version on the server is **Unknown / Requires Confirmation**.
- PHP `curl`, `gd` (image helpers), PDO MySQL.
- Apache httpd (`scripts/install_dependencies` runs `yum install -y httpd`).
- Zend Framework 1.11.10, vendored.
- MySQL database named in the backup ini (see technical documentation). Schema SQL is not in the repository. Several queries read views (`Accreditations_view`, `AccreditationRoles_view`, `AccreditationCategory_view`).
- SMTP via `smtp.gmail.com` port 587 from `ApplicationController::sendMail`.
- `https://www.footprintapp.net` for the applicant photo and for the profile image read-back.
- `http://supplier.sarugby.online` as a note shown for roles whose `SupplierReg` attribute is 1.
- AWS CodeDeploy, S3, and Bitbucket pipeline variables. Names are in `bitbucket-pipelines.yml`. Values are not in Git.
- jQuery and the CSS/JS under `public/assets`. A `public/assets.zip` and `public/assets_old` are also committed.

## Current project status

**Implemented** public applicant portal for a single event code, frozen at `6c61e14`.

**Not established:** whether `qa` or `prod` still deploy, whether the site is online, whether the database row for `5E37C335A16AA` exists, and whether SMSA and Vodacom Super Hero Sunday are the same event.

`sonar-project.properties` and `sonarqube_scan.bat` were listed when this onboarding issue was created. They are not in the Git tree at `6c61e14`.

## Human confirmation

1. What SMSA means, and whether the product name is SMSA, Vodacom Super Hero Sunday 2020, or both.
2. Whether `5E37C335A16AA` is the SMSA event, and what `5DEB6F11DDA93` was.
3. Whether the live host is still `superhero2020.magus.events`.
4. Whether `application.ini.bak` matches any environment that still runs.
5. Whether the administrator workflow lives in another repository (the `superhero2020` remote, or a footprint/magus accreditation admin).
6. Whether this repository should stay documented as historical (last change 2020-02-10) or is still operated.
