Skip to content

Add Node.js MVP app, docs, and stable smoke test#1

Draft
Nyco wants to merge 1 commit intomasterfrom
codex/design-and-code-lean-storytelling-app
Draft

Add Node.js MVP app, docs, and stable smoke test#1
Nyco wants to merge 1 commit intomasterfrom
codex/design-and-code-lean-storytelling-app

Conversation

@Nyco
Copy link
Owner

@Nyco Nyco commented Feb 12, 2026

Motivation

  • Provide a minimal, secure Lean Storytelling web app so the repository can be run locally and reviewed as an MVP.
  • Improve run/deploy guidance and make an automated end-to-end smoke test reliable for repeated CI/local runs.

Description

  • Add a small Node.js web application in server.js with email-based account creation, secure random password generation, password hashing, password reset with short-lived single-use tokens, CSRF protection, session handling, and account destruction.
  • Implement an authenticated 3-step storytelling wizard and story rendering with per-user persistence to data.json, plus a hidden feature-demand click-tracking API at /_internal/feature-demand.
  • Add package.json with start, check, and test scripts, a README update with quickstart and MVP notes, and docs/APP_RUN_DEPLOY.md with run/test/deploy instructions.
  • Add .gitignore and a repeatable end-to-end smoke test script scripts/smoke-test.mjs, and harden that smoke test to use a unique timestamped email per run to avoid collisions.

Testing

  • Ran npm run check which performs node --check server.js, and it completed with no syntax errors.
  • Ran npm test (the E2E smoke test) and it passed after the smoke test was made idempotent (unique email); the test starts the server, registers a user, extracts the generated password, logs in, and validates the authenticated dashboard.
  • The smoke test was iterated locally: it initially failed to extract the password when reusing a fixed email, and then passed after switching to a timestamped email to ensure idempotency.

Codex Task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant