Skip to content
SHEET
S-102
STATUS
DEMO
DATE
2026-10-08
REV
0

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

REVDESCRIPTIONDATEBY
0Issued for demo2026-10-08L. 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

ROLEWHAT THEY DOWHEREARCGIS USER TYPE
Project manager (3)Updates phase, dates, spent to date, and documents for their projects each monthOffice, browser or spreadsheetContributor
Communications staff (1)Approves project descriptions and notices before they appear in the public viewOffice, browserContributor
CIP coordinator (1)Runs the monthly import, reads the validation report, onboards new projects, runs the FY rolloverOffice, browserCreator
Public and councilBrowse, filter, share project links, subscribe to updatesPhone or browserNone (public app)
Consultant (owner)Builds, administers, maintains; runs the quarterly health checkRemoteCreator (admin)
Client project leadApproves scope, signs milestones and acceptanceOfficeNone required

SECTION 4

Architecture

  1. 01
    CIP spreadsheet template or status form
    Microsoft Excel or ArcGIS Survey123
  2. monthly
    02
    Monthly import with validation report
    Python, ArcGIS API for Python, scheduled run
  3. upsert
    03
    Hosted feature layers: points, lines, polygons, districts; related documents and milestones
    ArcGIS Online
  4. view
    04
    Public read-only layer view without internal fields
    ArcGIS Online
  5. 05
    Project portal (this demo), embedded in the city site or on a subdomain
    ArcGIS Maps SDK for JavaScript, Next.js, Vercel
  6. 06
    Optional program page
    ArcGIS Hub
Edges: CIP → Monthly; Monthly → Hosted; Hosted → Public; Public → Project; Public → Optional
  1. The spreadsheet template's columns are the data model in section 5, so the import is a validation and an update, not a translation.
  2. The public portal reads only the public layer view; staff sign in to the same portal to see spending and project-manager contacts.
  3. 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 fieldsshow

Site projects: intersections, wells, tanks, lift stations, buildings.

Projects (lines) · polyline · 17 fieldsshow

Linear projects: road segments between two intersections, water and sewer mains.

Projects (polygons) · polygon · 17 fieldsshow

Area projects: parks and drainage basins.

Council districts · polygon · 2 fieldsshow

Five council districts; used to filter and summarize the program.

Project documents · table · 4 fieldsshow

0–4 per project, related by project_no. In the demo these are placeholders with no files.

Project milestones · table · 4 fieldsshow

3–5 per project, related by project_no, consistent with the project's phase.

SECTION 6

Workflows

Monthly status update

  1. 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.
  2. The import script validates every row against the data model: domains, required fields, dates consistent with the phase, spent not above budget.
  3. Rows that pass update the hosted layers; rows that fail are listed in the validation report for the project manager to fix.
  4. Communications staff review changed descriptions and notices; approved changes appear in the public view.

New project onboarding

  1. Council adopts the project in the CIP or an amendment.
  2. The coordinator adds a row with the next number for its first fiscal year (CIP-<FY>-<nnn>).
  3. The location is drawn once: a point, a road segment between two intersections (stationed from the road's origin), or an area outline.
  4. The project appears after the next import in the Planning phase, with its district assigned from its location.

Public comment (optional)

  1. Each project page links to a Survey123 comment form that carries the project number.
  2. Communications staff triage comments weekly and route them to the project manager.

Fiscal-year rollover

  1. In October, projects complete for a full fiscal year move to the archive layer.
  2. The new fifth year of the program is added from the adopted CIP.
  3. 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 PROVIDESFORMATHOW IT ENTERS THE SYSTEM
CIP spreadsheet (template provided; columns = the data model)XLSXMonthly import script validates and updates the hosted layers; the validation report goes to the coordinator
Project locationsDrawn in ArcGIS Online, or CAD and shapefiles from design consultantsLoaded once per project at onboarding
Road centerlines with namesShapefile, GeoJSON, or a state DOT serviceUsed to draw and station corridor projects
Council district boundariesShapefile or a county GIS serviceLoaded as the districts layer; projects take their district from their location
Project documentsPDF in the city's document libraryLinked by address per project; the portal never stores files
City brandingLogo (SVG or PNG), colorsApplied 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

ITEMQTYUNITANNUALNOTE
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 viewersunlimitedpublic sharing$0Residents and council need no license
ArcGIS Online credits (storage)included1,500 included$0A few hundred projects with related tables is a small fraction of the included credits
Monthly import runtime1scheduled job—GitHub Actions or the city's server; a few minutes a month
Portal hosting1included in retainer—Vercel; no server to patch
ArcGIS Enterprise (on-premises)optionalpriced 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

MILESTONEWHENDELIVERABLES
Scoping (0%)Week 0Problem statement, inventory of the current CIP spreadsheet and map, this sheet revised for the city, fixed-price proposal
Schematic (30%)Week 1–2Data model and spreadsheet template signed, public and internal field split agreed, districts and roads loaded, portal wireframes
Design development (60%)Week 2–4Working portal on the city's current CIP, import script run against the real spreadsheet, first project-manager test
Pre-release (90%)Week 4–5Communications review of public content, accessibility and phone pass, embed test on the city site, training outline
Issued for use (100%)Week 6Production deployment, project-manager training (1 hour), admin handover, acceptance signed
Record setWeek 6–7Data dictionary, import runbook, FY rollover procedure, credentials inventory, full export

SECTION 11

Scope tiers

Starter

2–3 weeks

Hosted 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 weeks

Starter 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 weeks

Standard 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.

  1. 1A filter URL shared by email opens to the same view: the same filters, list, timeline, and map.
  2. 2Public mode shows no internal columns (spent to date, project-manager email) in the list, project page, charts, or export.
  3. 3The monthly import runs in under 10 minutes on the full CIP spreadsheet and produces a validation report.
  4. 4List, map, and timeline always show the same set of projects (checked on five filter combinations).
  5. 5A project link opens with that project selected and zoomed.
  6. 6Budget totals on the portal equal the sum of the listed projects to the dollar.
  7. 7Every field in the data model is populated or explicitly null on 100% of loaded projects.
  8. 8The core workflows (monthly update, onboarding, fiscal-year rollover) run end to end by city staff without the consultant present.
  9. 9The portal loads and is usable on the city's phones and embeds in the city site.
  10. 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

  1. Filter to Construction and tap a project bar on the timeline
  2. Open a project page and check its milestones
  3. 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