Skip to content

Repository files navigation

FixItNow — production-ready Gemini repair assistant

FixItNow is a full-stack household repair assistant with authentication, persistent diagnosis history, image uploads, and optional Gemini multimodal diagnosis.

Local setup

Requirements: Node.js 20+

npm ci
cp .env.example .env

Set GEMINI_API_KEY and a strong JWT_SECRET in .env, then:

npm start

Open http://localhost:3000.

Health check: http://localhost:3000/health

Production deployment — Render

This repo includes render.yaml.

  1. Push the project to GitHub.
  2. In Render, create a new Blueprint and select the repository.
  3. Render will use the included Node build/start commands and create a persistent disk at /var/data.
  4. Set the secret GEMINI_API_KEY in Render's environment settings.
  5. JWT_SECRET is generated by Render.
  6. 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

docker build -t fixitnow .
docker run --rm -p 3000:3000 --env-file .env -v "$PWD/data:/app/data" fixitnow

AI flow

Browser → /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.

Safety

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.

IMPORTANT: Render deployment checklist

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:

  • /health returns JSON with "ok": true and "frontend": true
  • /__fixitnow-version returns "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.

2.0 diagnosis improvements

  • 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.

About

Full-stack AI appliance diagnosis assistant with safe guidance, image analysis, authentication, and persistent history.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages