Full-stack application that takes a street address or lat/long and returns a comprehensive property profile using Google Maps imagery, AI vision analysis, and geospatial data.
- Frontend: React + Vite, shadcn/ui, Tailwind CSS, react-map-gl, Recharts, TanStack Query
- Backend: Python FastAPI, OpenAI Vision (gpt-4o), SAM2 segmentation, Supabase
- Infrastructure: Docker Compose
- Node.js 20+
- Python 3.13+
- uv (Python package manager)
- Docker (optional)
git clone <repo-url>
cd Arguscp .env.example .env
# Fill in your API keys in .envmake devThis installs all dependencies and starts both the backend (http://localhost:8000) and frontend (http://localhost:5173) in parallel.
Other commands:
| Command | Description |
|---|---|
make dev |
Install deps + start both servers |
make test |
Run backend integration tests |
make check |
Lint, format, typecheck frontend |
make build |
Production build frontend |
docker compose up --build| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend | http://localhost:8000 |
| API Docs | http://localhost:8000/docs |
| Variable | Purpose | Where to get it |
|---|---|---|
GOOGLE_MAPS_API_KEY |
Street View, Satellite imagery, Geocoding | Google Cloud Console |
MAPBOX_API_KEY |
Map display and geocoding in the frontend | Mapbox Account |
OPENAI_API_KEY |
GPT-4o Vision for property image analysis | OpenAI Platform |
SUPABASE_URL |
PostgreSQL database URL | Supabase Dashboard |
SUPABASE_SERVICE_ROLE_KEY |
Supabase service-role key (server-side only) | Supabase Dashboard |
Full property analysis pipeline. Fetches imagery, runs AI analysis, computes isochrones, and finds nearby POIs.
Request:
{
"address": "123 Main St, Toronto, ON",
"lat": 43.6532,
"lng": -79.3832
}Response: Complete property profile including images, AI analysis, and nearby points of interest.
Fetch Street View and Satellite images for a location.
Query parameters: lat, lng, address
Response: URLs or base64-encoded images for the requested location.
Run AI vision analysis on property images.
Request:
{
"images": ["<base64 or URL>"],
"lat": 43.6532,
"lng": -79.3832
}Response: Structured AI analysis of the property (building type, condition, features, etc.).
Find nearby points of interest via OpenStreetMap/Overpass.
Query parameters: lat, lng, radius (metres), category
Response: List of nearby POIs with name, category, and distance.
Health check endpoint.
Response:
{ "status": "ok" }| Source | Purpose | Key required? |
|---|---|---|
| Google Maps Static API | Street View + Satellite imagery | Yes |
| OpenAI Vision API | Property image analysis (gpt-4o) | Yes |
| SAM2 | Image segmentation | No (runs locally) |
| Overpass API / OpenStreetMap | Nearby POIs | No |
| Supabase | PostgreSQL persistence | Yes |
Argus/
├── backend/
│ ├── app/
│ │ ├── __init__.py
│ │ ├── config.py
│ │ ├── models/
│ │ │ ├── __init__.py
│ │ │ └── schemas.py
│ │ └── services/
│ │ └── __init__.py
│ ├── Dockerfile
│ └── pyproject.toml
├── frontend/ # React + Vite app (to be scaffolded)
├── .env.example
├── .gitignore
├── docker-compose.yml
└── README.md