How idealistyu/city-ex works
城市制霸 is a browser-based China city-footprint map: users choose a province or search for a city, assign one of five visit levels, and see the map and totals update. The main entry coordinates navigation and marking; browser-local state powers statistics and achievements. Users can also export map images, back up and restore marks, or encode marks in a share link that another visitor can open without a server. The graph reflects documented features and sampled module boundaries; some UI wiring is inferred only where the entry-point comments or README describe it.
Main entry points: main.js App Coordinator · store.js Mark Storage · achievements-page.js Achievement Cards · map.js Map View
Components 22
Map Interaction
- App Coordinator
src/main.js - Map View
src/map.js - Levels and Totals
src/levels.js - Level Picker
src/picker.js - City Search
src/locator.js
Local Progress
- Mark Storage
src/store.js - Browser Storage
- Backup Controls
src/backup-ui.js - Backup Import Export
src/backup.js
Achievements
- Achievement Rules
src/achievements.js - Unlock Tracking
src/achievements-ui.js - Achievement Cards
src/achievements-page.js - Badge Artwork
src/badges.js
Export and Sharing
- Image Export UI
src/image-ui.js - Country Image Export
src/export.js - Province Image Export
src/export-province.js - Share Controls
src/share-ui.js - Share Link Codec
src/share.js
Map Data
- Map Geometry
src/map-data.json - Fine Geometry
src/map-fine.json
Other components
- Visitor
- Link Recipient
Connections 31
- Visitor → App Coordinator: uses map
- App Coordinator → Map View: controls view
- App Coordinator → Level Picker: opens picker
- App Coordinator → City Search: opens search
- App Coordinator → Mark Storage: reads and marks
- App Coordinator → Levels and Totals: updates totals
- App Coordinator → Unlock Tracking: coordinates achievements
- App Coordinator → Image Export UI: offers export
- App Coordinator → Backup Controls: offers backup
- App Coordinator → Share Controls: offers sharing
- Map View → Map Geometry: reads geometry
- Map View → Fine Geometry: loads detail
- City Search → Mark Storage: reads marks
- Mark Storage → Browser Storage: persists locally
- Backup Controls → Backup Import Export: imports and exports
- Backup Import Export → Mark Storage: restores marks
- Mark Storage → Unlock Tracking: notifies changes
- Unlock Tracking → Achievement Rules: evaluates progress
- Unlock Tracking → Achievement Cards: opens page
- Achievement Cards → Achievement Rules: reads progress
- Achievement Cards → Mark Storage: reads marks
- Achievement Cards → Badge Artwork: renders badges
- Image Export UI → Country Image Export: exports country
- Image Export UI → Province Image Export: exports province
- Country Image Export → Map View: builds map
- Province Image Export → Fine Geometry: loads detail
- Province Image Export → Country Image Export: rasterizes image
- Share Controls → Share Link Codec: encodes marks
- Share Controls → Mark Storage: reads marks
- Share Link Codec → Link Recipient: encodes link for
- Link Recipient → App Coordinator: opens shared view