Inspiration
Every stray had a street. This is their record.
Bangalore has 300,000 community dogs. When one dies, the people who fed them — the chai-shop owner, the night guard, the third-floor auntie — mourn alone. The Last Address is a memorial atlas and living care network: every dog mapped, every circle of feeders visible, and a place for anyone to join the people keeping the next one alive.
What it does
A memorial atlas and living care network for Bangalore's 300,000 community dogs. Every dog is mapped — grey markers for the remembered, red for the living. Click any marker to read their story and see the circle of humans who fed them. Ask the Keeper (an AI agent) questions in plain language: who lived here, who feeds them now, write me something for the dog at the temple. Anyone can join a dog's circle or add a new dog they feed to the map.
How we built it
Single static index.html with Leaflet.js for the map. A FastAPI backend handles search against an Elasticsearch ghost-atlas index (semantic + keyword hybrid via semantic_text field) and calls AWS Bedrock (Claude Haiku) to compose fresh memorial passages on demand. Dog circles persist in localStorage. The whole frontend is one file — no build tools, no framework.
Challenges we ran into
Elastic Agent Builder has no public REST API — it's UI-only. We had to build the agent backend from scratch, which meant designing our own tool-routing logic (detect compose intent → search first → call Bedrock only if needed). The bigger challenge was tone: building something about grief and community without tipping into sentimentality.
Accomplishments that we're proud of
The Keeper stays in character — it never invents dogs, always grounds responses in the index. The "join the circle" flow is fully functional and persists. New dogs added via "I feed a dog here" appear as live pulsing markers on the map in real time. The whole thing runs on one HTML file + one Python file.
What we learned
Elasticsearch's semantic_text field handles embeddings automatically — no separate embedding pipeline needed. Designing AI agents with constrained identity (the Keeper as a character, not a chatbot) produces far better UX than a generic assistant. Community care networks don't need a database to feel real — localStorage is enough to demo the concept convincingly.
What's next for Last Address
Open Crawler pipeline scraping Bangalore neighbourhood Facebook groups and shelter death logs to seed new dogs automatically. Geofenced "find the auntie" — every neighbourhood has one person who knows every stray; the atlas makes her findable. Lineage threads (Chinni → Bull is the seed: when a dog dies, the atlas suggests their likely successor by territory + age). Annual tribute published every November 4 — World Animal Welfare Day in India.
Built With
- animal-welfare
- aws-bedrock
- bangalore
- claude-ai
- community
- elastic
- elasticsearch
- fastapi
- javascript
- leaflet.js
- maps
- memorial
- python
- semantic-search
- stray-dogs
Log in or sign up for Devpost to join the conversation.