FixItNow is a full-stack household repair assistant with authentication, persistent diagnosis history, image uploads, and optional Gemini multimodal diagnosis.
Requirements: Node.js 20+
npm ci
cp .env.example .envSet GEMINI_API_KEY and a strong JWT_SECRET in .env, then:
npm startOpen http://localhost:3000.
Health check: http://localhost:3000/health
This repo includes render.yaml.
- Push the project to GitHub.
- In Render, create a new Blueprint and select the repository.
- Render will use the included Node build/start commands and create a persistent disk at
/var/data. - Set the secret
GEMINI_API_KEYin Render's environment settings. JWT_SECRETis generated by Render.- Deploy and use the generated HTTPS URL.
The persistent disk keeps SQLite and uploaded images across deploys/restarts. For horizontal scaling or a high-traffic public product, move the database to PostgreSQL and images to object storage.
docker build -t fixitnow .
docker run --rm -p 3000:3000 --env-file .env -v "$PWD/data:/app/data" fixitnowBrowser → /api/diagnose → server → Gemini → structured JSON → SQLite → browser.
The Gemini API key is never sent to browser JavaScript. If Gemini is unavailable, FixItNow falls back to built-in safety-first rules.
The AI is intentionally conservative. It should not instruct users to open live electrical wiring, gas systems, sealed refrigerant systems, damaged batteries, or other hazardous internals.
The Cannot GET / message means Render is running a server that does not contain the frontend route/files. Use the files in this ZIP as the complete repository contents.
Render settings:
- Root Directory: leave empty (repository root)
- Build Command:
npm install - Start Command:
npm start - Health Check Path:
/health
After replacing the GitHub repository contents, trigger a new Render deploy. Verify:
/healthreturns JSON with"ok": trueand"frontend": true/__fixitnow-versionreturns"version": "1.0.1"/opens the FixItNow website
Do not put the Gemini API key in the frontend. Set it only in Render Environment as GEMINI_API_KEY.
- Structured AI diagnosis: evidence, likely causes, safe steps, escalation, cost and time.
- Safety-focused Gemini prompt with conservative uncertainty handling.
- Rich diagnosis result UI and useful pre-diagnosis guidance.
- Creator footer with LinkedIn, GitHub and email links.
- Existing SQLite history preserved; new diagnosis fields are added automatically on startup.