举文财务管理系统 · 工具包

视频里讲到哪一讲,就打开哪个编号的文件夹。

边看视频边做,用 课程页(上面是视频,下面是每一讲的材料);只想翻材料,就在这一页。

双击工具包根目录的 一键启动.cmd,它会开一个 PowerShell 窗口,直接告诉你:项目目录在哪、Git / Claude Code / 模型 Key 三项装好没有、下一步按哪个数字。

第一次上课先选「1 布置环境」。

下面每一份材料都有两个形态:点开的是 .html(手机上也能读),同名的 .md 是它的源文件 —— 要在电脑上改内容、或者把材料喂给 Claude Code,用 .md。

第 0 讲 · 开工前:这台电脑上要有什么

时长:40 分钟 | 目标:学员的电脑上,助手点得开、体检全绿

这一讲要用的材料

提示词

0-A先让它自我介绍(别急着做系统)
用大白话告诉我:你能干什么、不能干什么,各说三条。
不要写代码,我要先搞清楚你能干到什么程度。
0-B体检
在这台电脑上做一次体检,逐项告诉我:
1. Git 装了没有、什么版本
2. Claude Code 装了没有、什么版本
3. 模型 Key 配好没有、现在走的是哪个模型
哪一项没就绪,告诉我点哪里能装上。
0-C建项目目录
在这台电脑上建一个目录:D:\我的项目\举文财务管理系统
建好之后,以后我们所有的工作都在这个目录里做。
把这个目录的完整路径告诉我。

你应该看到什么

第 1 讲 · 先写「对了长什么样」,再写代码

时长:50 分钟 | 目标:每位学员写下三条判据,其中一条能拿数字对出来

这一讲要用的材料

提示词

1-A立判据
先不要写任何代码。

我要做的是一套【举文财务管理系统】,给一家钢管厂用:
记日常收支、管客户应收和供应商应付、按订单算成本、出月度利润。

你先写下:这套系统「做对了」是什么样。
要求:
1. 至少三条
2. 其中至少有一条,我能拿计算器手工算一遍,跟系统对,必须一分不差
3. 每条都要写清楚「怎么验」——我敲什么、看到什么算对

写完之后停下来,等我确认,不要开始写代码。
1-B追一句:那条能算的在哪
你给的三条里,哪一条是我能拿计算器手工算出来对账的?
把那个数怎么算、在系统哪个页面看,一步步写给我。

你应该看到什么

三条判据,且至少一条长这样:

「在流水里录一笔 1234.56 元的支出,再录一笔 89.44 元的收入。

仪表盘上『本月支出』显示 1234.56、『本月收入』显示 89.44、『结余』显示 −1145.12。

我拿计算器算一遍,必须一模一样,连小数点后两位都一样。」

这句就是判据。它在后面第 4 讲会回来救学员一次。

第 2 讲 · 把一句话需求拆成表

时长:1 小时 | 目标:一份表结构清单(几张表、每张字段、什么类型)

这一讲要用的材料

提示词

2-A拆表
我说的是一句麻烦话,不是需求。你帮我拆成表结构。

麻烦是:钢管厂每天的收支记在纸上,月底对不上账;
客户的欠款靠脑子记,经常忘了催;每批钢管的成本算不清,不知道哪批赚钱。

请给我:
1. 需要几张表,每张表叫什么、干什么用的
2. 每张表有哪些字段,字段名、类型、是不是必填
3. 表之间怎么关联(谁引用谁的 id)
4. 数据从哪进来、从哪出去(哪几个页面)

这一轮只要清单,不要代码。
2-B让学员自己核一遍(关键的一句)
这份表结构,我核对了一下,有几点要改:
1. {学员自己的业务事实,比如「我们的运费不是按订单算的,是按车算的」}
2. {学员自己发现漏掉的,比如「要记开票号,催款的时候要报开票号」}
3. {学员自己发现多余的:哪张表现在用不上}

按我说的改,重新给我清单。还是不要代码。
2-C复查字段类型
检查一遍你刚才那份表结构,专门看三件事:
1. 有没有哪个字段把两件事塞在一起了
2. 有没有该是数字的字段用了文本
3. 表之间的关联方向对不对(是「多的那边记住一的那边」,还是反了)

有问题的指出来,告诉我为什么。没问题就说没问题,别硬找。

你应该看到什么

一份清单,长得差不多是这样(这是举文的真实结构,学员那份应该不一样):

表存什么
categories收支分类(销售收入 / 电费 / 运费……),区分收入支出
transactions每一笔流水:日期、类型、分类、金额、对方、说明、凭证图
customers / suppliers客户 / 供应商(名称、电话、联系人)
receivables客户应收:开票号、金额、已收、到期日
payables供应商应付:同上
cost_orders成本单:订单号、日期、品名、重量(吨)
cost_items成本项:原材料 / 辅料 / 电费 / 人工 / 运费……
voucher_imports凭证导入记录:防重复入账

九张表。学员那份可能是七张,也可能是十一张 —— 不要照着凑数,他的生意和他的麻烦才是准的。

第 3 讲 · 骨架先通:一条真数据走完全程

时长:1.5 小时 | 目标:录进第一条真实数据,刷新页面还在

这一讲要用的材料

提示词

3-A最小可跑
现在只做一件事:能录进一笔流水、能在页面上看见它。

要求:
1. 后端用 Python + FastAPI,数据库用 SQLite(一个文件,不用另装数据库)
2. 只建一张表:流水表,字段就按我们刚才定的
3. 一条命令能启动,告诉我这条命令
4. 页面上就一个表单 + 一个列表,页面干净就行,不要美化

别的什么都先别做 —— 不要仪表盘、不要报表、不要登录。
做完告诉我:启动命令,和「我怎么知道它跑起来了」。
3-B走一遍(让它自己走)
你自己跑一遍,把这条数据录进去:
日期今天、类型支出、分类电费、金额 1234.56、对方 供电所、说明 8 月电费

然后把列表页读回来的内容原样贴给我。
如果哪里不对,先告诉我,不要自己顺手改了。
3-C卡住了说这句
启动的时候报了这个错:
{原样粘贴错误}

用大白话告诉我:这是哪里不对、为什么会这样。
先不要改代码,我先听懂。

你应该看到什么

第 4 讲 · 把钱存对

时长:1 小时 | 目标:金额在系统里是整数,手工算的和系统显示的一分不差

这一讲要用的材料

提示词

4-A改存法
现在改一件事:金额一律用「分」存整数。

要求:
1. 数据库里金额字段是整数,单位是分(1234.56 元存成 123456)
2. 后端接口收到的、算的,也全是整数分
3. 只有显示给用户看的时候,才转成「元」带两位小数
4. 把现在代码里所有还在用小数存钱或算钱的地方找出来,列给我:哪个文件、哪一行、原来怎么写的

先别改,先把这份清单给我。
4-B全项目扫一遍
再全项目扫一遍,除了金额,还有没有别的数也需要这样处理?
比如重量、数量、比例、单价。

每一条告诉我:用它算钱吗?如果算,现在会不会因为小数出问题?

你应该看到什么

回到第 1 讲写的那条判据,拿计算器手工算一遍,跟系统对:

手工算系统显示一样吗
本月支出(一笔一笔加)
本月收入
结余收入 − 支出
单吨成本总成本 ÷ 重量

四行都要对上,一位小数都不能差。 对不上就别往下走 —— 这一讲之后的每一讲都建立在「数是对的」之上。

第 5 讲 · 一块一块长

时长:3 小时 | 目标:五个模块依次跑通,每一块验完再做下一块

这一讲要用的材料

提示词

5-0通用句式(每块都套这个)
现在只加【{模块名}】这一块。要求:

{这个模块要干什么,三到五条,说人话}

约束:
1. 不要动已经跑通的部分(流水记账和金额存法)
2. 做完告诉我启动命令,和一份「怎么验证」——我敲什么、看到什么算对
3. 这一块的「对了长什么样」是什么,先写给我看,我确认了你再动手
5.1仪表盘
要求:
1. 顶部四个数:本月收入、本月支出、结余、毛利
2. 支出按分类排行(哪个分类花得最多,从大到小)
3. 应收、应付各一个合计
4. 逾期未收的应收,单独列出来提醒

验收:手工把本月支出加一遍,和页面上那个数对,必须一样。
5.2流水记账
要求:
1. 列表能按月份、分类、收支类型筛选
2. 每一笔能改、能删
3. 每一笔能上传一张凭证图片(发票、收据、转账截图)
4. 图片传上去之后,点一下能看大图

验收:传一张真图,刷新页面,图还在。删掉那笔流水,图也不该再挂在那里。
5.3应收应付
要求:
1. 客户应收:开票号、金额、已收多少、还欠多少、到期日
2. 供应商应付:同上
3. 登记一笔收款,已收金额要加上去,不能覆盖
4. 到期日过了还没收完的,算逾期

验收:登记一笔 10000 元的应收,分两次收 6000 和 4000,最后欠款必须是 0。
      不能出现「收完了还差 1 分」。
5.4成本核算
要求:
1. 按订单建成本单:订单号、日期、品名、重量(吨)
2. 一张成本单下面挂多条成本项:原材料/辅料/电费/人工/运费/其他
3. 自动算单吨成本 = 这张单的总成本 ÷ 重量
4. 算出来的单吨成本,乘回重量,必须等于总成本(不能有尾差)

验收:建一张单,重量 3 吨,成本项加起来 10000 元。
     单吨成本显示 3333.33(或者带明细余数),但乘回 3 吨必须是 10000.00。
5.5利润报表
要求:
1. 按月出:收入、支出、毛利(销售收入 − 成本)
2. 一条年度趋势,能看出哪个月最好哪个月最差
3. 图上每一个柱子,鼠标放上去能看到具体数字

验收:随便挑一个月,把那个数字手工算一遍对一下。
5.6批量入账(最后做,能不做就不做)
要求:
1. 扫描一个文件夹里的凭证图片
2. 逐张识别出:金额、日期、对方、建议分类
3. 识别结果先当草稿列出来,我看过、改过,再勾选入账
4. 已经入过账的图片要自动跳过,不能重复入账

验收:故意把同一张图放进去两次,第二次必须被挡住。
      识别错了没关系(那是识别率的事),但入账重复了不行(那是账的事)。

第 6 讲 · 让系统自己检查自己

时长:1.5 小时 | 目标:一条命令能告诉我红还是绿,而且**它真的会红**

这一讲要用的材料

提示词

6-A写自检
给这个项目写一个自检脚本,一条命令跑完,告诉我红还是绿。

检查这些:
1. 金额在数据库里存的是不是整数分(把一条流水存进去再取出来,比一比)
2. 手工算的一个数,和系统算的对不对(就用第 1 讲那条判据)
3. 应收分两次收完,欠款是不是精确变成 0
4. 单吨成本乘回重量,等不等于总成本

要求:
- 一条命令能跑(告诉我命令)
- 每一项都要打印「过了」还是「没过」,没过的要打印实际值是多少
- 最后有一行总结,全过了说全过,有一项没过就明确告诉我几项没过
- 退出码:全过是 0,有没过的是 1(这样以后能挂到自动检查上)
6-B★ 全课最值钱的一句
现在做一件事:把刚才那条「金额必须是整数分」的检查,
暂时改坏一处(比如把某个地方改成用小数),然后跑一次自检。

我要看它是不是真的会红。

跑完把结果贴给我,然后把代码还原回去、再跑一次,确认变绿。
6-C追问
我不懂这段代码。用大白话告诉我:
1. 它是干什么的
2. 如果把它改坏了,我会在哪里看出来
3. 它有没有可能永远不报错(也就是白写)

你应该看到什么

如果改坏了还是绿的 —— 这不是「运气好」,是那条检查根本没接在这条路上。重写它。

假绿的样子底下发生了什么
改了但检查还是过检查写在了另一条路上,或者压根没被执行
检查报「未发现异常」而不是具体数字它没真的比对,只是没报错
所有项都过,但你明明知道有个数不对检查项写的是「函数能跑通」,不是「数对」

第 7 讲 · 看板管理:从「一个项目」到「一堆活着的项目」

时长:1 小时 | 目标:学员的系统在看板上亮着点,点一下就打开

这一讲要用的材料

提示词

7-A登记
把【举文财务管理系统】登记到看板。

信息:
- 名称:举文财务管理系统
- 一句话说明:钢管厂流水、应收应付、成本、利润
- 路径:{项目目录的完整路径}
- 端口:{服务端口}
- 启动命令:{那条命令}

登记完告诉我:现在看板上应该有它了,我怎么确认那个小圆点是亮的。
7-B清点
看一下现在看板上有哪些项目。逐个告诉我:
1. 名字和路径
2. 现在活着吗
3. 端口是多少
4. 是不是设了开机自启

活着的和死掉的分开列。
7-C补登记(学员自己发现漏了的时候用)
我刚加了一张卡片,可是那个小圆点一直是灰的,但我的服务明明是跑着的。
帮我看一下为什么。

你应该看到什么

第 8 讲 · 上线:三套自检全绿 ≠ 线上是新代码

时长:1 小时 | 目标:改完能自己重启、自己确认,并且知道什么时候不许上公网

这一讲要用的材料

提示词

8-A改完必做
重启一下服务。重启完,你自己访问一次它的健康检查接口(或者首页),
把返回的内容原样贴给我。

我要确认线上跑的是刚改完的这一版,不是上一版。
8-B让我能看出是哪一版
在健康检查接口里加一个版本号(比如日期时间),
这样我以后一眼就能看出线上跑的是哪一版。

加完重启,再访问一次给我看。
8-C同事也要能用
现在这套系统只在我自己这台电脑上能打开。
我们办公室还有三个人要用,他们的电脑能打开我电脑上的这个地址吗?

告诉我:
1. 需要改哪个地方
2. 改完之后有什么风险
3. 公司局域网里要注意什么

你应该看到什么

第 9 讲 · 把「做过一遍」变成「能再做一遍」

时长:1 小时 | 目标:理解「复用表结构和判据,不复用代码」

这一讲要用的材料

提示词

9-A先读再动
我上一套系统叫【举文财务管理系统】,在 {路径}。

现在要做一个新系统:{新需求,一两句}。

先不要写代码。先去读一遍上一套的结构,然后告诉我:
1. 哪几张表可以直接照搬
2. 哪几张必须改,改什么
3. 哪几张是上一套有、这一套压根用不上的
4. 这一套有没有上一套没有、必须新加的表

读完给我这份对照,等我确认。
9-B逼它做减法
你一张表都没删。这套需求里真的每张表都用得上吗?
重新看一遍,明确告诉我哪几张可以不要、为什么。
如果有拿不准的,说拿不准,别硬留。

你应该看到什么

一份对照清单,而且助手会说「这张表用不上」 —— 敢删的才是真读懂了。

第 10 讲 · 什么时候该承认做不了

时长:50 分钟 | 目标:学会说「这个我们不这么做」

这一讲要用的材料

提示词

10-A让它唱反调
下面这套需求,你判断一下:哪一部分做出来会不稳,
或者压根不该用「一个人 + 一个 AI 助手」这种方式做?

直说,别顺着我。我要的是你告诉我哪里会出问题。
10-B边界做成结构
这套系统里,有一件事我们**永远不做**:{比如「不代替客户自动下单」}。

现在不要只在说明里写一句「本系统不下单」。
告诉我:怎么让它在**代码层面**做不到这件事?
我要的是「换个人来运营也越不过去」,不是「我们承诺不做」。

附录 · 材料

附录 A · 十句提示词 —— 打开

附录 B · 提示词总索引 —— 打开

附录 C · 卡住了说哪句 —— 打开

附录 D · 不教什么、不承诺什么 —— 打开

教师侧 · 开课前要准备的 —— 见工具包 教师侧\ 文件夹(不要发给学员)