这个项目能做什么

Open Civic Signal OS 是一个以 monorepo 形式交付的公民技术平台。其既定目的是将社区信号(由居民报告的重复性本地问题)转化为公众可以理解、信任并采取行动的公共待办列表。 该产品的承诺从两个维度展开。对于公民而言,其路径是:用通俗语言报告真实的本地问题,了解其被优先处理的原因,并跟踪变化情况、响应人员以及待处理事项。对于公职人员和社区领导者,其既定目标是减少噪音,优先呈现重要事项,并保持优先级排序背后的证据可见。 文档记录的用户旅程涵盖了三种角色: - 社区成员:报告问题,支持现有问题以避免重复,理解问题为何具有高优先级,并跟踪来自社区或机构的更新。 - 社区版主或协调员:审查社区对话,在清晰的角色边界内发布进度更新,并确保讨论渠道可用且可审计。 - 公职人员:快速识别最高优先级的问题,发布进度更新,并使用透明的证据来证明行动顺序的合理性。 README 坦诚地指出了目前的 UX 差距:仓库和应用程序很好地解释了技术平台,但对于首次使用者来说,过早地暴露了过多的导航和工作流选择。因此,目前的前端工作重点在于简化首次运行体验,明确主要操作并减轻认知负荷。既定的产品方向包括更简单的首屏层级、更清晰的主要行动号召、更低摩擦的引导和验证、便捷的键盘和移动端导航,以及无需专业术语即可解释排名和进度的信任界面。 文档记录的技术栈如下: - 后端:Java 21 搭配 Spring Boot,位于 apps/api-java,托管 API 和优先级排序服务。 - 前端:React, TypeScript 和 Vite,位于 apps/web-react,提供公共仪表盘和操作员控制台。 - 数据:当前 MVP 采用 JSON-first,计划使用 PostgreSQL。 - 契约:OpenAPI 定义和共享架构位于 packages/contracts。 - 其他目录:infra 用于本地环境和部署资产,docs 用于策略、想法、架构和执行计划。 运行项目:标准的集成开发运行时是 Docker,通过 npm run docker:dev:up 启动,README 将其描述为前端和后端共同实现热重载的必要路径。支持命令包括 docker:dev:doctor, docker:dev:ps, docker:dev:logs 和 docker:dev:down,此外还提供类生产模式 (docker:prod:up) 和预构建的 GHCR 镜像 (docker:ghcr:up / docker:ghcr:down),并在 .github/workflows/docker-images.yml 中包含 CI 镜像工作流。README 明确要求,在验证集成行为时,若 Docker 不可用应将其视为本地环境阻塞项,而非尝试绕过。对于当前的 MVP,还提供 npm install 和 npm run prioritize 等脚本。针对独立工作存在组件级回退路径:在 apps/web-react 中使用 npm run dev 运行 React 应用,在 apps/api-java 中使用 ./mvnw spring-boot:run 运行 Java API。 额外的仓库资料包括启动资源(演示和架构 GIF、架构 SVG、docs 下的落地页、想法文档和代理剧本)、品牌和视觉资产包(标志、文字标志、横幅、社交卡片和 PNG 标志),以及通过项目 GitHub issues 进行的路线图跟踪。 总体而言,该仓库是一个处于早期阶段、文档公开的公民参与和优先级排序平台:它定义了预期的公民和管理员旅程,交付了基于 Docker 的 monorepo 开发流程(包含 Spring Boot 和 React 组件),将 API 契约保存在仓库中,并公开列出了剩余的 UX 简化工作。