我用AI给自家做了一套家谱软件
一个人,一个月,迭代17个版本。不是程序员,但确实做出来了。
先上结果
这是我家关氏的部分族谱,家谱树形展示,可以搜索家庭成员并在家谱树中定位到他/她。点开可以编辑以及看到该家庭成员的详情。

故事集,可以添加照片,关联成员;

打印预览,可以选定某一个节点以及后代代次数量来进行预览和打印。保存pdf时的规格是A5纸张,包含封面、世系图、成员表、照片墙,浏览器打开后Ctrl+P就能导出PDF:
还支持一键备份,导出为一个文件夹,包括了家庭成员表、照片(及关系)、故事文件。
不是买的现成软件,不是找外包做的,是我自己用AI Agent做的。
更准确地说,是我和AI一起做的。所有代码都是WorkBuddy帮我写的,我负责提需求、调细节、测功能。
怎么开始的
家里有一张老族谱,是我的爷爷多年前整理的。关氏从他们还记得的人到现在,传了八代。纸质的家谱有几个问题:不好更新、不好翻阅、不好保存、也不好分享给住在其他城市的亲戚。
去年就想把它数字化。试过几个方案:
-
族谱网站:注册填一大堆信息,界面丑,数据不安全,效果还差 -
Excel:能记信息,但做不出家谱树,看着就是一张表 -
免费/付费软件:功能繁杂,使用限制太多
想来想去,我既然想做AI 相关的项目,干嘛不自己写一个?
做了什么
说”写一个软件”听起来很大,但拆开来看,就是一个个具体的功能:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
技术栈很简单:Python + tkinter(系统自带)+ SQLite(系统自带)+ Pillow(唯一的第三方库)。
纯离线,不联网,数据全在本地。
技术选型
作为一个做项目管理的人,不是程序员,技术选型的思路跟工程师不一样。我不是看哪个框架性能好、哪个语言流行,我就看三条:
能不能自己搞?tkinter是Python自带的,不用装环境,双击就能跑。其他的框架太重,Web又要搞前端。(之前搞了VUE,发现代码写来调试还是要花大量的时间,放弃了)。就Python我还熟悉一点儿,虽然也不算熟。(事实上,这个项目我全程没有看代码,只看了readme.md)
数据安不安全?家族信息不想放到别人的服务器上。SQLite就是一个本地文件,备份就是复制文件,简单粗暴。
AI能不能帮?这是最关键的。这个项目所有代码都是AI辅助写的,我需要选一个AI最擅长的技术栈。Python是AI写代码最熟练的语言。
三条都满足,就它了。
迭代过程
从v1.0到v2.6f,一共17个版本,横跨一个月。
前期很猛。4月16日一天迭代了9个小版本(v1.0到v1.9),每个版本解决一个具体问题。当天的工作方式是:提需求→AI写代码→我测→发现问题→提修改→再测。循环往复。
中期踩了大坑。家谱树的可视化做了三遍。
第一版用的是递归布局,画出来节点位置和连线终点对不上,子树互相重叠。我用了一周,凑合着用。
后来让AI做了一次代码评审,一下报了10个问题,其中家谱树绘制被判”严重Bug”。评审报告写得详细:问题在哪、怎么改、给了示例代码。我花了半天照着修,改成了逐代排布——先按代次分组,再居中分配位置,最后统一画线。问题彻底解决。
后期打磨细节。折叠展开、点击定位、照片墙多对多关联、批量删除、UI重构……这些功能单个都不大,但加起来让软件从一个”功能堆叠”的东西变成了一个”可用”的东西。
最大的收获
有人问我:花一个月做一个家谱软件,值得吗?
说实话,如果只看”值不值”,这个问题没法回答。因为家谱软件本身不需要花一个月——市面上的工具半小时就能搞定,虽然对我的需求满足上不一定有我这个好。
但这个月的价值不在于软件,在于”我做出来了”这件事本身。
做了多年IT项目交付,我一直在管别人做东西。需求是我写的,验收是我做的,但很多年我自己没写过一行生产代码了。这个项目让我完整经历了一个软件从零到交付的全过程:需求分析、技术选型、迭代开发、代码评审、Bug修复、用户测试、版本管理。
不是在公司,是在自己家,给自己做。心态完全不同。
另一个收获是验证了一件事:AI辅助非程序员开发产品这条路,确实跑得通。我不是程序员,但我有一个完整的软件,4600行代码,12个文件,功能齐全,已经在用了。而且已经开源了,代码在GitHub上,谁都能看。
开源了
毫不犹豫,决定开源。
原因很简单:这个软件解决的是真实的需求,不止我一个人有这个需求。家族想数字化族谱的人很多,但大部分人不是程序员。如果我的代码能让别人参考、甚至直接用,那就应该开源。
项目地址:https://github.com/xingxinginworld/family-tree
纯Python,零网络依赖,装个Pillow就能跑。如果你也想给自己家做家谱,可以试试。
夜雨聆风