Skip to content

FixiePixie is a one-tap 311-style reporter: snap a photo, we grab GPS, reverse-geocode your city, and route the report to the correct department. Supports Google sign-in and sending from your Gmail. (Non-emergency only.)

Notifications You must be signed in to change notification settings

cilantro011/FixiePixie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FixiePixie

Snap a photo, auto-grab GPS, pick an issue, and email it to the right city inbox.

FixiePixie

Snap a photo, auto-grab GPS, pick an issue, and email it to the right city inbox.

Features

  • 📷 Take or upload a photo (attached to the report)
  • 📍 Auto-detect GPS and reverse-geocode city / ZIP using Nominatim (OpenStreetMap)
  • 📨 Send the report by email with a Google Maps link (Gmail client + SMTP fallback)
  • 🔐 Optional Google sign-in (JWT issued by the API)

Demo

Login with Google

Report screen

Email received

Quick start

Requirements

  • Node.js 18+ and npm
  1. Start the API
cd api
cp .env.example .env   # or create .env from the snippet below
npm install
npm run dev  
  1. Start the Web app
cd web~
cp .env.example .env   # or create .env from the snippet below
npm install
npm run dev   

Environment examples

api/.env (minimal)

PORT=3000
GEOCODER_USER_AGENT=FixiePixie/1.0 (contact@example.com)

# SMTP fallback (uses a Gmail App Password)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your.app@gmail.com
SMTP_PASS=16-char-app-password
SENDER_EMAIL=your.app@gmail.com
SENDER_NAME=FixiePixie

# Optional helpers
# BCC_EMAIL=you@gmail.com
# RECIPIENT_OVERRIDE=you+test@gmail.com

web~/.env (minimal)

VITE_API_URL=http://localhost:3000
VITE_GOOGLE_CLIENT_ID=your-web-client-id.apps.googleusercontent.com

Tech stack

  • Web: Vite + React
  • API: Node.js + Express
  • Auth: Google Identity Services (frontend) + simple JWT backend
  • Mail: Gmail API (client) + Nodemailer SMTP (server fallback)
  • Geo: Nominatim (OpenStreetMap) reverse geocoding

Development tips

  • Keep secrets out of source control. Use .env locally and add .env to .gitignore.

License

This project is provided as-is for demonstration and local use.

About

FixiePixie is a one-tap 311-style reporter: snap a photo, we grab GPS, reverse-geocode your city, and route the report to the correct department. Supports Google sign-in and sending from your Gmail. (Non-emergency only.)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published