🏙️ Urban Equity Analyzer
🌍 Inspiration
We were inspired by a simple but powerful question:
Do all communities have equal access to essential services like hospitals?
In many cities, access to healthcare and public services is unevenly distributed. We wanted to build a project that could use data and algorithms to measure accessibility in a clear, quantitative way.
The idea was to combine urban data with algorithmic thinking to evaluate how fairly resources are distributed across a city.
🧠 What We Learned
This was our first-ever hackathon — and our first real coding collaboration as a team.
We learned:
- How to divide tasks effectively under time pressure
- How to structure code so multiple people can work on it
- How to simplify problems when performance becomes a bottleneck
- That clean, efficient algorithms matter more than “cool” algorithms
Most importantly, we learned that building something together is very different from coding alone.
🏗️ How We Built It
Our goal was to measure how accessible hospitals are from different points in a city.
Initially, we modeled the city as a graph:
- Nodes represented locations
- Edges represented possible paths
- We attempted to compute the shortest path from every node to nearby hospitals using Dijkstra’s algorithm
Formally, for each node $v$, we attempted to compute:
$$ \min_{h \in H} ; d(v, h) $$
Where:
- $H$ is the set of hospitals
- $d(v, h)$ is the shortest path distance
However, this approach had significant performance issues.
🚧 Time Complexity Challenge
Running Dijkstra’s algorithm for many nodes was computationally expensive:
$$ O((V + E) \log V) $$
When repeated across many starting points, execution time exceeded 20 minutes, which was not practical within a hackathon setting.
To optimize, we switched to using Euclidean distance as an approximation:
$$ d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} $$
This dramatically reduced runtime while still providing a meaningful measure of accessibility.
⚙️ Technical Stack
- Python for data processing
- Graph modeling for spatial representation
- Mathematical distance calculations
- Data visualization to communicate results
We structured the project into:
- Data preprocessing
- Distance computation
- Accessibility scoring
- Output visualization
🎯 Challenges We Faced
1️⃣ Algorithmic Performance
Our original path-based solution was too slow. Learning to balance theoretical correctness with practical efficiency was a major lesson.
2️⃣ First-Time Collaboration
This was our first hackathon and our first time building something collaboratively under pressure. Coordinating code, debugging together, and merging ideas was both challenging and fun.
3️⃣ Scope Management
We had ambitious ideas at the beginning, but we had to simplify and focus on delivering a working prototype within the time limit.
🚀 Final Thoughts
Although simple, our project demonstrates how computational thinking can help evaluate real-world inequalities.
More importantly, this hackathon taught us how to:
- Think critically about optimization
- Work effectively as a team
- Build under time pressure
- Turn an abstract social problem into a measurable system
And for our first hackathon, that feels like a big win.
Log in or sign up for Devpost to join the conversation.