Anomaly Detected
一个用于可视化、上报和分析美国境内超自然现象(UFO目击事件和闹鬼地点)的网页平台,数据来自 NUFORC、Haunted Places 和美国人口普查。它把分析看板和一个协作模块结合在一起,用户可以在其中提交并验证自己的报告。
我在团队中的角色
我加入项目时被分配的角色是数据库和部署,但最终承担的远比预期多:数据模型的设计与集成、后端逻辑、"报告"和"社区"板块的整体视觉重构、PDF报告的生成,以及项目的技术文档。在一个4人小组里,工作量并不总是分配均匀——有几次部分成员没有投入同等的努力,也没有按时完成任务,这让协调变得更困难——这个项目让我在这方面(学会协调、在事情停滞时主动推进)学到的东西,不亚于技术层面。
我学到的
- 处理真实数据集:清洗、格式规范化(编码、坐标、日期)以及在 Tableau 中做分析
- 深入使用 Django:ORM、迁移、自定义 management 命令,以及后台管理面板
- 把 Supabase 用作生产环境的 PostgreSQL 数据库,以及如何通过环境变量连接它
- 在 Render 上做真实部署:构建命令、环境变量,以及把东西上线到生产环境时常见的各种头疼事
技术决策
- 把本地 MySQL 迁移到 Supabase 上的 PostgreSQL 用于生产环境
- 使用 dj-database-url 从环境变量读取连接信息,避免把凭证硬编码
- 使用 ReportLab + matplotlib 为每张图表生成单独的 PDF 报告
- 把数据集拆分成幂等的导入命令(可以多次运行而不会重复数据)
我的个人感想除了技术层面(Django、Supabase、每十五分钟就"睡着"的部署,以及几乎要手动画出来的图表),我更学到了维系一个团队软件项目意味着什么:分配角色、协调交付、写文档让别人能看懂你的代码,以及即使过程并不顺畅,也要把一个能用的东西坚持做完。