Inspiration
The idea for Indy Watch Dogs was born out of a deep concern for personal and community security in an increasingly unpredictable world. Witnessing news of natural disasters, accidents, and personal emergencies, we realized the need for a platform that could instantly connect individuals with help and resources. Our goal was to create a tool that empowers users to seek assistance or alert others during critical situations, fostering a sense of safety and community support.
What it does
Indy Watch Dogs is a user-friendly bot designed to enhance personal and community security. It allows users to send emergency alerts, access safety resources, and communicate with local authorities or loved ones during crises. Whether it's a medical emergency, a natural disaster, or a safety concern, the bot acts as a reliable companion, ensuring help is just a message away. It offers multilingual support so people need not worry about language in case of an emergency.
How We Built It
We built this project using a powerful and flexible tech stack optimized for real-time emergency response, intelligent interaction, and scalable data storage. Here's a detailed overview of each component:
🐍 Python
Python was the primary language used for the entire backend and bot logic. Its simplicity and vast library support made it ideal for building a clean and maintainable codebase.
⚡ FastAPI + Uvicorn
- FastAPI was used to build the RESTful API. It provides high performance, built-in support for asynchronous requests, and rapid development.
- Uvicorn is the ASGI server used to run the FastAPI app, enabling non-blocking, concurrent API request handling.
📦 Pydantic Models
We used Pydantic to define data models and ensure strict input/output validation in the FastAPI app. This guarantees data consistency, improves error handling, and enhances the reliability of request/response structures.
📄 Swagger UI (Auto-Generated API Docs)
FastAPI automatically generates interactive documentation via Swagger UI. This feature is extremely useful for testing, debugging, and understanding available endpoints, request formats, and response types — all accessible at /docs.
🤖 Telegram Bot API
The Telegram Bot API offers a lightweight and user-friendly interface for real-time interactions. Users can:
- Receive weather alerts
- Ask safety-related queries
- Upload/download safety-related media
- Interact with an intelligent assistant directly from Telegram
🌤️ OpenWeather API
The OpenWeather API enables real-time weather monitoring and forecast retrieval. It is used to:
- Detect extreme or dangerous weather events
- Trigger localized safety alerts
- Inform users proactively about changing conditions
🧠 Mistral AI – Open Source Language Models
We integrated open-source LLMs from Mistral AI to enhance the bot’s intelligence:
- mistral-small-2503: Used for quick, low-compute replies such as FAQs and simple safety responses.
- mistral-medium: Used for more complex, context-aware questions (e.g., interpreting weather data and suggesting actions).
API's were used to call these models within telegram bot environment.
🛢️ Supabase (Database + Storage)
Supabase serves as our backend-as-a-service platform:
- Database: PostgreSQL is used to store user data and incidents reports.
- Storage: Used to manage safety-related media like images submitted by user for incident reporting.
✅ Testing & Resilience
We tested all modules under simulated emergency conditions to ensure:
- Rapid response with minimal latency
- Graceful handling of API failures or delays
- Smooth coordination between bot, APIs, and database
📂 Explore the complete codebase and learn more about the implementation and local setup
🔗 github.com/gharsh24/civil-safety
Challenges we ran into
Building Indy Watch Dogs tested our resilience and teamwork with real-world challenges. Time management was tough, especially with team members in different time zones, making scheduling difficult during critical phases like demo prep for a simulated earthquake response. Collaboration suffered due to miscommunication on task priorities, such as confusion over testing user notifications during a wildfire alert drill, causing delays. Communication gaps led to duplicated efforts early on, like overlapping work on the Telegram bot interface. Technically, integrating the OpenWeather API showed data discrepancies for remote areas during a cyclone simulation, needing quick fallback solutions. Ensuring user data privacy in emergencies like house fires also required careful ethical handling and encryption.
🏆 Accomplishments That We're Proud Of
We’re incredibly proud of building a platform that not only works reliably but has the potential to save lives and strengthen community resilience. Here are some key accomplishments that stood out:
🚨 Real-Time Emergency Alerts
Successfully integrated the OpenWeather API to deliver accurate, location-based weather alerts. These alerts are sent to users instantly during critical conditions like storms or floods — helping them stay safe and informed.
⚡ High Responsiveness Under Load
Our bot and API remain highly responsive even under heavy usage, ensuring users can access safety information without delay during emergencies.
🌐 Multilingual Language Support
We added multilingual support using open-source LLMs, allowing the system to assist users in multiple languages and making safety information more accessible across diverse communities.
📲 Telegram Integration for Cross-Device Coverage
By leveraging the Telegram Bot API, we made the platform available on all devices — including smartphones, tablets, desktops, and even smartwatches — ensuring users receive alerts and guidance anytime, anywhere.
🧠 Intelligent Query Handling
Integrated Mistral-small-2503 and Mistral-medium models to handle both simple and complex user queries — from FAQs to context-aware safety suggestions — all served in real-time through a custom inference API.
📄 Developer-Friendly API
Thanks to FastAPI and Pydantic, we built a clean and structured API with automatic Swagger UI documentation, making development, testing, and debugging smooth and intuitive.
🛢️ Scalable Backend with Supabase
Used Supabase for scalable database and media storage — allowing us to store user logs, weather history, and images in a secure, reliable, and easily queryable manner.
These achievements represent our commitment to building something that’s not just technically robust, but socially impactful and accessible to everyone.
What we learned
This project taught us invaluable lessons about the importance of user-centric design, especially for tools meant for high-stress situations. We gained deeper insights into building scalable bots with the Telegram Bot API and handling asynchronous requests efficiently using FastAPI and Uvicorn. We also learned the complexities of integrating external APIs like OpenWeather and managing real-time data accuracy. Collaborating as a team under tight deadlines, especially while addressing real-life incident simulations, honed our problem-solving and project management skills, reinforcing the value of adaptability and clear communication.
What's next for Indy Watch Dog
The journey for Indy Watch Dogs is just beginning. In the near future, we plan to expand the platform by integrating AI-driven risk assessment tools to predict and alert users about potential dangers in their vicinity. We also aim to partner with more local authorities and emergency services to broaden our reach and impact.
Built With
- fastapi
- openweather
- pydantic
- python:
- supabase
- telegram
- uvicorn
Log in or sign up for Devpost to join the conversation.