About the project

ProxySentry is a real-time disaster alert platform that monitors global disaster events and notifies users when a threat occurs within their defined area. It helps people receive timely safety alerts through multiple communication channels like email and SMS.

Inspiration

Natural disasters can develop quickly, and people often do not receive relevant information early enough. We wanted to build a system that could automatically monitor disaster events and deliver targeted alerts to people who may be affected, helping them make faster and more informed decisions.

What it does

ProxySentry monitors real-time disaster data, calculates the distance between disaster events and users, and determines whether users fall within a configured alert radius. When a user may be affected by a disaster, the system automatically sends an urgent notification through available communication channels such as email and SMS.

How we built it

We built ProxySentry using a microservices architecture with Java and Spring Boot. The platform consumes disaster data from NASA's EONET API, processes events through the core alert service, and uses Redis to cache disaster events. Apache Kafka is used for event-driven communication between services, while dedicated notification services handle email and SMS delivery. The services are containerized using Docker, allowing the system to be deployed and scaled more easily.

Challenges I ran into

One of our biggest challenges was designing a reliable system for processing real-time disaster events and determining which users should receive alerts. I also faced challenges integrating external APIs and communication providers, handling message delivery failures, and managing communication between multiple microservices. Another challenge was designing the system so that new notification channels could be added without significantly changing the core alerting logic.

Accomplishments that we're proud of

I am proud of building a complete end-to-end disaster alert pipeline capable of ingesting real-time disaster data, processing events based on geographical proximity, caching frequently accessed data, communicating asynchronously between microservices, and delivering alerts through multiple channels.

What I learned

Through this project, I gained practical experience designing distributed systems and microservice architectures. Learned more about event-driven communication, Kafka, Redis caching, external API integration, asynchronous processing, and reliable notification delivery. I also learned that building a real-time system is not only about processing data quickly but also about handling failures, preventing duplicate notifications, and creating an architecture that remains maintainable as the system grows.

What's next for ProxySentry

Our next steps are to improve the accuracy and speed of disaster detection, add more notification channels such as push notifications, improve geospatial filtering, and introduce user-configurable alert preferences. We also plan to integrate more disaster data sources, improve system observability, and deploy ProxySentry to a cloud environment so it can reliably serve users at a larger scale.

Built With

Share this project:

Updates