No description
Find a file
2026-01-13 16:29:44 +01:00
backend Cargo: Update dependencies 2025-12-26 14:04:44 -05:00
frontend Add a placeholder frontend for now 2026-01-13 16:29:44 +01:00
compose.yml Prepare for an eventual frontend 2025-12-16 19:48:22 +01:00
LICENSE Create LICENSE 2025-10-06 12:05:51 +02:00
README.md Prepare for an eventual frontend 2025-12-16 19:48:22 +01:00

City Portal - A STEAM Club Project

Note

Everything described underneath is the theoretical goal of the project - certainly not the state it's in, and probably not the state it will ever be in...


Imagine, in the city of the future: a single, unified digital layer connecting every source of urban knowledge. City Portal is that layer - an open, extensible platform where all data, all events, all locations are accessible in one place.

City Portal exposes a GraphQL API that provides free read access to the citys datasets - from transportation networks to local events, from environmental sensors to cultural archives. Anyone can build on it: dashboards, analytics tools, or public displays that bring the city to life.

Certain data domains (e.g. weather, utilities, public safety) are writable only by authorized city devices, ensuring authenticity to maintain the City Portal's integrity.

Beyond data aggregation, City Portal aims to become a platform for experimentation. Students, researchers, artists, and engineers can collaborate through the same interface to:

  • Build interactive maps, visualizing live data feeds
  • Integrate IoT sensors and public devices
  • Run simulations and predictive models
  • Develop mobile or AR applications using open datasets
  • Create educational experiences around real urban systems

The project promotes STEAM learning by mixing science, technology, engineering, art, and mathematics into one practical challenge: making cities more understandable, efficient, and inclusive through data.

City Portal is fully open source, community-driven, and designed for adaptability. Each deployment in a different city would form part of a broader network of civic APIs - a group of connected cities, able to exchange verified data to form a digital ecosystem of urban knowledge.

The main mission of City Portal is to be a framework for digital citizenship, where information is treated as a shared resource and every resident, developer, or policymaker can take part in shaping the citys future.

Run locally

Use docker compose or podman compose at the project root. Then, cd into backend/ and type cargo run. Cargo is not currently part of the compose as it has to recompile everything every time, which is a massive pain.