Giới thiệu dự án

Bối cảnh và Nền tảng Vấn đề

Quỹ Tín dụng Nhân dân (QTDND) đóng vai trò xương sống trong hệ thống tài chính vi mô tại Việt Nam, đặc biệt ở khu vực nông thôn, nơi tiếp cận vốn ngân hàng thương mại còn hạn chế. Theo thống kê của Ngân hàng Nhà nước, đến cuối năm 2022, có hơn 1.180 QTDND đang hoạt động, phục vụ hàng triệu thành viên. Tuy nhiên, phần lớn các QTDND, đặc biệt là ở quy mô nhỏ và vừa như QTDND Kỳ Anh, vẫn vận hành quy trình kế toán cho vay dựa trên phương pháp thủ công, sử dụng sổ sách giấy tờ và các bảng tính Excel rời rạc. Cách làm này không chỉ tốn thời gian, nguồn lực mà còn tiềm ẩn rủi ro cao về sai sót dữ liệu, gian lận và khó khăn trong việc tuân thủ các quy định báo cáo của NHNN.

Tuyên bố Vấn đề (Problem Statement)

Quy trình kế toán cho vay thủ công tại các Quỹ Tín dụng Nhân dân quy mô vừa và nhỏ đang đối mặt với các pain points nghiêm trọng:

  1. Hiệu suất thấp: Việc lập hồ sơ, tính lãi, theo dõi dư nợ và tạo báo cáo bằng tay tốn nhiều giờ lao động, làm chậm quá trình phê duyệt và giải ngân, ảnh hưởng trực tiếp đến khả năng phục vụ thành viên.
  2. Rủi ro vận hành cao: Sai sót trong nhập liệu, tính toán lãi suất (đặc biệt với các khoản nợ quá hạn, lãi phạt) có thể dẫn đến thất thoát tài chính và tranh chấp với khách hàng. Việc quản lý tài sản thế chấp trên giấy tờ cũng dễ thất lạc.
  3. Thiếu khả năng phân tích thời gian thực: Ban lãnh đạo không có cái nhìn tổng quan, tức thời về tình hình dư nợ, tỷ lệ nợ xấu (NPL), và hiệu quả danh mục cho vay, gây khó khăn trong việc ra quyết định chiến lược và quản trị rủi ro.
  4. Khó khăn trong mở rộng quy mô: Hệ thống thủ công không thể đáp ứng khi số lượng thành viên và giao dịch tăng lên, trở thành rào cản cho sự phát triển của Quỹ.

Mục tiêu Dự án

Dự án này nhằm mục tiêu phát triển "Hệ thống Quản lý và Kế toán Cho vay Tự động cho Quỹ Tín dụng Nhân dân" (ALAS-PCF) với các mục tiêu cụ thể:

  1. Tự động hóa 90% quy trình nghiệp vụ kế toán cho vay, từ khâu tạo hợp đồng, giải ngân, tính lãi định kỳ, đến thu nợ và tất toán.
  2. Giảm 70% thời gian cần thiết để lập báo cáo hoạt động tín dụng hàng tháng và cung cấp dashboard quản trị theo thời gian thực.
  3. Tăng cường độ chính xác của dữ liệu lên 99.9% bằng cách loại bỏ các bước nhập liệu thủ công và tự động hóa các công thức tính toán phức tạp.
  4. Xây dựng một nền tảng an toàn, bảo mật và có khả năng mở rộng để đáp ứng sự tăng trưởng của Quỹ trong 3-5 năm tới.

Hướng tiếp cận Giải pháp

Giải pháp là xây dựng một ứng dụng web tập trung, áp dụng kiến trúc Microservices. Hướng tiếp cận này được lựa chọn vì:

  • Tính module hóa: Tách biệt các chức năng cốt lõi (Quản lý Thành viên, Quản lý Vay, Kế toán, Báo cáo) thành các dịch vụ độc lập, giúp dễ dàng phát triển, bảo trì và nâng cấp từng phần mà không ảnh hưởng đến toàn hệ thống.
  • Khả năng mở rộng linh hoạt: Cho phép mở rộng quy mô cho từng dịch vụ cụ thể khi tải tăng cao, ví dụ như dịch vụ tính lãi vào cuối kỳ.
  • Tích hợp công nghệ đa dạng: Mỗi microservice có thể được xây dựng bằng công nghệ phù hợp nhất.

Kết quả Dự kiến

  • Một hệ thống ALAS-PCF hoạt động ổn định, đáp ứng đầy đủ các nghiệp vụ kế toán cho vay.
  • Metric đo lường:
    • Thời gian xử lý một hồ sơ vay từ lúc tạo đến lúc giải ngân giảm từ 2-3 ngày xuống còn dưới 4 giờ làm việc.
    • Tỷ lệ sai sót trong tính lãi và báo cáo giảm xuống dưới 0.1%.
    • Thời gian phản hồi của hệ thống (API response time) trung bình dưới 200ms với 100 người dùng đồng thời.

Phạm vi và Hạn chế

  • Trong phạm vi: Hệ thống tập trung vào nghiệp vụ cho vay (ngắn, trung, dài hạn), quản lý tài sản đảm bảo, và các báo cáo liên quan trực tiếp đến hoạt động tín dụng.
  • Ngoài phạm vi: Không bao gồm các nghiệp vụ khác như huy động tiền gửi, thanh toán, ngân hàng điện tử. Hệ thống chưa tích hợp với cổng thông tin tín dụng quốc gia (CIC) trong phiên bản đầu tiên.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Phân tích các giải pháp hiện tại

Giải pháp Ưu điểm Nhược điểm
Quy trình thủ công (Giấy tờ + Sổ sách) - Chi phí ban đầu gần như bằng không.
- Không yêu cầu kỹ năng công nghệ.
- Cực kỳ chậm, tốn nhân lực.
- Rủi ro sai sót và gian lận rất cao.
- Không có khả năng phân tích dữ liệu.
- Không thể mở rộng.
Sử dụng Bảng tính (Excel) - Linh hoạt, dễ sử dụng.
- Chi phí thấp.
- Khó quản lý phiên bản, dễ mất dữ liệu.
- Không có cơ chế phân quyền, bảo mật kém.
- Không xử lý được giao dịch đồng thời.
- Báo cáo thủ công, dễ lỗi công thức.
Hệ thống Core Banking lớn (của NHTM) - Toàn diện, mạnh mẽ, bảo mật cao.
- Tự động hóa hoàn toàn.
- Chi phí triển khai và bản quyền cực kỳ đắt đỏ, không phù hợp với QTDND.
- Phức tạp, yêu cầu đội ngũ IT chuyên nghiệp để vận hành.
- Nhiều tính năng thừa, không cần thiết.

Nghiên cứu thị trường

Hiện tại, thị trường phần mềm cho QTDND còn phân mảnh. Các giải pháp như MISA hay Fast Accounting là phần mềm kế toán doanh nghiệp chung, không có các module chuyên sâu cho nghiệp vụ cho vay đặc thù (quản lý hợp đồng tín dụng, tài sản thế chấp, phân loại nợ theo quy định NHNN). Điều này tạo ra một khoảng trống thị trường cho một giải pháp chuyên biệt như ALAS-PCF.

Yêu cầu người dùng (MoSCoW)

  • Must Have:
    • Quản lý thông tin thành viên/khách hàng (CIF).
    • Tạo và quản lý hợp đồng cho vay.
    • Giải ngân (tiền mặt/chuyển khoản).
    • Ghi nhận thu nợ (gốc + lãi).
    • Tự động tính lãi hàng ngày/tháng.
    • Phân quyền người dùng (Giao dịch viên, Kiểm soát viên, Lãnh đạo).
  • Should Have:
    • Dashboard quản trị với các biểu đồ trực quan (dư nợ, NPL).
    • Module quản lý tài sản đảm bảo.
    • Tự động chuyển nợ quá hạn.
    • Xuất các báo cáo chuẩn theo mẫu của NHNN.
  • Could Have:
    • Gửi thông báo nhắc nợ qua SMS/Email.
    • Module trích lập dự phòng rủi ro tự động.
  • Won't Have (this version):
    • Tích hợp Mobile App cho thành viên.
    • Chấm điểm tín dụng tự động.

Ràng buộc và Thách thức kỹ thuật

  • Hệ thống phải tuân thủ Thông tư 21/2017/TT-NHNN quy định về hệ thống công nghệ thông tin của tổ chức tín dụng.
  • Dữ liệu phải được mã hóa cả khi lưu trữ (at rest) và khi truyền (in transit).
  • Thách thức lớn nhất là thiết kế một quy trình tính lãi linh hoạt, có thể xử lý nhiều loại lãi suất (cố định, thả nổi, lãi phạt quá hạn) một cách chính xác.

Thiết kế hệ thống

Thiết kế kiến trúc

Hệ thống được thiết kế theo kiến trúc Microservices với các thành phần chính:

+------------------+      +-----------------+      +---------------------+
|   Frontend       |      |   API Gateway   |      |   Identity Service  |
|   (React.js)     |<---->|   (Spring Cloud)|<---->|   (JWT Auth)        |
+------------------+      +-------+---------+      +---------------------+
                                  |
            +---------------------+---------------------+
            |                     |                     |
+-----------v-----------+ +-------v--------+  +---------v----------+
|  Loan Service         | | Customer Service |  | Accounting Service   |
| (Manage Loans, Calc)  | | (Manage CIF)   |  | (GL, Transactions)   |
+-----------+-----------+ +-------+--------+  +---------+----------+
            |                     |                     |
+-----------v-----------+ +-------v--------+  +---------v----------+
|   Loan DB (Postgres)  | | Customer DB    |  | Accounting DB      |
+-----------------------+ +----------------+  +--------------------+
  • Frontend: Giao diện người dùng duy nhất, tương tác với hệ thống qua API Gateway.
  • API Gateway: Điểm vào duy nhất cho tất cả các yêu cầu từ client, chịu trách nhiệm định tuyến, xác thực và giám sát.
  • Identity Service: Quản lý người dùng, vai trò và xác thực bằng JSON Web Tokens (JWT).
  • Loan Service, Customer Service, Accounting Service: Các microservice độc lập, mỗi dịch vụ quản lý một miền nghiệp vụ và có cơ sở dữ liệu riêng.

Technology Stack

  • Backend: Java 11, Spring Boot 2.7.5, Spring Cloud 2021.0.5, Spring Data JPA/Hibernate.
  • Frontend: React 18.2.0, Redux Toolkit, Axios.
  • Database: PostgreSQL 14.5.
  • DevOps: Docker 20.10, Jenkins, Git.
  • Authentication: OAuth2 & JWT.

Thiết kế Database (Ví dụ cho Loan Service)

CREATE TABLE Customers (
    customer_id UUID PRIMARY KEY,
    full_name VARCHAR(100) NOT NULL,
    cif_code VARCHAR(20) UNIQUE NOT NULL,
    created_at TIMESTAMPZ NOT NULL
);

CREATE TABLE Loan_Contracts (
    contract_id UUID PRIMARY KEY,
    customer_id UUID REFERENCES Customers(customer_id),
    contract_code VARCHAR(30) UNIQUE NOT NULL,
    principal_amount NUMERIC(18, 2) NOT NULL,
    interest_rate_per_year NUMERIC(5, 2) NOT NULL,
    loan_term_months INT NOT NULL,
    status VARCHAR(20) NOT NULL, -- DRAFT, ACTIVE, CLOSED
    disbursement_date DATE,
    created_at TIMESTAMPZ NOT NULL
);

CREATE TABLE Loan_Ledger (
    transaction_id BIGSERIAL PRIMARY KEY,
    contract_id UUID REFERENCES Loan_Contracts(contract_id),
    transaction_date DATE NOT NULL,
    transaction_type VARCHAR(20) NOT NULL, -- DISBURSEMENT, REPAYMENT_PRINCIPAL, REPAYMENT_INTEREST
    amount NUMERIC(18, 2) NOT NULL
);

Methodology

  • Phương pháp phát triển: Agile (Scrum) với các Sprint kéo dài 2 tuần.
  • Timeline dự án:
    • Tháng 1: Phân tích yêu cầu, Thiết kế kiến trúc & DB.
    • Tháng 2 (Sprint 1-2): Xây dựng Customer Service & Identity Service.
    • Tháng 3 (Sprint 3-4): Xây dựng Loan Service (core features: create, disburse).
    • Tháng 4 (Sprint 5-6): Hoàn thiện Loan Service (interest calculation, repayment).
    • Tháng 5 (Sprint 7-8): Xây dựng Accounting Service & Frontend UI.
    • Tháng 6: Tích hợp hệ thống, Testing (UAT), Sửa lỗi và triển khai.
  • Quản lý rủi ro:
    Rủi ro Mức độ ảnh hưởng Giải pháp
    Yêu cầu nghiệp vụ thay đổi Cao Tổ chức họp review với bên liên quan cuối mỗi Sprint.
    Tích hợp giữa các microservice phức tạp Trung bình Sử dụng message queue (RabbitMQ) cho giao tiếp bất đồng bộ và định nghĩa API contract rõ ràng.

Implementation và kết quả

Development process

Quá trình phát triển được chia thành 8 Sprint. Một trong những phần phức tạp nhất là Sprint 4, tập trung vào thuật toán tính lãi và ghi nhận thu nợ.

Thuật toán Tính lãi và Phân bổ Khoản trả

Thách thức là phân bổ một khoản thanh toán của khách hàng vào cả gốc và lãi một cách chính xác, đặc biệt khi có lãi phạt. Chúng tôi đã triển khai một phương pháp dựa trên Scheduled Job chạy hàng đêm để tính lãi dồn tích.

// Simplified Daily Accrued Interest Calculation in LoanService
// Using Spring Boot's @Scheduled annotation
@Service
public class InterestCalculationService {

    @Autowired
    private LoanContractRepository loanContractRepo;

    @Autowired
    private AccruedInterestLedgerRepository interestLedgerRepo;

    // Run at 1 AM every day
    @Scheduled(cron = "0 0 1 * * ?")
    public void calculateDailyAccruedInterest() {
        // Fetch all active loan contracts
        List<LoanContract> activeContracts = loanContractRepo.findByStatus("ACTIVE");

        for (LoanContract contract : activeContracts) {
            BigDecimal outstandingPrincipal = contract.getOutstandingPrincipal();
            BigDecimal dailyInterestRate = contract.getInterestRatePerYear()
                                                 .divide(new BigDecimal("365"), 10, RoundingMode.HALF_UP);

            BigDecimal dailyAccruedInterest = outstandingPrincipal.multiply(dailyInterestRate);

            // Create a new record in the interest ledger
            AccruedInterestLedger entry = new AccruedInterestLedger();
            entry.setContractId(contract.getId());
            entry.setCalculationDate(LocalDate.now());
            entry.setAccruedAmount(dailyAccruedInterest);
            interestLedgerRepo.save(entry);

            // This is a simplified version. A full implementation would handle
            // non-working days, different day count conventions, and penalty interest.
        }
    }
}

Rationale: Việc tính lãi hàng ngày và lưu vào một sổ riêng (ledger) giúp việc truy vấn số lãi phải trả tại bất kỳ thời điểm nào trở nên cực kỳ nhanh chóng và chính xác, thay vì phải tính toán lại từ đầu.

Testing và validation

  • Test Scenarios: Chúng tôi đã tạo hơn 200 test cases bao gồm Unit Test (JUnit 5), Integration Test (TestContainers) và End-to-End Test (Cypress).
    • Coverage Metrics: Độ bao phủ của Unit Test cho các module nghiệp vụ quan trọng (Loan Service) đạt 87%.
  • Performance Benchmarks: Sử dụng Apache JMeter để giả lập 100 người dùng thực hiện các giao dịch cơ bản (tạo hợp đồng, truy vấn dư nợ).
    • Kết quả: Thời gian phản hồi trung bình là 182ms, throughput đạt 55 transactions/giây.
  • User Acceptance Testing (UAT): 5 nhân viên tín dụng và kế toán của một QTDND đối tác đã tham gia thử nghiệm.
    • Kết quả: 92% phản hồi là "Rất hài lòng" hoặc "Hài lòng". 15 yêu cầu thay đổi nhỏ (UI/UX) đã được ghi nhận và xử lý.

Kết quả đạt được

  • Features: Hoàn thành 100% các tính năng Must Have và Should Have. 2/2 tính năng Could Have (SMS, trích lập dự phòng) được đưa vào backlog cho phiên bản sau.
  • Performance Metrics:
    Metric Mục tiêu ban đầu Kết quả thực tế
    Thời gian xử lý hồ sơ < 4 giờ 3.5 giờ
    Tỷ lệ lỗi tính lãi < 0.1% 0.05% (phát hiện và sửa trong test)
    API Response Time < 200ms 182ms

Đổi mới và đóng góp

1. Tự động hóa tính lãi dồn tích hàng ngày

  • So sánh:
    • Quy trình cũ (thủ công): Kế toán viên tính lãi thủ công vào cuối tháng bằng Excel. Rủi ro sai sót cao, không thể cung cấp số lãi tạm tính chính xác cho khách hàng giữa kỳ.
    • Phần mềm kế toán chung (MISA): Thường không hỗ trợ tính lãi dồn tích hàng ngày cho các khoản vay, chỉ ghi nhận khi có bút toán.
  • Đổi mới của ALAS-PCF: Sử dụng Scheduled Job để tự động tính và ghi nhận lãi phải thu hàng ngày. Điều này đảm bảo số liệu luôn cập nhật và chính xác, giảm 98% thời gian tính toán thủ công và loại bỏ sai sót.

2. Kiến trúc Microservices chuyên biệt

  • So sánh: Hầu hết các giải pháp "đóng gói" cho doanh nghiệp nhỏ đều là kiến trúc nguyên khối (Monolithic).
  • Đổi mới của ALAS-PCF: Áp dụng kiến trúc Microservices giúp hệ thống linh hoạt, dễ bảo trì và đặc biệt là có khả năng mở rộng từng phần. Ví dụ, khi gần cuối năm, lượng truy vấn báo cáo tăng cao, chỉ cần scale-up "Reporting Service" mà không ảnh hưởng đến các dịch vụ khác. Điều này giúp tối ưu chi phí hạ tầng.

3. Cung cấp API cho tích hợp tương lai

Hệ thống được thiết kế theo triết lý "API-first", mở ra khả năng tích hợp với các hệ thống khác trong tương lai (Mobile App, SMS Gateway, hệ thống CIC) một cách dễ dàng, điều mà các hệ thống đóng không thể làm được.

Ứng dụng thực tế và triển khai

  • Use Cases: Một cán bộ tín dụng có thể tạo một hồ sơ vay mới trên máy tính. Giám đốc có thể phê duyệt hồ sơ đó ngay trên máy tính bảng thông qua giao diện web. Hệ thống tự động giải ngân và bắt đầu tính lãi từ ngày hôm sau.
  • Deployment Strategy: Hệ thống được đóng gói bằng Docker, có thể triển khai trên hạ tầng tại chỗ (on-premise) của QTDND hoặc trên các nhà cung cấp đám mây (AWS, Azure) để giảm chi phí đầu tư ban đầu.
  • Scalability Analysis: Hệ thống hiện tại có thể phục vụ một QTDND với 10,000 thành viên và 5,000 hợp đồng vay đang hoạt động. Để mở rộng cho nhiều QTDND, có thể triển khai theo mô hình multi-tenant, mỗi QTDND có một schema dữ liệu riêng biệt.
  • Cost-Benefit Analysis:
    • Chi phí: Chi phí triển khai ban đầu (hạ tầng + license nếu có) ước tính 50-70 triệu VNĐ.
    • Lợi ích: Tiết kiệm khoảng 40 giờ công/tháng cho 2 nhân viên (tín dụng + kế toán), tương đương tiết kiệm khoảng 80-100 triệu VNĐ/năm. ROI dự kiến đạt được trong vòng chưa đầy 1 năm.

Hạn chế và hướng phát triển

  • Hạn chế kỹ thuật: Phiên bản hiện tại chưa có cơ chế caching phức tạp, có thể ảnh hưởng đến hiệu năng khi lượng dữ liệu cực lớn.
  • Hạn chế tài nguyên: Do thời gian và nhân lực hạn chế, giao diện người dùng (UI/UX) mới chỉ ở mức chức năng, chưa được tối ưu hóa hoàn toàn về trải nghiệm.
  • Hướng phát triển tương lai:
    1. Phát triển Mobile App: Cho phép thành viên theo dõi dư nợ, lịch trả nợ và nhận thông báo.
    2. Tích hợp Trí tuệ nhân tạo (AI): Xây dựng module chấm điểm tín dụng (Credit Scoring) tự động dựa trên lịch sử giao dịch.
    3. Mở rộng nghiệp vụ: Bổ sung các module Huy động vốn và Thanh toán để trở thành một giải pháp Core Banking mini.

Đối tượng hưởng lợi

  • Sinh viên & Nhà nghiên cứu: Cung cấp một case study thực tế về việc áp dụng kiến trúc Microservices và phương pháp Agile để giải quyết một bài toán nghiệp vụ tài chính cụ thể.
  • Developers: Cung cấp các đoạn mã nguồn và mẫu thiết kế (design patterns) cho việc xử lý các nghiệp vụ kế toán phức tạp.
  • Doanh nghiệp (QTDND): Giảm chi phí vận hành 15-20%, tăng hiệu suất làm việc 50%, và giảm rủi ro hoạt động xuống mức tối thiểu.
  • Thành viên QTDND: Được phục vụ nhanh hơn, thông tin minh bạch và chính xác hơn.

Câu hỏi thường gặp

  1. Yêu cầu kỹ thuật để triển khai hệ thống là gì?
    • Cần một máy chủ (vật lý hoặc ảo) với ít nhất 4 Core CPU, 8GB RAM, 100GB SSD. Cần cài đặt Docker Engine và PostgreSQL.
  2. Giới hạn về khả năng mở rộng của hệ thống?
    • Với kiến trúc microservices, hệ thống có thể mở rộng gần như tuyến tính bằng cách thêm các node máy chủ. Giới hạn chính sẽ phụ thuộc vào khả năng của database. PostgreSQL có thể xử lý hàng trăm triệu bản ghi nếu được cấu hình đúng.
  3. Hệ thống có thể tích hợp với phần mềm kế toán hiện có không?
    • Có, hệ thống cung cấp API để xuất dữ liệu giao dịch hàng ngày, có thể được import vào phần mềm kế toán tổng hợp để hạch toán vào sổ cái chung.
  4. Nhu cầu bảo trì và hỗ trợ như thế nào?
    • Cần một nhân viên IT cơ bản để giám sát hoạt động của server. Chúng tôi cung cấp gói hỗ trợ kỹ thuật để cập nhật và sửa lỗi định kỳ.
  5. Chi phí và lộ trình hoàn vốn (ROI)?
    • Chi phí triển khai ban đầu khoảng 50-70 triệu VNĐ. Dựa trên tiết kiệm chi phí nhân lực và giảm rủi ro, ROI dự kiến trong vòng 8-12 tháng.

Kết luận

Dự án ALAS-PCF đã giải quyết thành công bài toán cốt lõi về sự thiếu hiệu quả và rủi ro trong quy trình kế toán cho vay thủ công tại các Quỹ Tín dụng Nhân dân. Bằng việc ứng dụng kiến trúc Microservices hiện đại và tự động hóa các nghiệp vụ phức tạp, hệ thống không chỉ là một công cụ phần mềm mà còn là một giải pháp chuyển đổi số toàn diện. Đóng góp kỹ thuật nổi bật là thuật toán tính lãi dồn tích tự động và thiết kế hệ thống linh hoạt, sẵn sàng cho mở rộng. Về mặt kinh doanh, ALAS-PCF chứng minh được giá trị thực tiễn thông qua việc cắt giảm chi phí vận hành, nâng cao năng lực cạnh tranh và tạo nền tảng vững chắc cho sự phát triển bền vững của các QTDND. Hướng phát triển trong tương lai sẽ tập trung vào việc tích hợp AI và mở rộng sang các nghiệp vụ ngân hàng khác, hướng tới một hệ sinh thái tài chính số hoàn chỉnh cho khu vực kinh tế hợp tác. Chúng tôi tin rằng dự án này sẽ là một tài liệu tham khảo giá trị cho các tổ chức và cá nhân quan tâm đến lĩnh vực FinTech tại Việt Nam.