💡 Inspiration
Public transit in the U.S. has grown increasingly unsafe, especially late at night. Many riders feel uneasy on the subway and resort to costly alternatives like Ubers. Cop Or Not aims to restore confidence in public transit, starting with the MBTA, by giving users real-time insight into police presence at nearby stations. Through community reports, riders can make informed decisions and help others stay safe.
⚙️ How It Works
The app is built with the MERN stack. The frontend, developed in React Native + Expo with TypeScript, uses React Native Maps and Expo Router for navigation. The backend- Node.js + Express.js- serves a RESTful API connected to a MongoDB database optimized for location-based queries. The entire system is containerized with Docker Compose, separating the frontend and backend. Real-time MBTA data powers live map updates and reporting, making it a community-driven, cross-platform safety tool.
🚧 Challenges
Our biggest hurdle was integrating the frontend and backend for seamless functionality. Mapping caused cross-platform issues, requiring careful handling of API calls and UI management. We ultimately used MBTA polyline data to accurately render subway routes and combine all parts of the stack into one cohesive system.
🏆 Accomplishments
We’re proud to have built a working MVP with core features in just a weekend. It was our first time deploying with Docker, and it proved crucial for collaboration between teams. Starting with strong design direction helped us divide work efficiently, and we learned a lot about coordination and communication between frontend and backend development.
🚀 What’s Next
We’d love to see people actually use Cop Or Not to plan safer commutes. We’re passionate about improving public transit. Not just for convenience, but for its environmental impact, and plan to refine existing features and implement new ones based on user feedback.
Built With
- docker
- express.js
- figma
- github
- mbta
- mongodb
- node.js
- python
- reactnative
- typescript

Log in or sign up for Devpost to join the conversation.