# Project plan — laravelReactjs

Evidence date: 2026-10-10.

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

Inspected revision: `master` at `7e1ef64` (2019-04-05, Jaco Brits, "Test possible code"). The scan-host path `~/projects/sonar_scan/repos/laravelReactjs` was not on this machine. The tree below was read from that git revision. The committed application key is named in the security notes and is not reproduced.

This plan describes what the repository contains. It does not decide what the product should become.

## Product

The current `README.md` is three lines. Its title is **Laravel React Tut**. The only other line is a link to `https://blog.pusher.com/react-laravel-application/`.

`composer.json` still says the package name is `laravel/laravel` and the description is "The Laravel Framework." The welcome page title is "Laravel".

There is no product requirements document in the source repository. There is no prior Silicon Ark folder for this project.

**Unknown / Requires Confirmation:** whether "Laravel React Tut" and that article are the intended product, or a placeholder left on a framework trial. The article itself is not copied into the repository, so its steps are not treated as requirements here.

## Branch reality

| Line | Tip | Date | What it is |
|---|---|---|---|
| `master` (default; `origin/HEAD`) | `7e1ef64` | 2019-04-05 | Only branch |

History:

| Commit | Date | Author | Message | Contents |
|---|---|---|---|---|
| `f2c77b9` | 2019-04-04 | Jaco Brits | Initial commit | Bitbucket's default "edit this README" tutorial only |
| `7e1ef64` | 2019-04-05 | Jaco Brits | Test possible code | Laravel 5.8 application, React preset, empty `Project` and `Task` models, committed `vendor`, and a rewritten README |

No other local or remote branches were present at inspection. History does not show a later release, a `develop` branch, or a removed feature.

**Discrepancy:** the task-creation scan listed `sonar-project.properties` and `sonarqube_scan.bat` at the repository root. Neither file is in git at `7e1ef64`. Provenance: **Unknown** — they may have been untracked files on the scan host.

## Objectives (inferred from the implementation, not from a written plan)

- Serve the Laravel welcome page at `/`.
- Hold a React 16 toolchain and a compiled example component that the welcome page does not mount.
- Store `users` and `password_resets` with the Laravel 5.8 schema, and empty `projects` and `tasks` tables.
- Keep authentication controller classes in the tree without registering their routes.

The README title is the only written objective, and it does not say what the tutorial should produce inside this repository.

## Scope

### In scope of `master`

1. Laravel 5.8 skeleton (`php: ^7.1.3`, `laravel/framework: 5.8.*`).
2. One web route, `GET /`, returning `resources/views/welcome.blade.php`.
3. One API route, `GET /api/user`, behind the `auth:api` middleware.
4. Stock auth controller classes, with no `Auth::routes()` call and no `HomeController`.
5. Eloquent models `App\User`, `App\Project`, and `App\Task`.
6. Migrations for `users`, `password_resets`, `projects`, and `tasks`.
7. React preset sources under `resources/js/`, Laravel Mix config, and compiled `public/js/app.js` and `public/css/app.css`.
8. PHPUnit example tests.
9. Committed `vendor/` and a committed `.env`.

### Out of scope of this repository

- Screens or endpoints that create, edit, list, or relate projects and tasks.
- Login, registration, password reset, and email verification as reachable HTTP routes.
- A home page at `/home`.
- Realtime broadcasting. The app broadcast provider is commented out, and the Echo client is commented out.
- CI, Docker, CodeDeploy, or a SonarQube project file in git.
- `node_modules` (gitignored and not committed).

## System architecture

```text
Browser
  │
  └─ GET /  →  public/index.php  →  routes/web.php  →  welcome.blade.php
                                      (inline CSS, no app.js)

GET /api/user  →  auth:api (token guard)  →  authenticated user JSON
                    schema has no api_token column

MySQL (from .env.example; committed .env matches it)
  users, password_resets, projects, tasks

Not wired:
  Auth controllers, /home, routes/channels.php, Echo/Pusher
```

`server.php` is Laravel's router for the built-in PHP server. `public/.htaccess` and `public/web.config` are the skeleton files for Apache and IIS. Nothing in git selects one of those as the deployed host.

## Major components

| Component | Role | Evidence |
|---|---|---|
| HTTP kernel and `routes/web.php` | Web requests, session, CSRF | `app/Http/Kernel.php`, `routes/web.php` |
| `routes/api.php` | Token-guarded user endpoint | Prefixed `api` by `RouteServiceProvider` |
| Welcome view | Only page a browser is routed to | `resources/views/welcome.blade.php` |
| React example | Compiled component, not mounted by the welcome view | `resources/js/components/Example.js`, `public/js/app.js` |
| User / auth classes | Skeleton account model and controllers | `app/User.php`, `app/Http/Controllers/Auth/` |
| Project and Task | Empty Eloquent models and id/timestamp tables | `app/Project.php`, `app/Task.php`, two 2019-03-29 migrations |
| Config and `.env` | Local MySQL, file session, sync queue, log broadcaster | `config/`, `.env`, `.env.example` |

## Milestones visible in git

1. **2019-04-04 — repository created.** README only. Bitbucket's getting-started text.
2. **2019-04-05 — application dropped in.** Commit message "Test possible code". This is the current tip.

No later milestone is recorded.

## Implementation plan

There is no written implementation plan in the repository. The tree matches a Laravel 5.8 app after the React preset, plus `php artisan make:model` style `Project` and `Task` models with migrations, before columns, relationships, controllers, or React screens were added.

**Inferred** next work, if the README link was the goal, would be whatever that external article describes. That work is not specified in this repository.

## Known dependencies

Runtime, from `composer.json`: PHP `^7.1.3`, `laravel/framework` `5.8.*`, `fideloper/proxy` `^4.0`, `laravel/tinker` `^1.0`.

Frontend, from `package.json` `devDependencies`: React `^16.2.0`, React DOM `^16.2.0`, `@babel/preset-react` `^7.0.0`, Laravel Mix `^4.0.7`, Bootstrap `^4.0.0`, Axios `^0.18`, jQuery, Popper, Lodash, Sass.

Dev-only PHP: PHPUnit `^7.5`, Faker, Mockery, Collision, Whoops, Laravel Dump Server.

Database expected by the committed env files: MySQL on `127.0.0.1:3306`, database name `homestead`. Those files also name Redis, Mailtrap, AWS, and Pusher. No application code calls them. See `technical-documentation.md`.

`vendor/` is committed, so `composer install` is not required to load the PHP tree that was committed. `node_modules/` is not committed.

## Current project status

**Dormant scaffold.** Last commit 2019-04-05. One reachable page (the Laravel welcome screen). Project and task storage exists only as empty tables. Auth, API token login, broadcasting, and the React example are present as framework files and are not connected to a user-facing flow.

**Human confirmation needed:**

- Is this repository still a product, or a 2019 experiment that should stay archived?
- Is the Pusher article the requirements source?
- Should the committed `.env` application key be treated as exposed and rotated?
- Were `sonar-project.properties` and `sonarqube_scan.bat` ever part of this project?
