# Features — unityFrontend

Evidence date: 2026-09-30. Source: `master` `9742198` (2020-04-14).

Labels: **Current** (present at HEAD and reachable or registered), **Partial**, **Template** (Fuse demo still in the tree), **Unreachable**, **Removed** (present in older commits, not at HEAD).

No feature list existed in the source repository.

## Current — custom Unity work

### Ticket list

**Current.** Route `/apps/ticketing/tickets`. Role gate `admin`, `teamManager`, `manager`, `technician`.

- Loads `GET /api/ticketing/tickets`.
- Columns: number, name, status, type, active, priority, department, company, assignee, resolved, age (days), created at.
- Search filters on `name` only (`src/app/main/apps/ticketing/tickets/TicketsTable.js`).
- Add and row click open the detail route.

Source: `src/app/main/apps/ticketing/`, `src/@fake-db/db/ticketing-db.js`.

### Ticket detail

**Current** for the mock. Route `/apps/ticketing/ticket/:ticketId`. `Ticket.js` is the routed component. `Ticket2.js` is not imported by the route config.

- New ticket when the id is `new`.
- General form: name, description, type, status, priority, department, company, assignee. Name required to enable Save. Inputs lock when `active` is false.
- Save and Close call the mock. Close sets `active` false and does not change `status`.
- Tabs Tasks, Resources, Activity, Misc, Notes render local components (`src/app/main/apps/ticketing/components/`).

### Login

**Current.** `/login`, title "LOGIN TO UNITY". JWT tab only (Firebase and Auth0 are not on this page). Minimum length 4 on email and password. Success follows `user.redirectUrl`.

Source: `src/app/main/apps/user-management/login/`.

### Registration

**Current** as a guest-only route `/register`. JWT tab creates an `unassigned` user in the mock. Firebase and Auth0 tabs are still on the page. The left column is Fuse marketing copy ("Welcome to the FUSE!").

Source: `src/app/main/apps/user-management/register/`.

### User list and user detail

**Partial.** `/apps/user-management/users` and `/apps/user-management/user/:userId`. List reads the auth mock. Save writes the user-management mock. No route-level role gate.

Source: `src/app/main/apps/user-management/`.

### User groups and module capabilities

**Partial.** Routes under `/apps/user-groups` are registered. The nav item is commented out in `navigationConfig.js`. Admin group seeds three modules (Ticketing, User-Management, Knowledge-base) with view/add/edit/delete flags. The save handler returns before it updates stored modules. No other screen reads the flags.

### Navigation shell

**Current.** Live items in `navigationConfig.js`:

- Tickets → `/apps/ticketing/tickets`
- Admin (collapse) → Dashboard `/apps/unity/adminhome`, Users `/apps/user-management`
- Technician → `/apps/unity/technicianhome`
- E-Commerce (collapse) → Fuse product and order demo URLs

Commented in that file, so not in the live nav: user groups, calendar, team manager home, manager home, knowledge base, notes, and the large Fuse applications / pages / documentation groups.

## Partial or stub homes

| Screen | Route registered | What the user sees | Source |
|---|---|---|---|
| Landing | `/apps/unity/landing` (and `/apps/unity` redirects here) | Two cards, "This is the content of this card" | `Landing.js`, `LandingContent.js` |
| Admin dashboard | `/apps/unity/AdminHome` | Intended: month widget plus doughnut. Widget returns the text "TicketsThisMonth" and never reaches its table. Selector path does not match the reducer. Nav URL casing does not match this route | `AdminHome.js`, `TicketsThisMonthWidget.js` |
| Technician dashboard | `/apps/unity/TechnicianHome` | Four placeholder papers, "Component 1" … "Component 4". Nav and seed redirect use different casing | `TechnicianHome.js` |
| Manager home | No | Text "This is the home for manager" | `ManagerHome.js` |
| Team manager home | No | File exists; nav entry commented | `TeamManagerHome.js` |

`Lost.js` sits in the Unity folder. It is not referenced by `UnityAppConfig.js`.

## Ticket metrics

| Piece | State |
|---|---|
| `GET /api/ticketing/dashboard/metrics` | **Implemented** in the mock. Counts tickets by status Open, Closed, In Progress |
| `getTicketMetrics` action | **Implemented** and never dispatched |
| Doughnut "Ticket Status" | **Current** on the admin page content, with hardcoded data `[12, 20, 32]` (`DoughnutChartComponent.js`) |
| `GET /api/ticketing/widgets/month-metrics` | **Implemented** in the mock. Returns travel-campaign rows (clicks, conversion), not ticket counts |
| Tickets this month widget | **Partial.** Early `return` renders a label. The table below it is dead code |

Last commit message says this widget was added on 2020-04-14. **Current** at HEAD in that stub state.

## Auth features

| Feature | State | Where |
|---|---|---|
| JWT session, 2-day mock expiry, bearer header | **Current** | `jwtService.js`, `auth-db.js` |
| Auto-login from `localStorage` | **Current** | `Auth.js` |
| Logout to `/login` and clear token | **Current** | `user.actions.js` `logoutUser`, route `/logout` |
| Role constants for team manager, manager, technician | Commented out | `authRoles.js` |
| Firebase login/register | Code present, not started from `Auth.js` | `firebaseService.js` |
| Auth0 login/register | Code present, not started from `Auth.js` | `auth0Service.js` |

## Template features still registered

`src/app/main/apps/appsConfigs.js` still mounts Fuse apps: analytics dashboard, project dashboard, mail, todo, file manager, contacts, calendar, e-commerce, chat, scrumboard, academy, notes, knowledge base. `routesConfig.js` also mounts page configs, the user-interface gallery, and Fuse documentation.

E-commerce is the only one of these still linked from the live nav, and its route config has no `auth` array.

`ticketdetailpoc` and `test` under `src/app/main/apps/` are not in `appsConfigs.js`. **Unreachable** by the route table.

## Removed

The 2019 tree (`unityfronend2`, Bootstrap, commits through `d8d8752`) is not at HEAD. Login, logout, CORS experiments, and the home page from those commits were replaced when Fuse was imported at `4371db7` (2020-01-13).

## Planned

No issue tracker, TODO file, or roadmap was found in the repository. Commented navigation and the stub homes are unfinished implementation, not a written plan. Treating them as a roadmap would be an inference. **Unknown / Requires Confirmation** what was still intended after 2020-04-14.

## Recently changed (last commit on master)

`9742198` (2020-04-14): navigation edits plus the Tickets This Month action (`unity.actions.js`), reducer, and `TicketsThisMonthWidget.js`, wired from `AdminHome.js`.
