Inspiration

We came up with the idea to create Aggie Alert because recently, during one of the biggest events in Davis, an unfortunate incident occurred involving a shooting where a few people were injured. Many attendees were unaware of the situation as it unfolded. With Aggie Alert, students and Davis residents can post real-time alerts about potential dangers happening in the area, helping others stay informed, avoid the scene, and prevent further harm. As students, we often hear about suspicious incidents or natural disasters after they happen—usually through scattered group chats or delayed emails. We wanted to create something more immediate and community-driven. Aggie Alert was born out of the desire to build a platform that empowers students to look out for each other in real time—whether it’s a suspicious situation near campus or a fast-moving wildfire nearby.

What it does

Aggie Alert informs users (people who have verified accounts) of potential dangers in Davis. It also allows them to make real-time posts and alert others about real-time incidents as they occur. This two-way communication creates a dynamic and responsive safety system created by the people, for the people. It allows others to upvote or comment on reports to boost visibility. Automatically flags high-upvote reports (e.g., 30+ votes) for admin review. Also, displays real-time natural disasters (earthquakes, floods, etc.) within 50 miles of Davis using live data from:

  • USGS (earthquakes)
  • FEMA (federal disaster declarations)
  • NWS (weather alerts)

How we built it

We used HTML, CSS, and JavaScript for the front-end and used Flask + Flask-SQLAlchemy for back-end. We also used PostgreSQL for database and user log-in information and used USGS Earthquake API, FEMA Disaster Declarations, and National Weather Service Alerts for the APIs alerting disasters within Davis. When the users post reports, those reports are to be stored in database and front-end will fetch and display them. Lastly votes and comments are update instantly using fetch calls as well.

Challenges we ran into

We had difficulties combining external APIs with different structures and filtering logic and handling CORS issues while communicating between frontend and backend. We also wanted to ensure the site felt professional rather than too playful for a safety app. There were difficulties building a voting system that’s responsive and prevents abuse as well as creating a structure that allows anonymous reports but still supports trust and moderation. Last but not least, we have faced multiple issues of merge conflicts with teammates on github.

Accomplishments that we're proud of

We feel that we have successfully built a working safety web app from scratch with real-time disaster integration and created a clean UX that makes reporting and browsing feel intuitive. We believe we've succeeded in integrating multiple government APIs and displayed their data dynamically.

What we learned

We learned how to architect full-stack apps using Flask, PostgreSQL, and JS as well as API integration. We learned how to balance design and functionality for sensitive content and how to write scalable routes, modularize components, and work with community input logic (comments, upvotes).

What's next for Aggie Alert

To further improve Aggie Alert we want to add real-time notifications (e.g., SMS, push alerts) when disasters or flagged posts occur nearby. We also want to implement user authentication, allowing trusted reporters and moderation. We also hope to partner up with campus safety teams or police to share anonymized trends as well as expanding our web application to other campuses or communities!

Share this project:

Updates