README.md · .env.example · public/index.html
The outcome comes first.
A visitor submits a project enquiry. The owner retrieves it, prepares a draft, and decides the next action. That is the entire first workflow. It does not send email, quote a price, or manage a customer account.
This course uses a complete working reference so you can inspect a result before changing it. Download the source kit and extract it. You need Node.js 22.22 or newer, a terminal, and an editor. Local practice needs no API key or npm dependencies.
Get the reference running.
Open a terminal inside the extracted enquiry-assistant folder. Copy the environment example, generate a random operator password, and paste that value after ADMIN_PASSWORD= in your private .env file.
cp .env.example .env
node -e "console.log(require('node:crypto').randomBytes(24).toString('hex'))"
npm start
On Windows PowerShell, use Copy-Item .env.example .env for the copy step. Open http://127.0.0.1:3000/. The operator inbox is /admin/ on the same address. Use fictional details. The generated password belongs in your environment file, never a public page or a shared prompt.
Trace one enquiry.
Submit a sample request, then sign in as the operator. Read the original alongside the receipt ID. Look at public/app.js for the browser request, server.mjs for the route, and store.mjs for the saved record. Follow the data before asking a coding assistant to add features.
Write three sample requests: a clear workflow problem, a message missing timing and budget, and a broken-form report. Name the fields the reviewer actually needs. Keep the first improvement small: add an optional company field and carry it from form to validation to the inbox.
Prove it before moving on.
- The local form and operator login work without an AI key.
- You can point to the file that stores the enquiry.
- Your scope says explicitly that this app sends no email.
Use these as checks in your own app. This page does not store course progress.