Before submitting
Bug summary
The README's Environment Variables section documents 11 required backend variables (PORT, MONGO_URI, JWT_SECRET, JWT_EXPIRES_IN, GEMINI_API_KEY, CLIENT_URL, NODE_ENV, SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS), all marked ✅ Required. However, the README's own Template (server/.env.example) code block shows only: PORT= MONGO_URI= This is a direct contradiction inside the same document. The Backend Setup section then instructs contributors to run cp .env.example .env and "fill in all required variables" — but a contributor following this literally will only see 2 of the 11 fields to fill in. Critically, the README also states: "Startup validation: config/env.js checks for all required variables at startup and throws immediately if any are missing." This means any new contributor who copies the incomplete .env.example, fills in the two visible fields, and runs node server.js will hit an immediate, confusing startup crash with no indication of which of the remaining 9 variables they're missing unless they reverse-engineer it from config/env.js source or the README's separate table.
Steps to reproduce
- Update server/.env.example to include placeholder keys for all 11 documented variables (empty values or clearly-marked dummy placeholders, e.g. JWT_SECRET=your_jwt_secret_here).
- Add a one-line inline comment above each variable indicating where to obtain it (e.g., # Get from https://aistudio.google.com/ above GEMINI_API_KEY=).
3, Update the README's "Template" code block to match the corrected .env.example exactly, so the two never drift apart again.
- Cross-check frontend/.env documentation similarly (currently only documents VITE_API_BASE_URL, which does appear consistent — good, but worth a final pass).
Expected behavior
Impact
-- Blocks the very first "does it even run" step for every new GSSoC contributor onto this project.
-- Actively contradicts the project's own excellent documentation standard (this README is otherwise exceptionally thorough), making this a jarring, easily-fixed inconsistency.
-- Wastes contributor time debugging a throw in config/env.js that a complete .env.example would have prevented entirely.
Actual behavior
Acceptance Criteria
server/.env.example contains all 11 documented variables with clear placeholder values
README's "Template" section is updated to match exactly
Fresh clone → cp .env.example .env → fill placeholders → node server.js succeeds without config/env.js throwing
No discrepancy remains between the documented table and the actual template file
Screenshots or recordings
No response
Browser and device information
Browser:
Browser version:
Operating system:
Device:
Screen size/resolution:
Additional context
No response
Before submitting
Bug summary
The README's Environment Variables section documents 11 required backend variables (PORT, MONGO_URI, JWT_SECRET, JWT_EXPIRES_IN, GEMINI_API_KEY, CLIENT_URL, NODE_ENV, SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS), all marked ✅ Required. However, the README's own Template (server/.env.example) code block shows only: PORT= MONGO_URI= This is a direct contradiction inside the same document. The Backend Setup section then instructs contributors to run cp .env.example .env and "fill in all required variables" — but a contributor following this literally will only see 2 of the 11 fields to fill in. Critically, the README also states: "Startup validation: config/env.js checks for all required variables at startup and throws immediately if any are missing." This means any new contributor who copies the incomplete .env.example, fills in the two visible fields, and runs node server.js will hit an immediate, confusing startup crash with no indication of which of the remaining 9 variables they're missing unless they reverse-engineer it from config/env.js source or the README's separate table.
Steps to reproduce
3, Update the README's "Template" code block to match the corrected .env.example exactly, so the two never drift apart again.
Expected behavior
Impact
-- Blocks the very first "does it even run" step for every new GSSoC contributor onto this project.
-- Actively contradicts the project's own excellent documentation standard (this README is otherwise exceptionally thorough), making this a jarring, easily-fixed inconsistency.
-- Wastes contributor time debugging a throw in config/env.js that a complete .env.example would have prevented entirely.
Actual behavior
Acceptance Criteria
server/.env.example contains all 11 documented variables with clear placeholder values
README's "Template" section is updated to match exactly
Fresh clone → cp .env.example .env → fill placeholders → node server.js succeeds without config/env.js throwing
No discrepancy remains between the documented table and the actual template file
Screenshots or recordings
No response
Browser and device information
Browser:
Browser version:
Operating system:
Device:
Screen size/resolution:
Additional context
No response