使用 DynamoDB 和 Vercel 构建城市交通应用:走进 ChowkChakra

使用 DynamoDB 和 Vercel 构建城市交通应用:走进 ChowkChakra

探索 ChowkChakra 如何利用技术解决蒲那的交通难题。

蒲那(Pune)是印度一座繁忙的城市,面临着严重的交通问题。但这不仅关乎交通拥堵,还存在沟通上的脱节。人们注意到信号灯损坏或坑洼等问题,但缺乏正式的上报途径。城市交通应用 ChowkChakra 应运而生,旨在填补这一空白。让我们深入了解这款应用是如何利用 Amazon DynamoDB 和 Vercel 构建的。

面临的问题

蒲那的交通问题不仅仅是堵车,更源于沟通的匮乏。市民看到红绿灯卡在红灯或巨大坑洼等问题,却无处正式上报。这往往导致交警处于被动态势,只有在偶然发现或收到电话时才能做出响应。

ChowkChakra 旨在通过提供两个用户界面来改变现状:

  • 面向市民:一个用于实时上报问题的平台。
  • 面向交警:一个根据这些上报采取行动的指挥中心。

当问题得到解决时,市民还会收到通知,并可以自行核实修复情况。

技术栈

构建 ChowkChakra 需要一个强大的后端和一个直观的前端。以下是驱动该应用的技术栈:

  • 前端/后端:使用 Next.js 15 构建,这是一个用于构建 Web 应用的流行框架。它使用 Vercel 进行部署,从而简化了部署流程。
  • 数据库:Amazon DynamoDB 作为唯一的存储库。它以处理高吞吐量写入和快速的主键读取而闻名,非常适合依赖实时数据的应用。
  • 存储:AWS S3 用于存储市民上传的照片和视频。
  • AI 服务:Google Gemini 1.5 Pro 用于协助函数调用和视觉处理,而 Gemini Live API 则有助于处理流式音频输入。
  • 地图 & 实时数据:Mapbox GL JS 提供地图功能,实时数据来源于 HERE Traffic API 和 OpenWeatherMap。
  • 通知:SendGrid 负责处理电子邮件通知,带有 VAPID 密钥的 Web Push API 负责管理推送通知。

基于 DynamoDB 的架构设计

选择 DynamoDB 是因为它能够高效处理海量数据。以下是它的具体应用方式:

  • 表结构:共有七张表,每张表都有特定的用途,例如存储路口登记表或处理市民通知。
  • 冷热表分离:活动事件存储在一张表中,而已解决的事件则移至另一张表。这可以防止不必要的全表扫描。
  • 原子操作:使用 TransactWriteCommand,多个更新同步发生,确保数据一致性。
  • 全局二级索引 (GSI):允许查询路口风险评分等数据,而无需扫描整个表。
  • 生存时间 (TTL):自动清理过期数据,确保系统无需人工干预即可保持高效运行。

功能特性:市民 PWA

ChowkChakra 为市民提供了一个渐进式 Web 应用(PWA),包含四种上报模式:

  1. 语音点击说话:使用 AI 理解位置、问题类型和严重程度,自动标记 GPS 位置。
  2. 通勤模式:一种免提模式,可进行持续监听,允许用户在不中断通勤的情况下上报问题。

这些功能确保市民能够快速高效地上报问题,使该应用成为管理蒲那交通难题的关键工具。

核心要点

  • 实时上报:ChowkChakra 使市民能够在交通问题发生时即时上报。
  • 高效的数据处理:利用 DynamoDB 的功能可确保快速且可靠的数据访问。
  • 用户友好的界面:市民和交警都能从直观的界面中获益,实现无缝沟通。
  • 自动清理:DynamoDB 的 TTL 功能确保数据保持相关性,减少人工维护。

ChowkChakra 是利用科技改善沟通和提高效率来解决现实世界问题的一个绝佳范例。借助 DynamoDB 和 Vercel 等工具,开发者可以构建出不仅功能良好,而且对日常生活产生积极深远影响的应用。

Free field guide

Kubernetes Security Checklist

Harden cluster access, workload identity, pod security, network boundaries, software supply chain, secrets, and operational monitoring.