# Project plan — siliconreact

Evidence date: 2026-10-03.

Source repository: `git@bitbucket.org:overdrive/siliconreact.git` (cloned as `https://bitbucket.org/overdrive/siliconreact.git`).

Inspected revision: `master` at `96fd3b0` (2023-03-24, "fixed some routing", Hein Lie). `origin/HEAD` points at `master`. No other branches and no tags were found.

There is no prior Silicon Ark directory for this project, and the repository has no project plan of its own. The README is the `create-next-app` template. This plan describes what the repository contains. It does not decide what the product should become.

## Product

**siliconreact** is a Next.js (pages router) application branded in the UI as "Silicon React", with a footer credit to Silicon Overdrive and a link to `https://www.overdrive.co.za/`.

Provenance: **Implemented** (`pages/landing/index.tsx` heading "Welcome To Silicon React"; copyright component copied on the login, signup, and forgot-password pages). **Inferred:** it was started as an internal Silicon Overdrive front-end shell. No product brief, customer, or domain (beyond a login shell) is written down.

What the application is for, who the intended users are, and whether it was ever deployed are **Unknown / Requires Confirmation**.

## Repository timeline

All application commits after the initial Bitbucket files are by Hein Lie (`hein@overdrive.co.za`). The first three commits are by Jaco Brits (`jaco@overdrive.co.za`).

| Commit | Date | Author | What it did |
|---|---|---|---|
| `1de5eba` | 2023-03-08 | Jaco Brits | Initial `.gitignore` |
| `bb78735` | 2023-03-08 | Jaco Brits | `sonar-project.properties` |
| `5eef0d0` | 2023-03-08 | Jaco Brits | Bitbucket Pipelines SonarQube step |
| `4018f2b` | 2023-03-09 | Hein Lie | First application commit: Next.js, MUI, landing, login, signup |
| `8db0af8`, `84caf2b` | 2023-03-09 and 2023-03-13 | Hein Lie | Small login and signup edits ("Small change", "Aditions") |
| `30f78f5` | 2023-03-13 | Hein Lie | Login validation, NextAuth credentials login, logout on home |
| `dc7d03c` | 2023-03-14 | Hein Lie | Forgot-password page, users page ("still to populate"), removed `pages/login/index.tsx` |
| `96fd3b0` | 2023-03-24 | Hein Lie | `/` renders login instead of the landing page; unauthenticated redirects and "back to login" links point at `/`; favicon href changed from `/static/favicon.ico` to `/favicon.ico` |

No commits after 2023-03-24.

## Objectives

No written objectives exist. The following are **Inferred** from the pages and commit messages:

- Show a Silicon Overdrive branded sign-in screen.
- Accept a credentials login and keep a JWT session (NextAuth).
- Send an authenticated person to `/home`, and send an unauthenticated person away from `/home` and `/users`.
- Provide signup and forgot-password screens. Those screens do not call an API.
- Leave a users page to be filled in later (commit message on `dc7d03c`).

## Scope

### In the repository

- Next.js 13 pages-router app (`pages/`).
- MUI theme and Emotion cache (`src/theme.ts`, `src/createEmotionCache.ts`, `pages/_app.tsx`, `pages/_document.tsx`).
- Credentials sign-in (`pages/auth/login.tsx`, `pages/api/auth/[...nextauth].ts`, `lib/validate.ts`).
- Screens: landing (`/landing`), signup (`/signup`), forgot password (`/forgotpassword`), home (`/home`), users (`/users`).
- A shared MUI button wrapper (`components/button/index.tsx`).
- An unused MUI/Next link helper (`src/Link.tsx`).
- The `create-next-app` sample route `pages/api/hello.ts`.
- Create-next-app CSS files that no page imports (`styles/globals.css`, `styles/Home.module.css`).
- SonarQube project key and a Bitbucket Pipeline that runs only a SonarQube scan on `master`.
- Static assets: `public/assets/images/SiliconLogo.png`, `public/favicon.ico`, and the three create-next-app SVGs.

### Not in the repository

- A product requirements document, changelog, or licence.
- A database, user store, email sender, or password-reset implementation.
- Environment examples (`.env*.local` is gitignored; no `.env.example`).
- Tests, a Dockerfile, a hosting config, or a `next build` step in CI.
- `package-lock.json` (gitignored).
- `sonarqube_scan.bat`. The onboarding task's scan listing named that file. It is not in git. **Unknown / Requires Confirmation** — it may have been an untracked file on the scan host.

## Architecture (as implemented)

```text
Browser
  └── Next.js pages router (next 13.2.3, reactStrictMode)
        ├── pages/index.tsx            renders the login form (landing import is commented out)
        ├── pages/auth/login.tsx       Formik + login_validate + next-auth signIn
        ├── pages/api/auth/[...nextauth].ts
        │     Credentials provider, JWT session, hardcoded accept/reject
        ├── pages/home, pages/users    useSession; unauthenticated → Router.replace("/")
        ├── pages/signup, pages/forgotpassword, pages/landing
        │     UI only; submit handlers log to the console
        ├── pages/api/hello.ts         sample JSON
        └── pages/_app.tsx             SessionProvider + MUI ThemeProvider + CssBaseline
```

There is no middleware file, no database client, and no custom server.

## Milestones

These are historical, taken from the commits above. They are not an approved roadmap.

1. **Repository and scan wiring** — 2023-03-08. Done in git.
2. **Branded page shell** — 2023-03-09. Landing, login, and signup UI. Done in git. Landing is no longer the entry page.
3. **Credentials session** — 2023-03-13. Login validation, sign-in, sign-out. Done in git against a hardcoded credential pair.
4. **Forgot password and users placeholder** — 2023-03-14. Pages exist. Commit message says the users page is still to populate. Forgot-password does not send mail.
5. **Route cleanup** — 2023-03-24. `/` is the login page. Done in git.

No later milestone is written in the repository.

## Dependencies known from the repo

| Dependency | Evidence |
|---|---|
| Next.js 13.2.3, React 18.2.0, TypeScript 4.9.5 | `package.json` |
| MUI 5, Emotion 11, Formik 2, next-auth 4 | `package.json` |
| Google Fonts stylesheet (Roboto) | `pages/_document.tsx` |
| SonarQube | `bitbucket-pipelines.yml`, `sonar-project.properties`. Host and token are Bitbucket variables `SONAR_HOST_URL` and `SONAR_TOKEN` |
| Silicon Overdrive website | Copyright link to `https://www.overdrive.co.za/` |

Node version, package manager, and where the app is hosted are **Unknown / Requires Confirmation**. The README tells a developer to run `npm run dev`, `yarn dev`, or `pnpm dev` and open `http://localhost:3000`. That text is the create-next-app template.

## Current status

**Dormant scaffold.** The default branch matches the task's recorded tip (`96fd3b0`, 2023-03-24) and has not moved since. Signup, forgot password, and the users page are unfinished in the code. The only authentication check is a hardcoded email/password comparison inside the NextAuth credentials provider. The password value is not copied into this documentation.

Whether anyone still runs this app, and whether it was replaced by another repository, is **Unknown / Requires Confirmation**.
