水杉输入法 MSIME|开源中文输入法
水杉输入法(MSIME)是开源中文输入法,面向 Windows、macOS、Linux、Android、iOS 与 HarmonyOS 开发,支持全拼、双拼、五笔,候选词旁直接显示译文。查看下载、使用指南与常见问题。
翻訳待ち
No updates detected yet. GitHub releases will appear here.
An interactive civic intelligence platform visualizing Seattle neighborhood conditions, service requests, and trends using public city data.
翻訳待ち
Loading the full README.
Read the full README ↗An interactive civic intelligence dashboard for exploring what Seattle residents report to the City: where requests are concentrated, which neighborhoods report the most, what kinds of issues dominate, and how volume changes over time. Every number comes live from the City of Seattle's open data.
This is an exercise in agentic development using Claude Code.
Map of Seattle. Three backgrounds you can switch between:
Clustered markers on top show the newest 2,000 matching requests. Click a cluster to zoom in, or a marker to see its details. The legend states each layer's scope.
Filters: date range (presets or custom), request type, current status, neighborhood (Community Reporting Area) and council district. Filters live in the URL, so any view can be shared. Every filter updates the map, metrics, charts and list together.
Summary metrics: total requests, daily average, most reported type, and the share with usable coordinates.
Period-over-period change: the total and every neighborhood/district bar show the change versus the equally long period just before, with the same filters (e.g. "▼ −2.0% vs Aug 21 – Sep 19"). When the previous count is under 20, the absolute change is shown instead of a volatile percentage. Changes use neutral arrows, not red/green, because more reports isn't necessarily worse.
Trends: requests per day, week (Mon–Sun) or month, chosen from the range length. Days with no requests are zero-filled, and buckets cut short by the range are drawn dashed and labelled.
Is the City responding equally?: compares how quickly tracked requests get a "Closed" update across census tracts grouped by the City's Racial and Social Equity Index. Each group is adjusted for its mix of request types and shown with a 95% margin of error. It also breaks results down by request type and lists the neighborhoods furthest from expected.
Response times: for the five request types the City tracks (abandoned vehicles, graffiti, illegal dumping, public litter cans, streetlights), the share that got a "Closed" status update within 7 and 30 days and the median days. Measured on a cohort old enough to judge, so recent requests can't skew it.
Breakdowns: request types, current status, and an area comparison by neighborhood or council district. Neighborhoods can be compared by raw count or per 1,000 residents (2020 Census). Areas with fewer than 5,000 residents are listed separately rather than ranked, because their rates aren't comparable. Each bar is a keyboard-accessible button that toggles that filter.
The count / per-capita choice drives the map shading too.
Recent requests: newest first and paged. Selecting one flies the map to it and opens its detail card. Requests without coordinates are listed and flagged, never placed on the map.
Loading, empty, partial and error states throughout. If a refresh fails, the last good results stay visible with a retry button.
For the story behind the build (data findings, scope decisions and the bugs verification caught), see the case study.
Requires Node.js 22.12+ and npm. Node 24 LTS is recommended and pinned in .nvmrc (nvm use).
git clone https://github.com/joshduplaa/seattle-neighborhood-pulse.git
cd seattle-neighborhood-pulse
npm ci
npm run dev # http://localhost:3000
No API key or database is needed. Optionally, copy .env.example to .env.local and set SOCRATA_APP_TOKEN to raise Socrata's throttling limits.
| Command | What it does |
|---|---|
npm run dev | Development server (copies the MapLibre worker first) |
npm run build / npm start | Production build and server |
npm test | Unit and component tests (Vitest + React Testing Library) |
npm run typecheck | tsc --noEmit (strict, noUncheckedIndexedAccess) |
npm run lint | ESLint (Next.js core-web-vitals + TypeScript rules) |
npm run check | Typecheck, lint and test together |
| Dataset | Customer Service Requests, City of Seattle (public domain) |
| Dataset ID | 5ngg-rpne |
| API | Socrata SODA 2 / SoQL: https://data.seattle.gov/resource/5ngg-rpne.json (API docs) |
| Scope | Requests submitted through the Find It, Fix It app, the Customer Service Request portal, phone, email and other channels, for request types that are or were offered to the public |
| Size and freshness | ~2.53 million rows, Jan 2013 → present; refreshed once a day (as of 2026-10-20) |
All dataset constants live in src/lib/socrata/config.ts.
| Dataset | Customer Service Request Tracking Data (43nw-pkdq), City of Seattle |
| Coverage | ~446,500 requests since 2023-01-01: Abandoned Vehicle, Graffiti Report, Illegal Dumping, Public Place Litter & Recycling, Streetlight Repair |
| Fields used | servicerequestnumber, servicerequesttype, createddate, updateddate, statuscategory (Routed to Department / In Progress / Closed) |
This is the beginning of the README. Read the rest at the original. Read the full README ↗