Winfra is a civic-focused web application designed to rebuild communities by making it easier to report, track, and resolve infrastructure issues. I worked on both the frontend and backend of the project, focusing on creating a seamless user experience while ensuring robust system design.
New York City residents deal with aging and failing infrastructure every day. Broken sidewalks, potholes, and malfunctioning public facilities disrupt daily life, yet there is no centralized way for residents to report issues. Winfra bridges this gap with a digital platform that combines reporting, mapping, and direct communication with representatives.
Our solution was to design a full-stack web application that integrates real-time interaction, dynamic mapping, and community engagement. The platform intends to connect the community while streamlining the process of solving infrastructure issues.
The frontend of Winfra was implemented with HTML5, CSS, and JavaScript. I built the main user interface for creating posts, viewing comments, and interacting with infrastructure reports. Key parts of the frontend included:
Leaflet.js library, I
connected map tiles with live data so users could pin infrastructure issues and instantly
see them plotted in real-time.
The backend was built with Python and exposed a REST API to handle all client requests. I helped design and implement the main API endpoints to create, read, update, and delete (CRUD) posts and comments. Core backend responsibilities included:
Winfra was designed not only to meet functional goals for community reporting but also to follow non-functional standards that ensure scalability, usability, and security. These requirements directly influenced our database structure, API design, and interface development.
The class diagram defined the three main entities in Winfra: User, Post, and Comment. Each user could create posts and comments, while posts were linked to specific geolocations. This normalized structure allowed efficient queries and smooth integration with the frontend.
Our layered system architecture consisted of a frontend (HTML, CSS, JavaScript, Leaflet) that handled user interaction, a backend (Python REST API) that processed requests, and a PostgreSQL database for storing users, posts, and geospatial data. This separation kept the system modular, scalable, and easier to maintain.
The interface diagram highlighted how data flowed through the system. The web client made requests for posts, comments, and map data. The backend serviced those requests, communicated with the database, and returned structured JSON data. Leaflet rendered spatial data on the map, while the frontend displayed posts and comments in sync with real-time updates.
The next phase of Winfra would involve migrating the database to cloud hosting for scalability, implementing threaded comment replies, adding push notifications for infrastructure updates, and partnering with contractors who could take action on reports submitted through the platform.
View the GitHub repository