PROJECT PORTAL · CLIENT- AND PUBLIC-FACING MAPS
Capital Improvement Program Portal
Client: City of Ridgeline Engineering Division, Ridgeline County (fictional)
Prepared by L. Brown, Chord & Arc
| REV | DESCRIPTION | DATE | BY |
|---|---|---|---|
| 0 | Issued for demo | 2026-10-08 | L. Brown |
SECTION 2
Purpose
The city's 48-project, $74.9 million five-year capital program lives in a council PDF map and a spreadsheet, so residents, council members, and project managers each work from a different version and the Engineering Division answers the same "when are you fixing my road" call every week.
Project managers update phase, schedule, spending, and documents once a month from a spreadsheet or a short form; communications staff approve what is public; residents and council members find any project by street, district, phase, or fiscal year on a phone.
The outcome is one map, list, and timeline that answers what is happening on a street and when, a link for every project that can go in an email or a council packet, and a staff view that tracks spending against budget.
SECTION 3
Users and roles
| ROLE | WHAT THEY DO | WHERE | ARCGIS USER TYPE |
|---|---|---|---|
| Project manager (3) | Updates phase, dates, spent to date, and documents for their projects each month | Office, browser or spreadsheet | Contributor |
| Communications staff (1) | Approves project descriptions and notices before they appear in the public view | Office, browser | Contributor |
| CIP coordinator (1) | Runs the monthly import, reads the validation report, onboards new projects, runs the FY rollover | Office, browser | Creator |
| Public and council | Browse, filter, share project links, subscribe to updates | Phone or browser | None (public app) |
| Consultant (owner) | Builds, administers, maintains; runs the quarterly health check | Remote | Creator (admin) |
| Client project lead | Approves scope, signs milestones and acceptance | Office | None required |
SECTION 4
Architecture
- 01CIP spreadsheet template or status formMicrosoft Excel or ArcGIS Survey123
- monthly02Monthly import with validation reportPython, ArcGIS API for Python, scheduled run
- upsert03Hosted feature layers: points, lines, polygons, districts; related documents and milestonesArcGIS Online
- view04Public read-only layer view without internal fieldsArcGIS Online
- 05Project portal (this demo), embedded in the city site or on a subdomainArcGIS Maps SDK for JavaScript, Next.js, Vercel
- 06Optional program pageArcGIS Hub
- The spreadsheet template's columns are the data model in section 5, so the import is a validation and an update, not a translation.
- The public portal reads only the public layer view; staff sign in to the same portal to see spending and project-manager contacts.
- The Starter tier is an Experience Builder app on the same layers; the custom portal replaces it at Standard without changing the data.
SECTION 5
Data model
These tables are generated from the same schema file the demo app and the data generator use, so the sheet cannot drift from the data. Computed fields are derived in the office, not collected.
Projects (points) · point · 17 fieldsshowhide
Site projects: intersections, wells, tanks, lift stations, buildings.
Projects (lines) · polyline · 17 fieldsshowhide
Linear projects: road segments between two intersections, water and sewer mains.
Projects (polygons) · polygon · 17 fieldsshowhide
Area projects: parks and drainage basins.
Council districts · polygon · 2 fieldsshowhide
Five council districts; used to filter and summarize the program.
Project documents · table · 4 fieldsshowhide
0–4 per project, related by project_no. In the demo these are placeholders with no files.
Project milestones · table · 4 fieldsshowhide
3–5 per project, related by project_no, consistent with the project's phase.
SECTION 6
Workflows
Monthly status update
- By the 5th of the month each project manager updates phase, dates, spent to date, and new documents in the spreadsheet or the status form.
- The import script validates every row against the data model: domains, required fields, dates consistent with the phase, spent not above budget.
- Rows that pass update the hosted layers; rows that fail are listed in the validation report for the project manager to fix.
- Communications staff review changed descriptions and notices; approved changes appear in the public view.
New project onboarding
- Council adopts the project in the CIP or an amendment.
- The coordinator adds a row with the next number for its first fiscal year (CIP-<FY>-<nnn>).
- The location is drawn once: a point, a road segment between two intersections (stationed from the road's origin), or an area outline.
- The project appears after the next import in the Planning phase, with its district assigned from its location.
Public comment (optional)
- Each project page links to a Survey123 comment form that carries the project number.
- Communications staff triage comments weekly and route them to the project manager.
Fiscal-year rollover
- In October, projects complete for a full fiscal year move to the archive layer.
- The new fifth year of the program is added from the adopted CIP.
- The portal's fiscal-year range moves forward one year and the district summary is re-checked against the adopted totals.
SECTION 7
Integrations and inputs
| CLIENT PROVIDES | FORMAT | HOW IT ENTERS THE SYSTEM |
|---|---|---|
| CIP spreadsheet (template provided; columns = the data model) | XLSX | Monthly import script validates and updates the hosted layers; the validation report goes to the coordinator |
| Project locations | Drawn in ArcGIS Online, or CAD and shapefiles from design consultants | Loaded once per project at onboarding |
| Road centerlines with names | Shapefile, GeoJSON, or a state DOT service | Used to draw and station corridor projects |
| Council district boundaries | Shapefile or a county GIS service | Loaded as the districts layer; projects take their district from their location |
| Project documents | PDF in the city's document library | Linked by address per project; the portal never stores files |
| City branding | Logo (SVG or PNG), colors | Applied to the portal |
SECTION 8
Security and access
- The public portal reads only a public layer view. Spent to date and project-manager emails are internal fields and are not in that view; residents see the division's shared address.
- Public layers contain no personal information. Subscription emails, if collected, go to the city's notification service, not to the GIS.
- Project managers edit only their own projects (ownership-based editing); only the coordinator and the consultant can add or delete projects.
- The portal's basemap key is scoped to basemaps only and restricted to the city's domains.
- At handover the consultant's admin role is converted to a named support account or removed, per the city's policy.
SECTION 9
Hosting and running cost
| ITEM | QTY | UNIT | ANNUAL | NOTE |
|---|---|---|---|---|
| ArcGIS Online: Contributor (project managers) | 3 | $250 / yr | $750 | |
| ArcGIS Online: Contributor (communications) | 1 | $250 / yr | $250 | |
| ArcGIS Online: Creator (CIP coordinator) | 1 | $700 / yr | $700 | |
| Public viewers | unlimited | public sharing | $0 | Residents and council need no license |
| ArcGIS Online credits (storage) | included | 1,500 included | $0 | A few hundred projects with related tables is a small fraction of the included credits |
| Monthly import runtime | 1 | scheduled job | — | GitHub Actions or the city's server; a few minutes a month |
| Portal hosting | 1 | included in retainer | — | Vercel; no server to patch |
| ArcGIS Enterprise (on-premises) | optional | priced separately | — | Available for clients whose policy requires on-premises hosting |
- Esri US list prices as of 2026-10-08; confirm at purchase. Licenses are bought in the city's name.
- The consultant's own Creator seat is separate and not billed to the client.
- Worked total for the roles above: $1,700 per year to Esri.
SECTION 10
Delivery plan
| MILESTONE | WHEN | DELIVERABLES |
|---|---|---|
| Scoping (0%) | Week 0 | Problem statement, inventory of the current CIP spreadsheet and map, this sheet revised for the city, fixed-price proposal |
| Schematic (30%) | Week 1–2 | Data model and spreadsheet template signed, public and internal field split agreed, districts and roads loaded, portal wireframes |
| Design development (60%) | Week 2–4 | Working portal on the city's current CIP, import script run against the real spreadsheet, first project-manager test |
| Pre-release (90%) | Week 4–5 | Communications review of public content, accessibility and phone pass, embed test on the city site, training outline |
| Issued for use (100%) | Week 6 | Production deployment, project-manager training (1 hour), admin handover, acceptance signed |
| Record set | Week 6–7 | Data dictionary, import runbook, FY rollover procedure, credentials inventory, full export |
SECTION 11
Scope tiers
Starter
2–3 weeksHosted layers and an Experience Builder app on the city's site.
- • Data model and spreadsheet template
- • Experience Builder app
- • Public sharing setup
Standard
5–6 weeksStarter plus the custom portal shown here, with project pages, timeline, and share links.
- • Everything in Starter
- • Custom portal
- • Monthly import script
- • Public and staff views
Full
8–10 weeksStandard plus public comment, notifications, and a 12-month retainer.
- • Everything in Standard
- • Survey123 public comment
- • Update subscriptions
- • 12-month support
The demo on this site is the Standard tier.
SECTION 12
Acceptance criteria
The client signs this list at Issued for Use. The final 20% is invoiced on signature.
- 1A filter URL shared by email opens to the same view: the same filters, list, timeline, and map.
- 2Public mode shows no internal columns (spent to date, project-manager email) in the list, project page, charts, or export.
- 3The monthly import runs in under 10 minutes on the full CIP spreadsheet and produces a validation report.
- 4List, map, and timeline always show the same set of projects (checked on five filter combinations).
- 5A project link opens with that project selected and zoomed.
- 6Budget totals on the portal equal the sum of the listed projects to the dollar.
- 7Every field in the data model is populated or explicitly null on 100% of loaded projects.
- 8The core workflows (monthly update, onboarding, fiscal-year rollover) run end to end by city staff without the consultant present.
- 9The portal loads and is usable on the city's phones and embeds in the city site.
- 10The record set is delivered.
SECTION 13
Operations and maintenance
- City: project managers update monthly; communications staff approve public changes; the coordinator runs or monitors the import and reads the validation report.
- Monthly (consultant, under retainer): import health, usage and credit check, broken document links.
- Quarterly: SDK and dependency updates to the portal, backup export of the hosted layers to GeoPackage, health report.
- Fiscal-year rollover each October: archive completed projects, add the new fifth year, move the portal's fiscal-year range, re-check district totals.
- Annually: ArcGIS Online renewal reminder, review of the public and internal field split with communications.
- Retainer covers 2 hours of small changes per month; beyond that at the hourly rate with a not-to-exceed.
SECTION 14
Demo notes
Demo data is synthetic. Ridgeline County and the City of Ridgeline do not exist. Projects, budgets, and dates are generated; the data model, the SDK, and the workflows are real.
What to tap
- Filter to Construction and tap a project bar on the timeline
- Open a project page and check its milestones
- Toggle 'View as public' to see what the city hides
Generator seed 102 · demo clock 2026-10-01 · projects 48 · projects_pt 18 · projects_ln 20 · projects_pg 10 · districts 5 · documents 84 · milestones 217 · program budget $74,923,000 · in construction 12 · lane closures 6