# Features — myPass-App

Evidence date: 2026-10-09. Inspected revision: `master` at `d8d04bf` (2022-06-22).

Labels: current means present and reachable in this revision; completed means the git history shows it landed; planned means a later branch or an in-code placeholder, not behaviour on `master`.

## Current

| Feature | What the user can do | Where |
|---|---|---|
| PWA shell | Install MyPASS, portrait standalone, theme `#E9573F` | `_manifest.json`, `index.html`, `scripts/core.js` install handler |
| Offline cache | Service worker cache `Cache-v3.06` of the shell, screens, scripts, and styles | `_service-worker.js`, `scripts/app.js` |
| Sign in | Reference number and password against `getlogin` | `sign_in_sign_up.html`, `SubmitSignIn` |
| First login / forgot password | Verify reference plus mobile, then set a password of at least 6 characters | `submitFirstLoginVerify`, `submitFirstLogin` |
| Home | Event cards, upcoming test, vaccine card, health-result cards | `home_screen.html`, `home_screen` |
| Health history | Result list and upcoming test; add button opens the certificate form | `screen_history.html`, `screen_history` |
| Symptom check | Identity, Covid-19 contact, recent symptoms, declaration, submit | `symptom_step_1.html`, `symptom_step_3.html`, `symptom_step_5.html`, `symptom_step_5b.html`, `symptom_step_confirmation.html`, `scripts/core2.js` |
| Screening result | Show a submitted or historical symptom check | `screen_result.html`, `screen_result_review.html` |
| External symptom link | Open a check or a review without the normal footer | `indexLoad` |
| MyPASS card | Photo, name, five status icons, QR | `my_pass.html`, `my_pass` |
| Health certificates | One vaccine card and one test card | `health_certificates.html`, `health_certificates` |
| Certificate upload | Vaccine or test file, date, status; PDF or image preview; 3 MB limit | `add_health_certificate.html`, `doSaveCertificate` |
| QR scan | Camera or image scan on certificate type Scan; scanner stops on page change | `doScanner`, `loadPage` |
| Profile view and edit | Show stored profile; save `postuserprofile`; optional `postpwd`; photo upload | `myprofile_view.html`, `myprofile_edit.html` |
| Profile lock | Grey out edit when any event `StatusDescription` is "Approved" | `myprofile_view` |
| Registration form | Apply for event `304` and look up an organisation reference | `registration_form.html`, `registration_form` in `scripts/core.js` |
| Terms | Menu modal; event terms stored from `getevent` during a symptom check | `showTermsAndConditions`, `symptomStepLoad` |
| Sign out | Clear `localStorage` | `logout` |
| Dark mode | Theme toggle in the side menu | `menu-main.html`, `scripts/custom.js` |
| Deploy | S3 upload and CloudFront invalidation for branches `master`, `qa`, and `prod` | `bitbucket-pipelines.yml` |

## Completed (landed on master)

| Change | Commit | Date |
|---|---|---|
| Initial app and "Master is production" split | `bcdebb5`, `d76cabf` | 2022-02-11 |
| Favicon | `ed29c6e` | 2022-06-08 |
| Input trimming; symptom step 1 reload and number fixes | `82a7de9`, `22a5aed`, merge `752418b` (PR #1) | 2022-06-18 to 2022-06-21 |
| QR scanner on health certificates; unified add button; stop scanner on navigation | `70ab3fd`, `2b8c510`, merge `d8d04bf` (PR #2) | 2022-06-21 to 2022-06-22 |

## In the tree, not on the active path

| Feature | Evidence | Status |
|---|---|---|
| Onboarding carousel | `Onboard.html`, `onboard_screens`. Redirect from `indexLoad` is commented out | Present, not entered automatically |
| Sign up | `SubmitSignUp` reads `userData.json` and posts to `userDataTest.json`, which is not in the repo | UI only |
| Symptom steps 2, 4, and 4b | HTML asks about high-risk travel and untreated conditions. The submit handler never navigates there | Orphan screens |
| Events footer item | Commented out in `index.html`. Menu item `onclick` is commented out | Disabled |
| MyORGANISATION, Settings, Admin | `menu-main.html` class `disableMenu` | Disabled |
| `getfirstlogin` after sign-in | Commented out inside `SubmitSignIn` | Not called |
| Scan save | Toast "Still awaiting API CODE!" | Placeholder |
| `scripts/core_old.js`, `scripts/core_epic.js` | Not referenced by `index.html` | Unused copies |
| `scripts/registration_form.js`, `scripts/index.js` | Registration script tag is commented out. `index.html` loads `core.js` | Unused by the shell |
| `domains_old.js` | Host-to-event map. Not loaded | Unused |
| `php/contact.php` | Posts to `mail@domain.com`. Not called | Theme boilerplate |
| `exports/` | Static design HTML (sign-in, home, health pass). Not the `start_url` | Design export |
| `index_2.html`, `registration_form_org.html` | Present at the repo root. Not the manifest start URL | **Unknown** whether anything still links to them |
| `docs/BIL_Tour-COVID-19_Protocol_Final.pdf` | Only file under `docs/`. Not loaded by the app | **Unknown** product status |
| `sonar-scanner.bat` | Windows launcher for SonarScanner 4.6.2 at `C:\sonar-scanner`. Not a pipeline step | Local scan helper |
| `.scannerwork/` | Sonar working directory in the clone | Not application behaviour |

## Planned or only on other branches

Not merged to `master`. Subjects are from `git log`. They are not current behaviour.

| Branch | Tip date | Subject that names the work |
|---|---|---|
| `encryption` | 2022-07-22 | md5 hashing on password |
| `login-ui-1` | 2022-08-03 | Forgot password flow, UI, remove lanyard, remove old event style |
| `style_fetcher` | 2022-07-08 | Style fetcher (merged into `qa` history, not into `master`) |
| `qa` | 2022-08-16 | Terms API call; remove feeds from home |
| `unify_cards` | 2022-06-29 | initial unify cards code |
| `multi-event` | 2022-08-29 | Multi event registration |
| `joshChanges` | 2022-07-26 | change logging to debug mode |

`bitbucket-pipelines.yml` lists a `prod` branch. That branch is not on the remote.

Whether any of this is still wanted is **Unknown / Requires Confirmation**.

## Removed

No commit on `master` deletes a user-facing feature after the initial commit. Disabled menu items and commented calls are still in the files; they were not removed from the product by a later commit.

## Recently changed

The last user-facing change on `master` is the QR scanner merge, 2022-06-22 (`d8d04bf`). Nothing on `master` has changed since.
