# Project plan — reactjs-nodejs-tutorial

Evidence date: 2026-10-05.

Source repository: `git@bitbucket.org:overdrive/reactjs-nodejs-tutorial.git`.

Inspected revision: `master` at `1500676cdcf9880c1f9369565bd6fe7683c3342e` (2020-04-20 16:01:27 +0200, JacquesOverdrive, "ini commit"). The scan-host path `~/projects/sonar_scan/repos/reactjs-nodejs-tutorial` was not on this machine. The tree below was read from that git revision.

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

There was no `reactjs-nodejs-tutorial/` directory in Silicon Ark before this set. The source repository's own `README.md` is the upstream Serverless Node.js Starter readme. It was incorporated below where it matches the files, and called out where it does not.

## Product

Three names are in the tree, and they are not the same:

| Name | Where |
|---|---|
| `reactjs-nodejs-tutorial` | Bitbucket repository name |
| Serverless Node.js Starter | `README.md` title. Says it is part of the Serverless Stack guide and is maintained by Anomaly Innovations |
| `notes-app-api` | `package.json` `"name"` and `serverless.yml` `service` |

No React component, React dependency, or `notes` resource is in the files. The only application code is `handler.js`, which exports `hello`. `serverless.yml` does not declare a `functions` block, so that export is not attached to a Lambda function or an HTTP event in this repository.

Provenance: **Implemented** file names and **Documented** README title. Which name is the product name is **Unknown / Requires Confirmation**.

## Branch reality

| Line | Tip | Date | What it is |
|---|---|---|---|
| `master` (only branch; matches `origin/master`) | `1500676` | 2020-04-20 | One commit, by JacquesOverdrive `<jacques@overdrive.co.za>` |

No other local or remote branches were present at inspection. The commit message is `ini commit`. There is no commit body. The last commit is also the task-creation snapshot (`1500676`, 2020-04-20).

Tracked files at that revision:

```text
.gitignore
LICENSE
README.md
env.example
handler.js
package-lock.json
package.json
serverless.yml
tests/handler.test.js
```

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

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

The README states objectives of the upstream starter. This repository does not add its own objective statement.

Documented in `README.md` (upstream starter text):

- Package Lambda functions with Webpack through `serverless-bundle`.
- Allow ES module `import` / `export` in handlers.
- Run API Gateway locally with `serverless offline start`.
- Run unit tests with `npm test`.
- Emit sourcemaps.
- Lint with ESLint through `serverless-bundle`.
- Load stage environment variables from a `.env` file.

What the commit actually contains:

- A `hello` handler that waits one second and returns HTTP 200 with a fixed message.
- A Serverless service named `notes-app-api` with provider settings and plugins, and no functions.
- One Jest-style test that does not read the value `hello` returns.
- An example environment variable that `serverless.yml` does not reference.
- A production dependency `uuid` that no source file imports.

## Scope

### In scope of `master` at `1500676`

1. `handler.js` — exported async function `hello`.
2. `serverless.yml` — service `notes-app-api`, AWS provider, three plugins, individual packaging. No functions, no HTTP events, no IAM, no `environment` block.
3. `tests/handler.test.js` — one test named `hello`.
4. `package.json` and `package-lock.json` — npm manifest and npm v5/v6 lockfile (`lockfileVersion` 1).
5. `env.example` — one sample variable and instructions to copy it to `.env`.
6. `README.md` — upstream starter usage (install, invoke, offline, deploy, test, env, lint).
7. `LICENSE` — MIT, copyright 2017 Anomaly Innovations.
8. `.gitignore` — ignores `node_modules`, `.env`, `env.yml`, `.serverless`, `.webpack`, coverage, and IDE files.

### Out of scope / not in this repository

- Any React application, despite the repository name.
- A notes API, despite the npm and Serverless service name. No routes, models, or persistence.
- A `functions` entry that would deploy `handler.hello`.
- The Serverless Framework CLI itself. It is not a dependency in `package.json`. The README says to install it separately.
- AWS account IDs, a pipeline, Docker, a database, a queue, or an authorizer.
- `sonar-project.properties` and `sonarqube_scan.bat` (listed at task creation, absent from git).
- A `.env` file. `.gitignore` excludes it. Only `env.example` is tracked.

## System shape

```text
Developer machine
  serverless CLI (not vendored) reading serverless.yml
  plugins: serverless-bundle, serverless-offline, serverless-dotenv-plugin
        |
        v
handler.hello(event, context)     # exported, not declared under functions:
        |
        v
HTTP-shaped object { statusCode: 200, body: "<json>" }
after a 1 second timer

README also names an upstream demo:
  GET https://z6pv80ao4l.execute-api.us-east-1.amazonaws.com/dev/hello
That URL is text in README.md. This repo does not contain the API id,
and its serverless.yml stage is prod, not dev.
```

Whether anyone deployed this Bitbucket repository to AWS is **Unknown / Requires Confirmation**. This investigation did not call AWS.

## Major components

| Component | Path | Role at `1500676` |
|---|---|---|
| Handler | `handler.js` | `hello` waits 1s and returns status 200 |
| Service config | `serverless.yml` | Names the service, runtime, region, stage, and plugins. Declares no function |
| Unit test | `tests/handler.test.js` | Imports `hello`. Assertions sit in a callback `hello` never calls |
| Dependencies | `package.json`, `package-lock.json` | `uuid` plus Serverless packaging/offline/dotenv plugins and `aws-sdk` |
| Env sample | `env.example` | `SAMPLE_ENV_VAR`. Not referenced by YAML or JS |
| Upstream readme | `README.md` | Install, invoke, offline, deploy, test, lint, env steps |
| Licence | `LICENSE` | MIT, Anomaly Innovations, 2017 |

## Milestones

There is no written milestone plan. Git history is one commit:

1. 2020-04-20 — `1500676` "ini commit" adds the nine tracked files above. No commit after this date.

## Known dependencies

Versions are the lockfile resolutions at `1500676`. Ranges are from `package.json`.

| Dependency | Range | Locked | Role in this repo |
|---|---|---|---|
| `uuid` | `^7.0.3` | 7.0.3 | Production dependency. No import in `handler.js` or the test |
| `serverless-bundle` | `^1.2.5` | 1.2.5 | Dev. Webpack/Babel packaging and `npm test` (`serverless-bundle test`). README also attributes ESLint and sourcemaps to this plugin |
| `serverless-dotenv-plugin` | `^2.1.1` | 2.1.1 | Dev. Listed in `serverless.yml`. No `${env:...}` reference exists to consume |
| `serverless-offline` | `^5.3.3` | 5.8.0 | Dev. Listed in `serverless.yml`. No HTTP event is declared for it to serve |
| `aws-sdk` | `^2.658.0` | 2.658.0 | Dev. Not imported by `handler.js` or the test |
| Serverless Framework CLI | not in `package.json` | — | README requirement: install the CLI and configure the AWS CLI |

Node runtime pinned in `serverless.yml` is `nodejs12.x`. Whether AWS still accepts that runtime was not checked. **Unknown / Requires Confirmation.**

## Current project status

**Inactive in git since 2020-04-20.** One commit. The tree is an upstream Serverless starter snapshot with the function wiring removed or never added: `hello` exists as a module export, and `serverless.yml` has no `functions` key.

`master` is the only line of work. Whether the README demo URL still responds, and whether Overdrive ever deployed `notes-app-api`, is **Unknown / Requires Confirmation**.

## Open questions

- Whether this repository was meant to be a React tutorial, a notes API, or only a Serverless starter copy.
- Why `serverless.yml` has no `functions` block while `handler.js` and the README both describe `hello`.
- Whether `1500676` was copied from `https://github.com/AnomalyInnovations/serverless-nodejs-starter` and then trimmed. The README, licence, and `package.json` `repository` URL point there. The GitHub history is not in this Bitbucket repository.
- Whether a stack named `notes-app-api` exists in `us-east-1`.
- Why `sonar-project.properties` and `sonarqube_scan.bat` appeared on the scan host and not in git.
- Who the audience was, and whether the snapshot is still wanted.
