What Inspired Us
Our inspiration for this project came from observing the everyday challenges faced in our community and imagining a way technology could bridge the gaps. The idea of combining technology to bring communities together around projects like cleanups, events, social initiatives, and reporting issues felt like the perfect way to foster collective action and responsibility. As a team, we discussed various social issues and zeroed in on an idea we felt passionate about: building a platform that connects like-minded individuals to work on local community improvements. This was inspired by the desire to see our neighborhoods flourish and our belief in the power of collective action.
What It Does
Our platform offers several key features aimed at empowering communities:
- Community Projects: Individuals can join or create projects to tackle specific neighborhood issues—like cleanups, awareness drives, or social initiatives.
- Issue Reporting: Users can report issues in their area (like potholes, broken streetlights, or littering) and work with others to resolve them.
- Events and Crowdsourcing: Community events can be organized and promoted through the app, while fundraising features allow for support in financing these initiatives.
- Real-time Collaboration: The app provides real-time updates, allowing community members to join and leave projects, comment on initiatives, and engage in meaningful discussions seamlessly.
- Gamified Rewards: To encourage participation, users earn points and badges for engaging in projects, reporting issues, and contributing to community initiatives.
How We Built It
The project was built with a React Native frontend (using Expo) for a seamless cross-platform experience, paired with a Node.js and Express backend, leveraging Prisma ORM for database management. We used MongoDB Atlas as our primary database to store user, community, and project data. The backend was deployed using Railway, and the entire infrastructure was designed to be scalable and easy to deploy, utilizing efficient API requests to synchronize data across different components of the app.
Challenges We Faced
Debugging App Crashes in Production: A major hurdle was debugging app crashes. While everything ran perfectly in the Expo development environment, we faced crashes with the production APK. By using Android Studio's Logcat, we identified errors that were being logged, leading to crashes after launch.
Backend Deployment Compatibility: Ensuring compatibility between the backend and the Expo frontend required managing different folder structures in a single GitHub repository. This involved configuring the deployment platform and project files to support deployment smoothly.
Real-time Data Synchronization: Since users could join and leave communities in real-time, we needed to synchronize user data to reflect these changes without degrading the app's performance. We solved this by using React hooks and context for efficient state management, combined with optimized API calls to minimize redundant data fetching.
What's Next for CityFix
Enhanced Community Features: We plan to add more ways for users to interact within communities, such as polls, direct messaging, and collaborative event planning features.
Location-based Smart Alerts: Users will receive smart alerts for nearby events or issues based on their current location, encouraging spontaneous involvement.
Deeper Gamification: Introducing earned points to buy vouchers, community challenges, and seasonal events to motivate users through friendly competition.
Partnership with NGOs: Partnering with local NGOs to provide more resources for community projects and create a more meaningful impact.
Local Authority Dashboard: We plan to add a dashboard for local government authorities to see open issues that require their intervention.
AI-driven Insights: We envision integrating AI to provide insights, such as identifying priority areas for community projects based on user reports or suggesting initiatives based on trending issues.
We're excited about where this journey will take us next and the positive impact this app can have on communities worldwide. By harnessing the power of technology and collective action, we believe we can make a significant difference in making our neighborhoods more connected, proactive, and sustainable.
Final Thoughts
Despite the challenges, building this project was an immensely rewarding experience. It helped us grow our technical skills in full-stack development, from backend API design to mobile app development and deployment. More importantly, it showed us how technology can be used to empower local communities, motivate people to take ownership of local issues, and come together to create a more sustainable environment.
Built With
- expo.io
- express.js
- firebase
- google-maps
- mongodb-atlas
- nativewind
- prismaorm
- railway
- react-native
- typescript
- zustand
Log in or sign up for Devpost to join the conversation.