# Features — interview-code

Evidence date: 2026-10-12.

Source: `git@bitbucket.org:overdrive/interview-code.git`, `master` at `cc4eee7` (2020-10-29).

No features document existed in the source repository or in Silicon Ark. Status labels follow that revision. "Current" means the behaviour is on `master` and runs if the process is started. It does not mean the README's candidate task is finished.

## Current features

| Feature | Status | Where | Notes |
|---|---|---|---|
| Technical-review brief | Current | `README.md` | Title, 1–2 hour time box, repo URL, starter commands, eight tasks. Added across `4f49362`, `92cda84`, `57116d3`, `cc4eee7` |
| Create React App sample page | Current | `src/App.js`, `src/App.css`, `src/index.js`, `public/index.html` | Default CRA content from `c0a9856`. Title in HTML is `React App` |
| Sample stylesheet and logo | Current | `src/App.css`, `src/index.css`, `src/logo.svg`, `public/favicon.ico`, `public/logo192.png`, `public/logo512.png` | Logo spin is disabled when the browser prefers reduced motion |
| Web app manifest | Current | `public/manifest.json` | `name` is "Create React App Sample". `display` is `standalone` |
| Robots file | Current | `public/robots.txt` | All user agents allowed |
| Sample unit test | Current | `src/App.test.js`, `src/setupTests.js` | Asserts the Learn React text is in the document |
| Web Vitals hook | Current, idle | `src/reportWebVitals.js`, call in `src/index.js` | Called with no callback, so the dynamic `web-vitals` import does not run |
| Dev and build scripts | Current | root `package.json` | `start`, `build`, `test`, `eject` via `react-scripts` 4.0.0 |
| Upload HTTP server | Current | `server/server.js` | Express listens on port `8000`. Startup log is `Server started!` |
| CORS for any origin | Current | `server/server.js` | `origin: "*"`, `optionsSuccessStatus: 200` |
| Multipart parse stub | Current | `server/upload.js` | `POST /upload`. Formidable `file` handler is empty. `end` calls `res.json()` with no argument |
| Dependency locks | Current | root `yarn.lock`; `server/package-lock.json`; `server/yarn.lock` | Server npm lock and Yarn lock pin different Express and Formidable versions. See technical documentation |
| Ignore rules | Current | `.gitignore`, `server/.gitignore` | Root file is the broad sample list (`node_modules/`, `dist/`, plus Java, Python, Maven, IDE, and media patterns). Server file ignores `node_modules` only |

## Completed, as far as the last commit

The tip subject is "add server and upload script" (2020-10-29). At that commit the README, the React scaffold, and the server stub are all present. The inspected clone has no git tags and no branch other than `master`.

The README's candidate work is not completed on this branch.

## Planned in the README, not built on master

Provenance: **Documented** in `README.md`. **Implemented** only where the notes say so.

| Item | README task | What `master` contains |
|---|---|---|
| New working branch | 2 | Only `master` on the inspected remote |
| File upload UI | 3 | No file input in `src/` |
| Preview of the file being uploaded | 3 | No preview element or object URL |
| Upload function as a component | 3 | `App` is the only component. `server/upload.js` is a Node handler, not a React component |
| Commented solution | 4 | Placeholder comments inside the Formidable `file` listener. Generator comments in CRA files |
| All CLI commands copied into the readme | 5 | Three command strings only: `npm ci`, `yarn start`, `node server.js` |
| List of images already uploaded, "even in cognito" | 6, marked nice to have | No list UI, no list route, no image store, no Cognito client |
| Instructions to test the candidate's code | 7 | No candidate test steps. The CRA test is the generator's Learn React test |
| Pull request to `jaco@overdrive.co.za` | 8 | Not a file in the repo. No candidate commit |

## Present but unused

| Item | Status | Evidence |
|---|---|---|
| `@material-ui/core` | Declared, unused | root `package.json` and `yarn.lock` version `4.11.0`. No import under `src/` or `server/`. README calls this a provided "MaterialUI component" |
| `reportWebVitals` measurement | Wired, not started | `index.js` passes no function |
| `server/package.json` `main` | Points at a missing file | `index.js` is named. `server.js` is the listener |
| Server `npm test` | Present, failing by design | Script prints `Error: no test specified` and exits 1 |
| Root `eject` script | Present | Standard CRA script. No ejected `config/` directory is in git |

## Removed

No commit deletes a feature. The README grew by addition. `App.js` was not replaced after the scaffold commit.

## Recently changed

All six commits are dated 2020-10-29. The last change is the server and the third "code provided" line. There is no later commit on `master`.
