# Features — paymyfines-frontend-new

Evidence date: 2026-10-07.

Source: `main` at `a335e20` (`a335e20139975fffafe50478d1b884fe49b30668`), 2025-02-27.

The application arrived in one import commit (`5777512`). Later commits on `main` change SonarQube pipeline files only. There is no older product history on this remote, so "recently changed" below means that import plus the pipeline edits, not a feature-by-feature changelog.

## Current features

These are reachable from the route table in `src/config/RoutingConfig.js` at `a335e20`.

| Feature | Route | Who | Source |
|---|---|---|---|
| Maintenance home | `/` | All roles including guest | `src/components/LandingPage.js` |
| Outstanding fines list, filters, add to cart | `/outstandingfines` | `SUPER_ADMIN`, `ADMIN`, `MANAGER`, `CUSTOMER` | `src/components/OutstandingFines.js` |
| Same list opened by ID query `idno` | `/quickidfinesearch` | Those roles plus `GUEST` | Same component |
| About | `/about` | All roles | `src/components/About.js` |
| Login and profile-completion modal | `/login` | `GUEST` | `src/components/Login.js` |
| Registration and email code | `/register` | `GUEST` | `src/components/Register.js` |
| Forgot password | `/forgot-password` | `GUEST` | `src/components/ForgotPassword.js` |
| Admin dashboard (graphs and finance report) | `/adminDash` | `SUPER_ADMIN`, `ADMIN` | `src/components/AdminDashboard.js` |
| Admin settings (email templates, convenience fee, graph definitions) | `/adminSettings` | `SUPER_ADMIN`, `ADMIN`. Also listed as a child of Admin | `src/components/AdminSettings.js` |
| Profile and linked ID numbers | `/profile` | Signed-in roles except guest | `src/components/Profile.js` |
| Transaction list and detail | `/transactions` | Same | `src/components/Transactions.js` |
| Cart and iVeri checkout | `/Cart` | Same. `canNavigate` is false; the nav cart icon pushes this path | `src/components/Cart.js`, `src/components/common/TopNav.js` |
| AARTO / eNatis detail | `/aartofinedetails` | Empty permission array, so the route filter allows everyone | `src/components/AARTOFineDetails.js` |
| CPA / iForce detail and evidence image | `/cpafinedetails` | Empty permission array | `src/components/CPAFineDetails.js` |
| Payment result | `/paymentNotification` | All roles | `src/components/PaymentNotification.js` |
| Terms | `/TermsAndConditions` | All roles. Footer link, not top nav (`canNavigate: false`) | `src/components/TermsAndConditions.js` |
| Privacy policy | `/PrivacyPolicy` | All roles. Footer link | `src/components/PrivacyPolicy.js` |
| Contact form | `/contactus` | All roles | `src/components/ContactUs.js` |
| Logout | Nav control | Signed-in | `src/components/common/TopNav.js` |
| Unknown URL | Catch-all | — | `src/components/common/NotFound.js` |

Shared UI: top navigation, footer (hidden on `/`), popup modal, exportable tables, loader button.

## Completed features

Nothing in the repository is marked released or completed apart from the imported tree itself. The import includes a compiled `build/` directory, so a production webpack build had been produced before `5777512`. When that build was produced is not in the commit message.

## In development

No branch other than `main` exists on `origin`. No TODO file or milestone marks work in progress.

Commented route entries show screens that were wired and then turned off in navigation:

- Admin child "Dashboard Test" (`/adminDashTest`) — comment in `RoutingConfig.js`. Component `AdminDashboardTest.js` and `dashboardTestData.js` remain.
- Admin child "Analytics" — comment in the Admin `children` array. A separate route `/adminAnalytics` is still registered with `canNavigate: false`.

## Planned features

No roadmap, ticket, or "coming soon" copy defines a planned feature.

**Inferred, not a plan.** `LandingPage.js` says the site is "temporarily undergoing maintenance" and still contains `searchFines`. Restoring that form would again offer notice and ID search from `/`. No flag or issue in the repo schedules that.

`README.md` "Benefits: Using Amplify / lambda" names a hosting style. There is no `amplify.yml` in the tree.

## Recently changed

| Date | Change | Product effect |
|---|---|---|
| 2025-02-27 `5777512` | Entire `src/`, `public/`, `build/`, workflows, locks | All current screens |
| 2025-02-27 `f7711bf`, `67f6607`, `a335e20` | Bitbucket SonarQube pipeline and `sonar-project.properties` | Scan on `main`. No UI change in `a335e20` |

## Deprecated or removed

Not deleted. Present and not on the primary navigation:

| Item | Evidence | Status |
|---|---|---|
| Home search form | Function `searchFines` in `LandingPage.js` is not used by the returned JSX | **Implemented** code, **not shown** |
| `/quickfinesearch` | `canNavigate: false`, `showInFooter: false` | Routed if the URL is opened |
| `/adminAnalytics` | `canNavigate: false`. Google Analytics Reporting `viewId: "YOUR_VIEW_ID"` | Routed for admin roles. Placeholder view id |
| `/adminDashTest` | Route comments | Component remains, route does not |
| Pivot table suite | `Pivot.js`, `PivotTable*.jsx`, `Utilities.js`, `*Renderers.jsx` | Not imported by routes. `Utilities.js` is the pivot helper used by those files |
| `RequestsAPI.js` | No imports from other `src` files | Unused `fetch` wrapper |
| `serviceWorker.register` | `src/index.js` calls `unregister()` | CRA default left off |
| Cart helpers inside `Cart.js` | `addToCart` and `checkIfCartItemExist` are commented out | Removal is done by `removeFromCart`, which is live |

`Roles.js` says the role names are placeholders. They are the names the route table uses. Replacing them would be a product change. It has not been done in this tree.

## Analytics and admin extras

- Page analytics in `public/index.html`: Matomo site `2` and Google tag `G-6M1WRZYG8D`. **Implemented** on every load.
- `AdminAnalytics.js` plus `AnalyticsReport.js` and `AnalyticsUtils.js`: Google `gapi` client, report path `/v4/reports:batchGet`. **Implemented** component, hidden from the nav, view id not set.
- `public/iveri.html` and `documentation/iveri.php`: alternate return redirects. The cart does not post to them. See technical documentation.

## Source map for payments

Checkout fields, convenience multiplication, and the Nedsecure form are in `src/components/Cart.js`. Environment application id and API base URL are in `src/aws-config.js`.
