City Planning
What this section is for
City Planning is an interactive aerial map where camps stake out their physical footprint before the event. Camp leads draw their own barrio's placement during the placement phase; everyone else sees the evolving layout live, color-coded by sound zone. Map admins manage the placement lifecycle, upload overlays (site boundary, official zones), and export placements as GeoJSON.
Three entities back this section: CityPlanningSettings (per-year singleton, controls whether barrio placement and container placement are open and holds overlay GeoJSON), CampPolygon (one polygon per camp season), and CampPolygonHistory (append-only audit trail of every save and restore).
![TODO: screenshot — barrio map full-screen view]
Key pages at a glance
- Overview map (
/CityPlanning) — authenticated humans view the live full-screen map, with layer toggles for containers and barrio zones and a measuring tool. Read-only. - Barrio map (
/CityPlanning/BarrioMap) — where placements are actually drawn and edited. Linked from the overview map for camp leads while placement is open, and for map admins at any time. - Container map (
/CityPlanning/ContainerMap/{year}) — where containers are placed. Containers have their own placement phase, separate from barrio placement: unless you are a map admin, you can only open this page while container placement is open and you lead a camp. - Admin panel (
/CityPlanning/BarrioMap/Admin) — map admins (Camp Admin or City Planning team members) upload overlays, export and import GeoJSON. Container admin lives under/CityPlanning/BarrioMap/Admin/Containers/{year}, and that is also where container placement is opened and closed. Toggling barrio placement, setting informational placement dates, and editing the barrio registration-page markdown live on/Settings#city-planning.
Each map is its own full-screen view. On the barrio map, editing, polygon history and the placement-phase card are surfaced through panels inside it. The separate Admin panel is where overlay zones are uploaded.
An API under /api/city-planning/ and a SignalR hub at /hubs/city-planning power live polygon updates and cursor broadcast.
As a Volunteer
Anyone signed in can open the map and watch it evolve:
- View the map at /CityPlanning. Every placed barrio shows its name label and sound-zone color.
If you are a Camp Lead and barrio placement is open, the overview map links you through to the barrio map (/CityPlanning/BarrioMap), where you get tools to place and adjust your own barrio. The container map is linked on the same panel, but on its own phase — you see that link while container placement is open. Map Admins always see both links.
On the barrio map:
- See warnings. Placements outside the limit zone get a red crosshatch; overlaps with another camp get orange dashed stripes; both prepend a warning indicator to the label.
- Find your camp. If you lead a camp that has been placed, your placement draws with a heavier outline and more opaque fill so it stands out.
- See who else is on the map. Other humans' cursors appear live as they move. When anyone saves a placement the map updates for everyone — no refresh needed.
- Check the placement phase. A card shows whether placement is open or closed, and a help modal lists the scheduled open and close dates (informational, Spain time).
- Place your barrio. Enter edit mode for your camp, draw your placement on the map, and save. Area and edge lengths update live while you draw.
- Adjust an existing placement. Move corners, reshape, or reposition. Saving writes a history entry with the note "Saved".
- View history. The offcanvas lists every prior version with timestamp and the human who made the change.
You can only edit your own camp's placement, and only while placement is open. To change it after placement closes, ask a map admin.
Related sections
- Camps —
CampSeasonis the anchor entity; placement requires an approved camp season for the current year, and the camp's leads are the ones allowed to edit that camp's placement. - Teams — membership in the City Planning team (slug
city-planning) grants map admin access without needing a global Camp Admin or Admin role. - Glossary — definitions for "barrio" and "sound zone".