# Project plan — reactFrontend

Evidence date: 2026-10-05.

Source repository: `git@bitbucket.org:overdrive/reactfrontend.git` (clone used `https://bitbucket.org/overdrive/reactfrontend.git`).

Inspected revision: `master` at `25c9bd8` (2020-07-17, Alex Kedian, "Updated Base API URL and Amplify URL"). The scan-host path `~/projects/sonar_scan/repos/reactFrontend` was not on this machine. The tree below was read from that git revision.

This plan describes what the repository contains. It does not decide what the product should become.

There is no product requirements document in the source repository and no prior Silicon Ark set for `reactFrontend/`. `README.md` is the Create React App readme. `public/index.html` sets the page title to **Footprint Reboot**. `package.json` names the package `footprintreboot` version `4.2.8` and describes it as "Footprint, team management software".

Silicon Ark already has other Footprint-named directories (`tournaments.footprintapp.net`, `track.mypass.zone`) and `unity-lambda-api` mentions a bucket `footprint-reboot-qa-zaf`. This repository does not name those directories. Whether they are one product is **Unknown / Requires Confirmation**.

## Product

A browser application for managing sports members, with screens for member search and a member profile, plus navigation for organisations, tournaments, squads, medical, insight, and settings. Login uses Amazon Cognito in `eu-west-1`. Member list and member profile writes call a Footprint HTTP API. Squad and tournament lists on this revision are static arrays in the page files. Most settings and organisation child pages render a heading only.

**Documented** title and package description: `public/index.html`, `package.json`. **Implemented** behaviour: the React tree under `src`. Provenance of a live "team management" product beyond those strings and the member screens is **Inferred**.

## Scope in this repository

In scope for this knowledge set:

- The Gogo React admin shell (layout, navigation, routing, Redux, theme).
- Cognito login, logout, forgot-password, reset-password, and confirm-code screens.
- Member list, member profile tabs, and the profile forms that post to the Footprint API.
- Groups and roles settings that load and save permission flags.
- Screens that are routed and still show static or placeholder content (squads, tournaments, insight, medical landing, most settings).
- The leftover Gogo demo areas still linked from the menu (UI kit, chart demos).

Out of scope, because it is not in this repository:

- The API implementation behind `dev-api.reboot.footprintapp.net` and `dev.reboot.footprintapp.net`.
- The Cognito user pool configuration in AWS (password policy, custom attributes, hosted UI).
- Deployment target, hosting, and whether anyone still runs the app.
- The other Footprint repositories listed above.

## System shape

```text
Browser
  public/index.html  ("Footprint Reboot")
  src/index.js       theme from localStorage, then AppRenderer
  src/App.js         imports helpers/Amplify, then routes
       |
       +-- /user/*     public auth screens (ViewUser reconfigures Amplify)
       +-- /app/*      AuthRoute: redux user (localStorage user_id) must be set
              |
              +-- aws-amplify API name "footprint"
              +-- axios helper footprintAPI (separate base URL)
```

There is no Dockerfile, pipeline file, or `.env` in the tree at `25c9bd8`. API hosts and Cognito identifiers are hardcoded in `src/helpers/Amplify.js`, `src/views/user/index.js`, and `src/helpers/footprintAPI.js`. Those three files do not agree on the API host. See `technical-documentation.md`.

## Major components

| Area | Where | What it is |
|---|---|---|
| Shell | `src/layout`, `src/containers/navs`, `src/constants/menu.js` | Gogo layout. Menu lists Insight, Members, Organisations, Tournaments, Squads, Medical, Settings, and a UI kit |
| Routes | `src/App.js`, `src/views/app/index.js`, `src/views/app/pages/index.js` | `/` redirects to `/user/login`. `/app` requires a stored user id. Unknown paths redirect to `/error` |
| Auth | `src/views/user`, `src/redux/auth` | Cognito `signIn` / `signOut` / `forgotPassword` / `forgotPasswordSubmit`. Register saga still calls a Firebase-style method |
| Members | `src/views/app/pages/user` | Search list calls the API. Profile loads `/members/{id}/verbose`. Several child routes are headings only |
| Permissions | `src/components/AccessControl/AccessControl.js`, settings `groupsAndRoles.js` | Cards call `canRender`. That function returns `true` unconditionally. Settings can still load and save flag rows |
| Squads / tournaments | `src/views/app/pages/squad`, `src/views/app/pages/tournament` | Routed pages. List and detail data in the files inspected is static |
| Settings | `src/views/app/pages/settings` | Groups and roles call the API. The other eleven pages render a label |
| Lookups | `src/customData/dropdownLookupData.js` | In-file option lists for forms and squad filters |

## History

`master` is the working line: 229 commits, 2020-03-10 to 2020-07-17. `origin/development` exists and its tip is `94af90a` (2020-04-28, "Added Amplify changes"), 44 commits. Nothing in git is dated after 2020-07-17. Whether the app was deployed, and whether work continued outside this remote, is **Unknown / Requires Confirmation**.

| Period | What the commits describe |
|---|---|
| `3acfab4` (2020-03-10) through early April | Bitbucket README, PowerPoint commit, Gogo shell, charts, login landing, user list and profile |
| Mid April to May 2020 | AWS Amplify and Cognito, axios, member list API, profile forms |
| June 2020 | Permissions, activation, email confirmation, medical and performance cards, groups and roles |
| July 2020 | Squad detail presentation work, CORS fixes, then the base API URL change at HEAD |

HEAD commit:

| Commit | Date | Author | Subject |
|---|---|---|---|
| `25c9bd8` | 2020-07-17 | Alex Kedian | Updated Base API URL and Amplify URL |

That commit changes `src/helpers/footprintAPI.js` and `src/views/user/index.js` only. It does not change `src/helpers/Amplify.js`.

Named authors on `master`: Alex Kedian, Jaco Brits, Thilo Muller, JacquesOverdrive, Lori Horn.

## Milestones visible in the tree

These are observations from commit subjects and the current files. They are not a dated project plan.

1. Gogo React shell brought up and pointed at a login page (`9fdd8f4`, 2020-03-30).
2. Cognito sign-in wired (`0a05bea`, 2020-04-22, and later Amplify config commits).
3. Member list and member profile backed by HTTP calls (May–June 2020).
4. Permission modules and account activation (June 2020).
5. Squad detail UI prepared for a presentation (`5e654af`, `b2ae8f4`, 2020-07-11 to 2020-07-12). The squad pages still use in-file data.
6. API host strings updated on 2020-07-17, leaving two Amplify configurations.

## Current status

The repository is a front end only. On `25c9bd8` the member list, member profile load, several profile saves, account activation, and groups-and-roles settings call remote APIs. Squad, tournament, insight, the medical landing page, and most settings pages do not. `canRender` does not enforce the permission flags it was written to check.

No test files (`*.test.js`, `*.spec.js`) are in the tree. `package.json` still has `"test": "react-scripts test"`. There is no continuous-integration file.

The task that created this onboarding listed `sonar-project.properties` and `sonarqube_scan.bat` at the scan-host root. Those two files are not in the git tree at `25c9bd8`.

## Known dependencies

- Node toolchain expected by Create React App: `react-scripts` `^3.4.0`, React `^16.13.1`. `node-sass` `^4.14.1` is a dev dependency.
- Amazon Cognito user pool `eu-west-1_16nNqbqeS` and identity pool `eu-west-1:43f59f4f-b414-4926-ac62-da5c27674e77`, region `eu-west-1`.
- S3 bucket name `footprint-reboot-app` in the Amplify Storage block. No upload call was found in the product pages inspected.
- HTTP APIs at `https://dev-api.reboot.footprintapp.net` and `https://dev.reboot.footprintapp.net/api`, plus one organisation dashboard call to `https://afsxv57muc.execute-api.eu-west-1.amazonaws.com/dev/footprint`.
- Commented history in the same files names older API Gateway hosts and an older user pool `eu-west-1_E6NTixDJM`.

## Requires confirmation

- Whether `master` at `25c9bd8` is the release that was shown to users, or a development snapshot that stopped.
- Which of the two Amplify API endpoints is the one operators intend.
- Whether the API, Cognito pool, and S3 bucket named in source still exist.
- Whether squad and tournament screens were meant to stay on static data.
- Whether `canRender` returning `true` is a temporary bypass (the comment in that file says so) or the accepted rule.
- How this repository relates to `tournaments.footprintapp.net`, `track.mypass.zone`, and the Footprint names in `unity-lambda-api`.
- What `PowerPoint/Blindside Software Hierarchy.pptx` specifies. The file is in git. Its slides were not extracted.
