🏙️ 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.

Built With

Share this project:

Updates