Make a new, non-AI README (none of the code is AI).

This commit is contained in:
Zeph Levy 2026-03-30 14:18:30 +02:00
parent 81433cee98
commit 319ae13c16

View file

@ -1,47 +1,14 @@
# City Portal - A STEAM Club Project
# City Portal - A STEAM Club Project (incomplete, this README describes the end goal)
> [!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...
*AI note*: the old README used to be AI generated. This is no longer the case, and all the code in this
project is 100% human-written.
---
City portal is a local data aggregator: local data is a term I coined to mean data that only matters to a specific geographical community.
This can range from weather, to events at the local town hall, to transportation. City Portal provides an open and extendable way to use this data,
exposing a GraphQL API that anyone is free to read from, but write access can be restricted.
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.
The City Portal is adaptable to different scenarios: by customizing the different datasets that the server stores and that data can be stored into,
the managers of the Portal can decide what kinds of local data is stored, but still have this data categorized neatly by function.
City Portal exposes a **GraphQL API** that provides **free read access** to the city's 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 city's 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.
Finally, because of its free to read API, the City Portal promotes extension: anyone is free to build ML models, graphs, or visualizations on top
of the Portal.