diff --git a/README.md b/README.md index b95e09b..063ca65 100644 --- a/README.md +++ b/README.md @@ -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.