# Project plan — unityFrontend

Evidence date: 2026-09-30.

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

Inspected revision: `master` at `9742198` (2020-04-14, Alex Kedian, "Navigation code changes. Added actions/reducers/component for TicketsThisMonth metric data for Admin Dashboard"). The scan-host path `~/projects/sonar_scan/repos/unityFrontend` 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 `unityFrontend/`. `README.md` is the Create React App readme. `public/index.html` sets the page title to **Unity - Work Management**. `package.json` names the package `fuse-react-app` version `3.2.0`.

Silicon Ark already has other Unity-named directories (`unityNodejsApi`, `unity-lambda-api`, `unity-skeleton`, `unity-soft-ui`, `unity-lite`, `unity-lite-v2`, `unity-salestracker`). This repository does not name them. Whether they are one product is **Unknown / Requires Confirmation**.

## Product

A browser application for work management. The visible custom work is a ticket list and ticket detail, role-labelled home screens, and user and user-group screens. Those screens talk to relative `/api/...` paths that the in-browser mock (`src/@fake-db`) answers. No separate backend lives in this repository.

**Documented** title: `public/index.html`. **Implemented** behaviour: the React tree under `src/app`. Provenance of "work management product" beyond the title and the ticket screens is **Inferred**.

## Scope in this repository

In scope for this knowledge set:

- The Fuse React 3.2.0 shell (layout, navigation, routing, Redux, JWT login against the mock).
- Custom Unity screens: ticketing, admin and technician homes, user management, user groups.
- The mock API that those screens call.
- What is still the upstream Fuse demo (e-commerce, mail, documentation, and the rest of `src/app/main/apps` that is registered but mostly hidden from the nav).

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

- A real ticket API, database, or identity provider.
- Deployment target, hosting, and whether anyone still runs the app.
- The other Unity repositories listed above.

## System shape

```text
Browser
  public/index.html  ("Unity - Work Management")
  src/index.js       React 16.8.6, service worker unregistered
  src/app/App.js     imports @fake-db, then Auth + Fuse layout
       |
       +-- JWT in localStorage (jwt_access_token)
       +-- axios calls to same-origin /api/*
                |
                +-- axios-mock-adapter in src/@fake-db
                    (unmatched calls pass through to the network)
```

There is no `baseURL`, proxy, Dockerfile, or pipeline file in the tree at `9742198`.

## Major components

| Area | Where | What it is |
|---|---|---|
| Shell | `src/@fuse`, `src/app/fuse-layouts`, `src/app/fuse-configs` | Fuse React layout 1, folded navbar, toolbar off, footer off |
| Navigation | `src/app/fuse-configs/navigationConfig.js` | Live items: Tickets, Admin (Dashboard, Users), Technician, E-Commerce. Most role checks are commented out |
| Routes | `src/app/fuse-configs/routesConfig.js` | Fuse apps plus login, register, logout, callback. `/` redirects to `/login` |
| Tickets | `src/app/main/apps/ticketing` | List, detail, save, close. Mock data in `src/@fake-db/db/ticketing-db.js` |
| Homes | `src/app/main/apps/Unity` | Admin dashboard, technician dashboard, landing. Manager and team-manager homes exist as files and are not routed |
| Users | `src/app/main/apps/user-management` | User list/detail and user-group list/detail, including module capability checkboxes |
| Auth | `src/app/auth`, `src/app/services/jwtService` | JWT only is started. Firebase and Auth0 code remains and is not called from `Auth.js` |
| Mock API | `src/@fake-db` | Answers `/api/auth*` and `/api/ticketing*` in memory |

## History

`master` is the only branch. 22 commits, 2019-10-02 to 2020-04-14. Nothing in git is dated after 2020-04-14. Whether the app was deployed, and whether work continued outside this remote, is **Unknown / Requires Confirmation**.

| Period | What the tree is |
|---|---|
| `5c5fc68` (2019-10-02) through `d8d8752` (2019-12-02) | An earlier Create React App named `unityfronend2` (React, Bootstrap, axios). Commit subjects mention login, logout, CORS, a home page, and an ajax call. That tree is not HEAD |
| `4371db7` (2020-01-13) onward | Fuse React 3.2.0. Alex Kedian's subjects cover ticket list and detail, login, user list, user groups, knowledge base, navigation, and the Tickets This Month widget |

HEAD commit:

| Commit | Date | Author | Subject |
|---|---|---|---|
| `9742198` | 2020-04-14 | Alex Kedian | Navigation code changes. Added actions/reducers/component for TicketsThisMonth metric data for Admin Dashboard |

The discovery note for this task listed `sonar-project.properties` and `sonarqube_scan.bat` at the scan-host root. Those two files are not in git at `9742198`.

## Milestones visible in git

These are commit subjects, not an approved plan.

1. 2019-10 — earlier Bootstrap React app (login, home, CORS). **Implemented** then, **removed** from HEAD by the Fuse import.
2. 2020-01-13 — Fuse tree imported; ticket list and ticket detail started.
3. 2020-01-24 to 2020-03-31 — user list, roles, user groups, knowledge base, navigation.
4. 2020-04-14 — admin dashboard month-metrics action, reducer, and widget. The widget returns a placeholder before its table. See features and the PRD.

No milestone after 2020-04-14 is in this repository. **Planned** work is not written down here.

## Current status

**Implemented** as a local prototype: `yarn start` (port 3000, from the CRA readme) builds Tailwind, then starts the dev server. Data does not leave the browser unless a mock route misses and axios passes the call through.

**Not established:** production host, real API, owners, and whether the April 2020 prototype was accepted.

## Dependencies (runtime)

From `package.json`: React 16.8.6, Redux, React Router 5, Material UI 4.3, axios 0.19, axios-mock-adapter, jsonwebtoken and jwt-decode, Chart.js, Formsy, Tailwind 1.0.5 (dev), Fuse's bundled UI under `src/@fuse`.

`react-scripts` is 3.0.1. Node and yarn versions are not pinned. **Unknown / Requires Confirmation** which toolchain still installs this lockfile.

## Known gaps

- Mock users, mock tickets, and a travel-campaign payload used as "tickets this month".
- Role strings in the mock do not all match the ticketing route's `auth` array (`team manager` versus `teamManager`).
- Admin, technician, and landing URLs disagree on letter case between the nav, the route table, and the mock `redirectUrl`.
- `getTicketMetrics` is never dispatched. The doughnut chart uses the numbers 12, 20, and 32.
- Module capability flags are editable in the UI and are not read by navigation or routes.
