# Features — UnityApi

Evidence date: 2026-09-30.

Source: `git@bitbucket.org:overdrive/unityapi.git`, `master` at `23894c8` (2019-06-03, "Update artisan").

No feature list existed before this document. Labels: **Implemented**, **Present but not reachable**, **Not a product feature**, **Removed**, **Planned** (none found).

## Current features

### F-01 — Welcome page

- **Status:** Implemented.
- **Behaviour:** `GET /` returns `resources/views/welcome.blade.php`. The page title is `Laravel`. The Blade file does not include the Mix JS or CSS bundles.
- **Evidence:** `routes/web.php`, `resources/views/welcome.blade.php`, `app/Providers/RouteServiceProvider.php` (`web` middleware, no prefix).
- **Test:** `tests/Feature/ExampleTest.php` `testBasicTest` requests `/` and asserts HTTP 200. Not executed during this inspection.

### F-02 — Authenticated API user endpoint

- **Status:** Implemented as a route. End-to-end use is blocked by the schema.
- **Behaviour:** `GET /api/user` requires `auth:api` and returns the current user. Prefix `api` and middleware `throttle:60,1` come from `RouteServiceProvider::mapApiRoutes` and `app/Http/Kernel.php`.
- **Evidence:** `routes/api.php`, `config/auth.php` (`api` guard driver `token`, `hash` false), `app/User.php` (`$hidden` includes `password` and `remember_token`).
- **Limit:** users migration has no `api_token` column. See `prd.md` FR-002.

### F-03 — User and password-reset schema

- **Status:** Implemented as migration files. No evidence they have been applied.
- **Behaviour:** creates `users` and `password_resets`. See `business-rules.md` for column rules.
- **Evidence:** `database/migrations/2014_10_12_000000_create_users_table.php`, `database/migrations/2014_10_12_100000_create_password_resets_table.php`.

### F-04 — Auth controller scaffold

- **Status:** Present but not reachable.
- **Behaviour:** login, registration, forgot-password, reset-password, and email-verification controllers ship with Laravel's traits and `$redirectTo = '/home'`.
- **Not present:** `Auth::routes()`, auth views, `HomeController`, route `/home`.
- **Evidence:** `app/Http/Controllers/Auth/*.php`, `routes/web.php`, `resources/views/` (only `welcome.blade.php`).

### F-05 — Front-end asset scaffold

- **Status:** Implemented as source and committed build output. Not used by the only page.
- **Behaviour:** `webpack.mix.js` compiles `resources/js/app.js` to `public/js` and `resources/sass/app.scss` to `public/css`. `app.js` registers Vue component `example-component` from `resources/js/components/ExampleComponent.vue` (static text "I'm an example component.") and mounts Vue on `#app`.
- **Evidence:** `webpack.mix.js`, `resources/js/app.js`, `resources/js/components/ExampleComponent.vue`, `resources/js/bootstrap.js`, `package.json`, committed `public/js/app.js` and `public/css/app.css`.
- **Limit:** `welcome.blade.php` has no `#app` and no `example-component` tag.

### F-06 — Example tests and the inspire command

- **Status:** Implemented framework samples. **Not a product feature.**
- **Behaviour:** feature test above; `tests/Unit/ExampleTest.php` asserts `true`. `php artisan inspire` prints a quote (`routes/console.php`). The scheduler does not call it.
- **Evidence:** `tests/Unit/ExampleTest.php`, `tests/Feature/ExampleTest.php`, `phpunit.xml`, `routes/console.php`, `app/Console/Kernel.php`.

## Completed features

Nothing in git history shows a product feature that was finished and left in place. The skeleton itself is the whole application after `23894c8`.

## In development

No branch other than `master`. No uncommitted product code exists in the inspected clone. In-development work: none found.

## Recently changed

Both commits are dated 2019-06-03. Relative to an empty Bitbucket README, `23894c8` added the Laravel application and replaced the README. There is no change after that date.

## Planned features

None found in code, comments, or docs.

## Deprecated or removed

| Item | What happened | Evidence |
|---|---|---|
| README heading `# UnityApi` | Removed when `23894c8` replaced `README.md` with the upstream Laravel README | `git show 2a22b30:README.md` versus current `README.md` |

No other removed feature was found. Auth controllers were added in `23894c8` together with the rest of the skeleton; they were not a later removal of routes.

## Features that are configuration slots only

These names appear in config or `.env.example` and have no caller in `app/` or `routes/`:

- Mail (SMTP / Mailgun / SES / Postmark / SparkPost)
- Stripe (`config/services.php`)
- AWS S3 (`FILESYSTEM_CLOUD` default `s3`, `AWS_*` keys in `.env.example`)
- Pusher (`PUSHER_*`, `MIX_PUSHER_*`)
- Redis (host placeholders; cache, session, and queue examples do not select Redis)
- Broadcasting (driver `log` in the example env; app broadcast provider commented out)

## Scan-host files that are not features in git

The onboarding issue's top-level listing included `sonar-project.properties` and `sonarqube_scan.bat`. `git ls-files` at `23894c8` does not contain them. They are not documented as features. **Unknown / Requires Confirmation** if they should be recovered from the scan host.
