我在Reddit社区(总成员人数约47K,年访问量约14百万)的r/CanadaVisitorVisa中担任社区管理员,该社区由世界各地的用户分享他们的加拿大签证申请经验。我们收到最常见的问题是: "如何才能为我的签证申请设置一个最合适的时间表?"

IRCC的网站上有答案,但很难使用。只有一个笨拙的表单,需要你选择你的国家、签证类型之后,才会显示一个数字,不论在哪里比较国家、无论看出什么趋势、无论有多少上下文。

因此,我在r/CanadaVisitorVisa构建了一个名字叫做Devvit的应用,程序会每天抓取IRCC的数据并将其呈现为交互式的仪表板。

功能列表

  • 展示官方IRCC处理时间(Visitor、Super Visa、Study、Work permits)信息(总共212个国家)
  • **颜色的速度指示器(green< 14天,blue 15-30天,orange 31-60天,red 60+天)
  • 选项(根据签证类型、按照字母顺序,A-E,F-J等,或按照优先等级)
  • 根据最快还是最慢进行排序
  • 每日自动刷新 —— 从IRCC每日通过GitHub的JSON数据来源接收信息
  • 时间线的分享形式 —— 社区中成员可以分享他们自己的处理经历帮助其他人

技术如何运作

  • 数据管道:Python程序采用Playwright每天从IRCC的处理时间页面抓取数据,导出为JSON格式
  • Devvit应用:从GitHub上的JSON文件存取数据,并存储在Redis中,然后呈现出来
  • 程序追踪212个国家和7种签证类别,同时保存每个国家的历史数据方便统计分析

我值得获得反馈的地方

  1. 仪表板的UI — 我只能展示第七页因为Devvit只允许7行。是否此模式足够合理或者有更好的模式。
  2. 数据新鲜程度的信号 — 我们当前采用的方式是展现“最新”的标签和从IRCC获取的信息的底部。这种显示是否有提示性呢?
  3. 时间线表单 — 便于对这种结构化数据进行收集的Devvit表单是否适当,如果不,那我该去哪里寻找?
  4. 整体的美观 — 任何你可能注意到的粗糙处

上下文

社区网页(使用Astro静态站点)同样包含相同数据,并且会基于SEO生成212个单独国家的页面。这个Devvit应用的目的在于就地为Reddit社区保留价值,因为这是我们的家园社区。

这是我第一次使用Devvit。对于数据管道或者应用架构有任何问题你可以向我提问。


Devvit应用链接:https://developers.reddit.com/apps/processing-time