# Al-Insaf：含总账与贷款的合作社金融平台

Company: Webanion
Service: 初创项目开发
Period: 2025-11 - present
Tech: NestJS, PostgreSQL, TypeScript, React, Vite, OpenFGA, Docker, Node.js
Web: https://al-insafonline.com
Canonical: https://webanion.com/zh/portfolio/al-insaf-cooperative-finance-platform-with-ledger-and-loans

一家合作社金融机构此前把社员档案、储蓄、贷款和投资人资本分散在纸质记录与电子表格之间，既无法审计任何一个网点，也无法干净地完成日终结账。我们构建了一套系统把这些全部收拢：社员登记、每日收款、从申请到放款的完整贷款流程、多网点总账、投资人资本，以及一份记录谁做了什么的审计日志。工作人员在每笔收款发生时当场记录，管理者审批贷款并完成日终结账，而权限模型决定每个角色能看到什么、能做什么，而不是简单地把按钮藏起来。本案例研究中展示的一切都运行在预置的演示数据上；真实的社员档案从不出现在作品集材料中。

## 完整故事

一家曾经依靠纸张和电子表格运作的合作社，如今如何通过一本经过审计的总账，处理每一笔收款、每一笔贷款、每个投资人账户和每天的日终结账。

### 一家靠纸张运转的合作社

<p>Al-Insaf 是一家由小商户组成的储蓄合作社。社员小额存钱、小额借款，外勤人员每天上门收取分期还款和储蓄，并把每一笔款项记在本子上。社员档案、储蓄、贷款和投资人资本分散在纸质记录和电子表格之间，贷款要在一张张办公桌之间传递等人签字，既无法审计一个网点，也无法干净利落地完成日终结账。</p><p>此前的一套系统证明了这个思路行得通，但几乎任何人都能查看和修改几乎任何内容。合作社需要一套符合自身真实运作方式的系统，一套社员和投资人都能放心托付资金的系统。</p>

### 每一笔款项，发生的那一刻就入账

<p>过去，一笔收款在有人把它录入之前，只存在于外勤人员的笔记本里。现在，可以按姓名、电话或卡号找到社员，储蓄存款、取款、费用或支出当场记到其名下，每条记录还可以带上收款地点的 GPS 位置。当天的现金收入、现金支出和净额就显示在表单旁边，办公室因此能实时看到当天的情况，而不是等到第二天早上。</p><p>任何记录都不会事后改写。错误的记录会被冲销，只有经理才能更正收款，因此办公室可以信任收到的每一个数字，社员也可以相信自己付的钱都已入账。</p>

### 每晚结账、每晚平衡的账簿

<p>每个界面背后都有一本按网点分设的复式记账总账。每天夜里，定时结账程序会在所有网点运行，锁定当天的记录，检查试算平衡，并为库存现金生成快照；需要时，也可以手动结束或重新打开某一天。月末结账从本就平衡的每一天开始。</p>

### 从申请到最后一期还款，委员会全程可追踪的贷款

<p>过去，一笔贷款靠纸质文件在办公桌之间流转，没人能确切说出它进行到了哪一步。现在，申请只需录入一次，就会公开地从待审批推进到已批准，再到已放款，每一步由谁操作、为何操作都有记录，包括驳回及其原因。已放款的贷款附带分期还款计划，每一期都标明已收或逾期；申请表、贷款函和 angikarnama（即社员签署的承诺书）都从同一条记录打印。</p><p>申请、审批和放款是彼此分开的权限，可以按角色（管理员、经理、外勤人员、监察员和社员）开启，也可以单独授予某一个人，无需改动代码。权限模型决定每个角色能看到什么、能做什么，而不是把按钮藏起来；网点员工只能看到自己的网点，审计日志记录谁改了什么。</p>

### 为担责的人，一眼看清整个网点

<p>仪表盘把网点的整体状况集中在一个屏幕上：活跃社员、未偿贷款、储蓄总额、投资人资本、本月收款情况以及资金去向，支出类别则使用办公室记账所用的语言。月度总账和报表只需点击一下即可打开。</p><p>过去以对账开场的委员会会议，如今直接从决策开始；办公室里可以用浅色主题，漫长的夜晚则可以换成深色主题。</p>

### 同一场对话，用每个人思考时的语言

<p>办公室和外勤员工在平台内部互发消息，因此关于某位社员或某天收款的问题会留在负责它的网点，而不是散落在某人的私人聊天软件里。整个界面一键即可在孟加拉语和英语之间切换，每位社员登记时都会同时录入两种文字的姓名，消息既可以看译文，也可以看原文。</p><p>员工用自己思考时的语言工作，也没人需要再开一个应用去问今天过得怎么样。</p>

### 按资金攸关的标准来测试

<p>因为资金确实攸关。每次改动都会运行集成测试套件，重放各条资金路径，包括存款、贷款全生命周期、投资人付款和日终结账，确保新功能不会悄无声息地破坏任何余额。登录、OpenFGA 权限、功能开关和审计追踪都来自 <a href="/portfolio/gm-libs-reusable-nestjs-packages-for-auth-data-and-crud">gm-libs</a>，这是工作室自己的 NestJS 软件包，最先在这个平台上经受打磨。</p><p>对社员来说，这意味着付出的每一笔钱都被记录、被尊重；对外勤人员来说，是一目了然的一天；对委员会来说，是敢于为之背书的账簿；对投资人来说，是可以自行核对的账户；对合作社来说，则是一条可以一个网点一个网点扩展而不失控的道路。本文中的每个界面展示的都是预置的演示数据，这与平台对待社员档案的方式一致。</p>

### 投资人能确切看到自己的资金状况

<p>投资人与社员的储蓄一起向合作社投入资本，这笔钱必须像任何一笔存款一样被仔细核算。每位投资人都有一个账户，显示其当前资本、已投入金额、已提取金额和已向其支付的款项，每个数字背后都有一份注明日期的对账单。</p><p>追加资本、提取资本和向投资人付款，都与其他所有业务一样过入同一本复式记账总账，且只有超级管理员可以操作，管理员和监察员只能查看。网点仪表盘上的投资人资本就是这些账户的合计，支付给投资人的利息列入网点的支出，所以当投资人问起自己的资金状况时，办公室依据账簿而不是凭记忆作答。</p>

### 整个月，一张表

<p>办公室过去要在电子表格里手工重做的月度账目，如今就是一张表：每位社员按行排列，每一天按列排开，每笔存款和取款各占一格，每位社员的合计列在最后。哪一天空缺，一眼便知；这张表还能导出为 Excel，表头可选孟加拉语或英语，供委员会存档。</p>
