# Project plan — saruefiling

Evidence date: 2026-10-04.

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

Inspected revision: `master` at `9b734e0` (2019-07-03 13:39 +0200, "all saru commit", author `siliconoverdrive`). `origin/HEAD` points at `origin/master`.

The local scan path named in the onboarding task (`~/projects/sonar_scan/repos/saruefiling`) was not present on this machine. The tree was read from a clone of `master`.

This plan describes what the repository contains. It does not decide what the product should become. The source README is two lines and does not state a roadmap. There was no `saruefiling/` directory in Silicon Ark before this set.

A different repository, `saruefiling.com.git`, is already documented under `silicon_ark/SaruEfiling.com/`. The two trees share a product title, Zend Framework 1 layout, and the database name `teamwizz_SARU`. This git history does not record a copy from one remote to the other. Whether they are the same product at different dates is **Unknown / Requires Confirmation**.

## Product

**SARU E-Filing** is a web application whose browser title is `SARU:: Efiling`. The header logo is titled Footprint (`footprintapp.net`). Password-reset mail is sent from `accreditation@sarugby.co.za`. Notification mail sent through `PG_Controller_Plugin_EmailLayout` uses the display name `SA Rugby Efiling` and the address `support@saruefiling.com`.

Provenance: **Implemented** (`application/layouts/default.phtml`, `LoginController::sendMailNew`, `library/PG/Controller/Plugin/EmailLayout.php`).

The application is a Zend Framework 1 site descended from Footprint. Signed-in people can complete year-filtered e-filing forms, and a president or CEO job title can record approval. The same shell also lists personnel and organisations, and administers plans, budgets, and grant categories, when a JSON role blob includes those keys. Squads, fixtures, scouting, assessments, courses, and a calendar remain in controllers. Provenance: **Implemented** (`application/views/scripts/menu/default.phtml`, `IndexController`, `EpgController`).

The database name in configuration is `teamwizz_SARU`. The host is a hardcoded IPv4 address in `application/configs/application.ini`. The username and password are in that file and are not copied here. Whether that database is still shared with other Footprint products, and whether this host is still reachable, is **Unknown / Requires Confirmation**.

## What this repository is

A Zend Framework 1.11.10 PHP application. `public/index.php` is the front controller. The repository `.htaccess` rewrites requests that are not already under `/public/` into `public/`. `public/.htaccess` then rewrites non-file requests to `index.php`.

`Footprint_files/` is a second copy of application, library, and public files inside the same repository. The running front controller sets `APPLICATION_PATH` to the top-level `application/` directory. Provenance: **Implemented**. Whether anything on a server still executes files under `Footprint_files/` is **Unknown / Requires Confirmation**. Some paths under `Footprint_files/public/charts/...` exceed the Windows path limit on the machine used for this inspection, so that nested tree was not fully checked out.

`new/` is a set of static HTML navbar and layout samples. Nothing in `public/index.php` routes into it. Provenance: **Inferred** unused template dump.

## History

Five commits, all on 2019-07-03 except the `development` tip the next day.

| Commit | When | Author | Message |
|---|---|---|---|
| `17c595a` | 2019-07-03 10:43 +0000 | Jaco Brits | Initial commit |
| `5d82b00` | 2019-07-03 10:44 +0000 | Jaco Brits | README.md edited online with Bitbucket |
| `5753fce` | 2019-07-03 10:44 +0000 | Jaco Brits | Initial Bitbucket Pipelines configuration |
| `bde3b7a` | 2019-07-03 13:04 +0200 | siliconoverdrive | Auto deploy empty repo master |
| `9b734e0` | 2019-07-03 13:39 +0200 | siliconoverdrive | all saru commit |

The application tree arrives in the last of those commits. `index_repo.html` still contains the text `blank repo master`, which matches the empty-repository commits earlier the same day. Provenance: **Implemented**.

No commit on `master` is later than 2019-07-03. Whether a deployed site has moved on outside this repository is **Unknown / Requires Confirmation**.

## Branches

| Branch | Tip seen on 2026-10-04 | Notes |
|---|---|---|
| `master` | `9b734e0` 2019-07-03 "all saru commit" | `origin/HEAD`. Pipeline step runs `git ftp init` |
| `development` | `8f94d2d` 2019-07-04 "update Footprintfile" | Pipeline step runs `git ftp init` with the QA variables. One day ahead of `master` by commit date |
| `pipelineTest` | `67f1721` 2019-07-03 13:21 "development push to correct site" | No pipeline step in `bitbucket-pipelines.yml`. Earlier the same day than `master` |

A file diff of `development` against `master` on this machine was not reliable: Windows path length and `Public` / `public` case folding produced a huge spurious deletion count. Behaviour in this document set is from `master`. Which branch, if any, was actually deployed is **Unknown / Requires Confirmation**.

## Scope that is in the repository

In scope of the code that is wired to the signed-in shell:

- Email and password login restricted to credentials flagged for e-filing, then a first-login profile when `Status` is 0.
- Year-filtered e-filing forms (`/epg`), form fill, save, submit, reopen to draft, and approval when `JobTitle` is 35 or 23.
- Form template builder (`/builder`) for a narrow set of users.
- Personnel and organisations, when the role JSON includes those keys.
- Plan and budget / grant categories, when the role JSON includes `grants`.
- Excel download of a form, PDF helpers, and document upload on a form.
- Dashboard counts of squads, schools, and ethnicity rows from `gir_profile` for the current year.

Present in controllers but not given a top-level item in `menu/default.phtml`: squads, fixtures, tournaments, schools, scouting, assessments, learning courses, messaging, financials, performance questionnaires, grants request screens, and the calendar link in the header (`/events/`). Those controllers that follow the same `init` pattern as e-filing redirect to `/login/` when there is no identity. Provenance: **Implemented**. Whether operators still use them is **Unknown / Requires Confirmation**.

There is no GraphQL client and no `public/cron` directory in this tree.

## Architecture

```text
Browser
  -> Apache rewrite into public/
  -> Zend_Application (production, application.ini)
  -> Zend_Controller (one controller per area)
  -> Zend_Db_Table models
  -> MySQL teamwizz_SARU

Bitbucket Pipelines (python:3.5.7)
  -> apt-get install zip git git-ftp
  -> git ftp init to public_html/saruefiling.overdriveqa.co.za
```

`git ftp push` is commented out in both pipeline steps. The active command is `git ftp init`, and the YAML comment says to use init only the first time. Provenance: **Implemented** (`bitbucket-pipelines.yml`). Whether a later manual FTP push replaced this is **Unknown / Requires Confirmation**.

Both the `master` step and the `development` step upload to a path whose hostname is `saruefiling.overdriveqa.co.za`. The `master` step uses `FTP_*_LIVE` variables. The `development` step uses `FTP_*_QA` variables. The path string is the same QA hostname in both steps. A separate production hostname is not written in the pipeline. Provenance: **Implemented**.

## Milestones and implementation plan

No milestone list, issue tracker export, or implementation plan is in the repository. The commit series on 2019-07-03 is an empty Bitbucket repository, a pipeline file, and then one bulk import of the application.

Current project status, as far as this repository shows: frozen on `master` since 2019-07-03. `development` has one later commit on 2019-07-04 whose message is `update Footprintfile`.

## Dependencies known from the tree

- PHP with short open tags. The README says `php short codes enabled`. The exact PHP version is **Unknown / Requires Confirmation**. Zend Framework 1.11.10 is consistent with PHP 5.3–5.6; that range is **Inferred**, not declared.
- Zend Framework 1.11.10 vendored under `library/Zend`.
- MySQL via `pdo_mysql`.
- Apache with `mod_rewrite` (`.htaccess` rules).
- SMTP for mail. Reset mail uses `mail.sarugby.co.za`. Template mail uses `mail.footprintapp.net`.
- Dompdf under `public/dompdf` and PHPExcel under `public/Classes`.
- Bitbucket Pipelines and git-ftp. FTP host, username, and password come from pipeline variables and are not stored in the YAML.

There is no root `composer.json`, no `appspec.yml`, and no PHPUnit configuration.

## Task-metadata discrepancy

The onboarding issue listed `sonar-project.properties` and `sonarqube_scan.bat` at the repository root. `git ls-files` on `master` at `9b734e0` does not contain those paths. Provenance: **Implemented** absence at this revision. They may have been expected from a working copy that is not this commit. **Requires Confirmation** if a scanner was added outside git.

## Human confirmation

- Is `saruefiling.git` still deployed, and from which branch?
- Is `saruefiling.overdriveqa.co.za` a QA site, a production site, or a retired host? The pipeline names LIVE variables and a QA hostname in the same step.
- Is `teamwizz_SARU` on the configured host still the database for this application, and is it shared with Footprint or with `saruefiling.com`?
- Should Silicon Ark treat this repository and `SaruEfiling.com` as one product line or as two?
- Are the controllers that are absent from the default menu still in use?
