Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh cuộc Cách mạng Công nghiệp 4.0 tác động sâu rộng đến lĩnh vực tài chính – ngân hàng, các chi nhánh ngân hàng luôn đặt ra yêu cầu rất cao về tính bảo mật, hiệu quả vận hành và tính chuẩn xác trong quy trình làm việc nhằm loại bỏ những sai sót phát sinh trong nghiệp vụ. Đề tài "Bank operation management application" (Ứng dụng quản lý hoạt động ngân hàng) được nhóm tác giả Trương Hùng Huy và Võ Đức Trung Hiếu thực hiện tại Khoa Kỹ thuật Phần mềm, Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM, dưới sự hướng dẫn của giảng viên Lê Thanh Trọng (hoàn thành vào tháng 01/2022).

Nghiên cứu tập trung giải quyết tình trạng quản lý theo quy trình cũ kém hiệu quả, thiếu tính đồng bộ và minh bạch giữa các phòng ban. Mục tiêu và nhiệm vụ cụ thể của đề tài bao gồm:

  1. Xây dựng một hệ thống phần mềm quản trị trực quan, hiện đại và dễ sử dụng dành cho thiết bị máy tính bảng tại chi nhánh ngân hàng.
  2. Tin học hóa toàn diện các quy trình nghiệp vụ cốt lõi: quản lý hồ sơ vay vốn (loan profile), thẩm định tài sản và khách hàng, xét duyệt/từ chối hồ sơ, lập hợp đồng vay vốn (loan contract) và xử lý các đơn từ nghiệp vụ phát sinh (loan application).
  3. Quản lý thông tin khách hàng, nhân viên, thực hiện chấm công ca làm việc và tổng hợp báo cáo thống kê doanh thu, giải ngân, thanh toán cho ban giám đốc.

Đối tượng nghiên cứu của đồ án là quy trình luân chuyển chứng từ và quản trị vận hành nghiệp vụ tín dụng tại chi nhánh ngân hàng. Phạm vi nghiên cứu tập trung vào mô hình vận hành nội bộ của chi nhánh với các vai trò nhân sự gồm Bộ phận Hỗ trợ (Support), Bộ phận Kinh doanh (Business), Bộ phận Thẩm định (Appraisal) và Ban Giám đốc (Board of Directors). Thời gian thực hiện đồ án diễn ra từ ngày 25/09/2021 đến ngày 05/01/2022.


Cơ sở lý thuyết và phương pháp

Đề tài áp dụng phương pháp luận phát triển phần mềm hướng đối tượng (Object-Oriented Software Development) với các nền tảng lý thuyết và công cụ phân tích thiết kế hệ thống chuẩn hóa:

  • Khung kiến trúc và mô hình thiết kế:
    • Kiến trúc Front-end: Mô hình MVVM (Model - View - ViewModel) trên nền tảng Android Native, kết hợp Data Binding và cơ chế Dependency Injection (Hilt).
    • Kiến trúc Back-end: Mô hình MVC (Model - View - Controller) xây dựng trên nền Node.js, ExpressJS và Socket.io để xử lý logic nghiệp vụ, cung cấp RESTful API và đồng bộ dữ liệu thời gian thực giữa các thiết bị.
    • Hệ quản trị cơ sở dữ liệu: MongoDB – cơ sở dữ liệu hướng tài liệu (document-oriented database) kết hợp thư viện Mongoose ODM.
  • Phương pháp nghiên cứu và thu thập dữ liệu:
    • Phương pháp nghiên cứu tài liệu (Document research method): Tìm hiểu cơ cấu tổ chức ngân hàng, hiện trạng hạ tầng công nghệ thông tin và quy trình nghiệp vụ tín dụng thực tế.
    • Phương pháp phỏng vấn (Interview method): Khảo sát trực tiếp các kỹ năng tin học của nhân viên, yêu cầu giao diện và nhu cầu về các tính năng chức năng của từng bộ phận.
  • Khảo sát hiện trạng hạ tầng và nhân sự:
    • Phần cứng máy chủ/máy trạm: Khảo sát các cấu hình từ CPU Intel Xeon Platinum 8280 / AMD Ryzen Threadripper PRO 3995WX, bộ nhớ RAM 16GB - 64GB, card đồ họa GeForce RTX 3090 / Radeon RX 6900 XT, đường truyền cáp quang Viettel 120Mbps qua bộ định tuyến Ubiquiti EdgeRouter 4 hỗ trợ 500 người dùng đồng thời.
    • Phần mềm và môi trường: Hệ điều hành Android, Android Studio, Visual Studio Code, MongoDB Compass, Amazon Web Services (AWS), Heroku.

Nội dung chính theo từng chương

Chương I & II: Tổng quan hệ thống và hiện trạng dự án (System requirement & State of the project)

Chương này phân tích cơ cấu tổ chức của ngân hàng gồm Ban Giám đốc, Hội đồng quản lý rủi ro, Phòng Quan hệ khách hàng, Phòng Thẩm định tài sản, Phòng Xử lý nợ, Phòng Kế toán, Trung tâm thanh toán, v.v. Trên cơ sở đó, đồ án xác định các yêu cầu chức năng (nhận hồ sơ, thẩm định, duyệt hồ sơ, tạo hợp đồng, gia hạn, miễn giảm, thanh lý, chấm công, thống kê) và hệ thống yêu cầu phi chức năng cụ thể:

Tiêu chí phi chức năng Yêu cầu chi tiết được xác lập
Hiệu năng (Effectiveness) Tạo hợp đồng: 500 hợp đồng/lần; Tìm kiếm hợp đồng/đơn: 500 - 1000 ms; Lưu dữ liệu: tức thì; Gửi thông báo: 1 - 3 giây; Lập báo cáo: 1 - 3 giây.
Độ tiện dụng (Convenience) Thời gian hướng dẫn tạo hợp đồng dưới 5 phút (tỷ lệ lỗi trung bình 1%); Tìm kiếm hợp đồng/đơn dưới 3 phút; Hướng dẫn tạo báo cáo dưới 10 phút.
Tính tương thích (Compatibility) Hoạt động trên mọi thiết bị cài đặt ứng dụng không phụ thuộc phiên bản HĐH; Xuất báo cáo, hồ sơ, hợp đồng qua máy in độc lập loại máy in.
Bảo mật và an toàn (Security & Safety) Phân quyền truy cập theo vai trò; không cho phép xóa các hồ sơ, chứng từ của khách hàng đang có hợp đồng còn hiệu lực với ngân hàng.
Yêu cầu kỹ thuật (Technology) Định vị lỗi trung bình dưới 15 phút; sửa lỗi trung bình trong 1 giờ; hoàn thành hệ thống trong 4 - 6 tuần; đổi CSDL trong 2 ngày.

Chương III: Thiết kế Use Case của dự án (Use-case of the project)

Hệ thống định nghĩa 5 tác nhân (Actors) chính: Board of Directors (BOD), Business Department, Appraisal Department, Support Department và System (hệ thống tự động). Toàn bộ hệ thống bao gồm 23 Use Case chi tiết, chia thành 4 nhóm nghiệp vụ chính:

  • Quản lý hợp đồng (Contract management): Review contract, Find contract, Liquidate contract, Send contract to customer via mail, Create disburse certificate, Create payment receipt, Create loan contract.
  • Quản lý hồ sơ vay (Loan profile management): Create Loan Profile, Review Loan Profile, Find Loan Profile, Reject Loan Profile, Approve Loan Profile, Delete Loan Profile.
  • Quản lý đơn từ phát sinh (Loan application management): Create Loan Application, Review Loan Application, Find Loan Application, Reject Loan Application, Approve Loan Application, Delete Loan Application.
  • Quản lý khách hàng (Customer management): Create customer, Edit customer info, Review customer, Find customer.

Chương IV: Sơ đồ lớp và mô hình dữ liệu (Class diagram explanation)

Chương này đặc tả chi tiết cấu trúc dữ liệu cho 12 bảng/collection chính trong MongoDB: Loan Profile, Staff, Branch Info, TimeKeeping, Customer, Proof Of Income Img, Loan Contract, Disburse Certificate, Liquidation Application, Liquidation Decision, Payment Receipt, Exemption Application, Exemption Decision, Extension Application, Extension Decision. Đi kèm là các bảng danh mục (Enums) chuẩn hóa trạng thái hồ sơ (Pending, Done, Rejected, Deleted), loại chứng minh thu nhập, loại hình vay (7 loại), phân loại khách hàng và phân quyền vai trò nhân viên.

Chương V, VI & VII: Sơ đồ hoạt động, trạng thái và trình tự (Activity, Status & Sequence diagrams)

Tài liệu mô hình hóa chi tiết:

  • Sơ đồ hoạt động: Luồng đăng nhập 2 bước (xác thực mã chi nhánh branchCode trước, sau đó xác thực tài khoản nhân viên email/password), luồng xử lý hồ sơ vay và tạo hợp đồng.
  • Sơ đồ trạng thái: Vòng đời xác thực người dùng; vòng đời đơn vay (Pending -> Rejected / Resolved); vòng đời hồ sơ vay (Pending -> Approved / Rejected -> Paid).
  • Sơ đồ tuần tự: Các chuỗi tương tác giữa Admin, Client Incombank và Server khi tạo hồ sơ vay (enterLoanProfileInformation), tạo đơn vay, tạo hợp đồng vay và ra quyết định phê duyệt.

Chương VIII & IX: Kiến trúc ứng dụng và thiết kế giao diện (Architecture & Interface design)

Mô tả chi tiết kiến trúc phân tầng hệ thống và thiết kế toàn diện 20 màn hình giao diện người dùng trên thiết bị máy tính bảng (tablet) cho hệ thống mang thương hiệu Incombank.

Chương X: Môi trường phát triển, triển khai và đánh giá (Environment, Achievement & Future development)

Tổng kết môi trường xây dựng phần mềm, các tiêu chuẩn kỹ thuật đã đạt được và định hướng mở rộng các công nghệ mới trong tương lai.


Thiết kế và triển khai

1. Kiến trúc hệ thống

Hệ thống được thiết kế theo mô hình client-server đa tầng phân tách rõ ràng trách nhiệm:

+-------------------------------------------------------------------+
|               FRONT-END LAYER (Android Native App)                |
|  - Target: Tablet (1920x1080px)      - Language: Kotlin           |
|  - Architecture: MVVM (Model - View - ViewModel)                  |
|  - Components: Data Binding, LiveData/Observables, Hilt DI        |
+---------------------------------+---------------------------------+
                                  | RESTful API & WebSocket
+---------------------------------v---------------------------------+
|                    BACK-END LAYER (Node.js)                       |
|  - Architecture: MVC (Model - View - Controller)                  |
|  - Frameworks: ExpressJS, Socket.io (real-time data sync)         |
|  - Language: JavaScript              - Hosting: Heroku            |
+---------------------------------+---------------------------------+
                                  | Mongoose ODM
+---------------------------------v---------------------------------+
|                    DATABASE LAYER (MongoDB)                       |
|  - Document-based collections & relational ObjectId references    |
+-------------------------------------------------------------------+

2. Mô hình thực thể dữ liệu nghiệp vụ

Hệ thống lưu trữ và xử lý các thực thể dữ liệu chính với các thuộc tính và ràng buộc được thiết kế chặt chẽ:

Thực thể (Entity) Các thuộc tính chính Ràng buộc / Ý nghĩa
Loan Profile _id, customerId, staffId, loanApplicationNumber, proofOfIncomeList, moneyToLoan, loanPurpose, loanDuration, collateral, expectedSourceMoneyToRepay, benefitFromLoan, SignatureImg, loanType, dateCreated, status, approverId, branchId Lưu toàn bộ hồ sơ vay vốn, hình ảnh chứng minh thu nhập và chữ ký khách hàng.
Customer _id, name, dateOfBirth, address, identityNumber, identityCardCreatedDate, phoneNumber, permanentResidence, email, customerType, businessRegistrationCertificate, compayRules Phân loại khách hàng cá nhân (Resident) hoặc doanh nghiệp (Business).
Staff _id, role, staffName, password, email, token, branchId, timekeeping Lưu mật khẩu mã hóa (hashed-password), phân quyền vai trò (1: Support, 2: Business, 3: Director, 4: Appraisal).
Loan Contract _id, branchId, loanProfileId, commitment, signatureImg, createdAt, contractNumber Hợp đồng tín dụng chính thức được tạo sau khi hồ sơ vay được BOD phê duyệt.
Disburse Certificate _id, contractId, certNumber, amount, dateCreated Giấy chứng nhận giải ngân từng đợt gắn với hợp đồng vay.
Application & Decision Gồm các cặp: Liquidation, Exemption, Extension (chứa contractId, reason, amount, status, approver, BODSignature) Xử lý các nghiệp vụ thanh lý trước hạn, miễn giảm lãi/phí và gia hạn hợp đồng.
TimeKeeping _id, clockIn, clockOut Ghi nhận thời gian bắt đầu và kết thúc ca làm việc của từng nhân viên.

3. Thiết kế giao diện và luồng tương tác

Giao diện ứng dụng được thiết kế chuyên biệt cho thiết bị máy tính bảng độ phân giải tiêu chuẩn 1920x1080px, bao gồm các cụm chức năng chính:

  • Cụm xác thực và chấm công: Màn hình chào (Welcome), Đăng nhập chi nhánh (Sign in branch code), Đăng nhập nhân viên (Sign in staff), Giao diện chấm công đầu ca (Start shift), kết thúc ca (End shift) và bảng tóm tắt thời gian làm việc (Summarize).
  • Cụm quản trị hợp đồng và chứng từ: Màn hình tra cứu hợp đồng kèm bộ lọc đa tiêu chí, màn hình chi tiết hợp đồng tích hợp biểu đồ trực quan, danh sách giải ngân và danh sách phiếu thu. Màn hình chi tiết các quyết định gia hạn, miễn giảm, thanh lý và giao diện thêm đợt giải ngân mới (Add disburse screen).
  • Cụm quản lý hồ sơ vay vốn: Màn hình danh sách hồ sơ vay hiển thị bằng RecyclerView, màn hình chi tiết hồ sơ tích hợp giao diện duyệt/từ chối dành riêng cho Ban Giám đốc và màn hình tạo hợp đồng vay kèm chức năng tải lên chữ ký số (signature image).
  • Cụm xử lý đơn từ và khách hàng: Giao diện quản lý các loại đơn phát sinh, giao diện hồ sơ khách hàng tích hợp hệ thống chấm điểm phân hạng (Silver/Gold) và giao diện chỉnh sửa thông tin khách hàng.
  • Cụm quản trị và thống kê (Admin/Statistic): Màn hình thống kê doanh thu theo phân loại vay, tổng số tiền đã giải ngân, tổng số tiền đã thanh toán theo từng năm và tính năng nạp số dư (Add balance).

Kết quả và đóng góp

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

Đồ án đã xây dựng hoàn chỉnh hệ thống phần mềm quản lý hoạt động ngân hàng đáp ứng đầy đủ các yêu cầu chức năng và phi chức năng đã đề ra:

  • Phần mềm chạy ổn định trên môi trường Android Native (Android 10 trở lên, RAM tối thiểu 2GB, độ phân giải 1920x1080px).
  • Áp dụng chuẩn mực thiết kế và lập trình hiện đại: mô hình MVVM với Kotlin trên Android, kiến trúc MVC với ExpressJS trên Back-end, sử dụng Hilt Dependency Injection và ViewModel.
  • Tích hợp thành công giao thức WebSocket (Socket.io) giúp đồng bộ hóa trạng thái dữ liệu tức thời giữa các thiết bị nhân viên và ban giám đốc trong chi nhánh.
  • Hệ thống hóa toàn bộ quy trình tín dụng khép kín: từ khâu tiếp nhận hồ sơ, thẩm định, phê duyệt, tạo hợp đồng, giải ngân, xử lý đơn phát sinh đến quản trị nhân sự chấm công và báo cáo tài chính.

2. Tiến độ triển khai dự án

Quá trình xây dựng và hoàn thiện phần mềm được nhóm tác giả ghi nhận qua các mốc phiên bản trong tài liệu:

Phiên bản Ngày hoàn thành Nội dung công việc thực hiện
v1.0 25/09/2021 Mô tả hệ thống, xây dựng cấu trúc, xác định chức năng và khởi tạo dự án.
v1.1 30/09/2021 Phân tích yêu cầu, xây dựng sơ đồ Use Case và thiết kế cơ sở dữ liệu.
v1.2 10/10/2021 Thiết kế giao diện ban đầu của ứng dụng trên Figma.
v1.3 20/10/2021 Lập trình song song với quá trình hoàn thiện thiết kế giao diện.
v1.4 10/12/2021 Hoàn thành toàn bộ các chức năng nghiệp vụ theo yêu cầu.
v1.5 15/12/2021 Xử lý lỗi hệ thống và bổ sung các chức năng quản trị dành cho quản lý.
v1.6 25/12/2021 Kiểm thử phần mềm và sửa chữa các lỗi phát sinh.
v1.7 30/12/2021 Viết báo cáo tổng kết hệ thống.
v2.0 05/01/2022 Hoàn thiện toàn diện và phát hành hệ thống phần mềm.

Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế được ghi nhận:
    • Tầng Back-end được triển khai lưu trữ trên nền tảng máy chủ Heroku gói miễn phí, dẫn đến tốc độ xử lý và hiệu năng bị giới hạn khi tải các tác vụ lớn hoặc lượng truy cập tăng cao.
  • Hướng phát triển trong tương lai (Future development):
    1. Ứng dụng Trí tuệ nhân tạo (Machine Learning / Deep Learning): Nhận diện và tự động trích xuất thông tin khách hàng từ ảnh chụp thẻ Căn cước công dân / Chứng minh nhân dân (OCR).
    2. Ứng dụng công nghệ Chuỗi khối (Blockchain): Triển khai hợp đồng thông minh (Smart Contract) trong việc ký kết và thực thi hợp đồng vay vốn nhằm nâng cao tính minh bạch và bảo mật.
    3. Chương trình chăm sóc khách hàng: Xây dựng cơ chế tạo sự kiện, ưu đãi và chiết khấu tự động dựa trên điểm thưởng và phân hạng khách hàng (Silver, Gold).
    4. Tự động hóa nhân sự: Tích hợp tính năng tự động tính lương nhân viên dựa trên dữ liệu chấm công đầu ca/cuối ca (Clock In / Clock Out).
    5. Tích hợp máy quét mã vạch: Hỗ trợ quét mã vạch (Barcode Scanner) trực tiếp trên trang thông tin để tra cứu nhanh hồ sơ khách hàng.

Giá trị tham khảo

Đồ án là tài liệu tham khảo chuyên khảo hữu ích cho sinh viên ngành Kỹ thuật Phần mềm, Khoa học Máy tính và Công nghệ Thông tin đang thực hiện đồ án môn học hoặc khóa luận tốt nghiệp về phát triển phần mềm doanh nghiệp:

  • Phân tích và thiết kế hệ thống: Cung cấp mẫu tài liệu chuẩn mực về đặc tả Use Case, thiết kế bảng dữ liệu NoSQL (MongoDB), xây dựng sơ đồ trạng thái, sơ đồ hoạt động và sơ đồ tuần tự cho nghiệp vụ tài chính ngân hàng.
  • Kiến trúc phần mềm: Cung cấp giải pháp triển khai thực tế mô hình MVVM trên Android Native (Kotlin) kết hợp RESTful API và WebSocket trên Node.js/ExpressJS.
  • Thiết kế UI/UX: Cung cấp bộ bố cục chi tiết cho ứng dụng quản trị trên màn hình lớn (tablet) với đầy đủ các thành phần điều khiển và luồng nghiệp vụ thực tế.

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

1. Ai là người có thẩm quyền phê duyệt hoặc từ chối hồ sơ vay vốn trong hệ thống?
Theo phân quyền hệ thống, Ban Giám đốc (Board of Directors - BOD) là tác nhân duy nhất có thẩm quyền phê duyệt (Approve), từ chối (Reject) hoặc xóa (Delete) hồ sơ vay vốn (Loan Profile) và các đơn từ phát sinh (Loan Application), đồng thời là vai trò ký các quyết định thanh lý, miễn giảm và gia hạn.

2. Hệ thống hỗ trợ những loại hình vay vốn (Loan Type) nào?
Hệ thống hỗ trợ 7 loại hình vay vốn chuẩn hóa trong bảng Enum:

  1. Cho vay từng lần (Each Time)
  2. Cho vay theo hạn mức tín dụng (Credit Line)
  3. Cho vay theo dự án đầu tư (Investment Project)
  4. Cho vay trả góp (Installment)
  5. Hạn mức tín dụng dự phòng (Standby Credit Limit)
  6. Cho vay theo hạn mức thấu chi (Under Overdraft Limit)
  7. Cho vay đáp ứng vốn (Capital Meeting)

3. Cơ sở dữ liệu của ứng dụng quản lý những loại chứng minh thu nhập (Proof of Income) nào?
Hệ thống phân loại và lưu trữ 5 hình thức chứng minh thu nhập thông qua ảnh:

  1. Hợp đồng lao động (Labor Contract)
  2. Xác nhận lương (Salary Confirmation)
  3. Hợp đồng cho thuê nhà (House Rental Contract)
  4. Hợp đồng cho thuê xe (Car Rental Contract)
  5. Giấy phép đăng ký kinh doanh (Business License)

4. Quy định an toàn dữ liệu đối với việc xóa hồ sơ và chứng từ khách hàng được thiết lập như thế nào?
Hệ thống quy định tuyệt đối không được phép xóa các hồ sơ, tài liệu và chứng từ liên quan đến những khách hàng hiện đang có hợp đồng vay vốn còn hiệu lực với ngân hàng. Đối với các hồ sơ đã xóa hợp lệ, hệ thống cho phép chọn giữa hai cơ chế: lưu trữ để phục hồi lại (Recover) hoặc xóa vĩnh viễn không thể khôi phục (Actual delete).

5. Kiến trúc kỹ thuật và môi trường triển khai tối thiểu của ứng dụng là gì?
Ứng dụng sử dụng kiến trúc MVVM ở Front-end (viết bằng Kotlin trên Android Native) và kiến trúc MVC ở Back-end (viết bằng JavaScript trên Node.js/ExpressJS/Socket.io, CSDL MongoDB). Ứng dụng yêu cầu thiết bị máy tính bảng chạy hệ điều hành Android 10 trở lên, bộ nhớ RAM tối thiểu 2GB và màn hình hiển thị độ phân giải 1920x1080px.


Kết luận

Đồ án "Bank operation management application" của sinh viên Trương Hùng Huy và Võ Đức Trung Hiếu đã giải quyết thành công bài toán tin học hóa quy trình quản trị nghiệp vụ tín dụng và vận hành chi nhánh ngân hàng. Bằng việc kết hợp kiến trúc MVVM trên nền tảng Android Kotlin cho tablet và kiến trúc MVC trên Node.js/MongoDB, hệ thống đảm bảo tính đồng bộ dữ liệu thời gian thực và tự động hóa các khâu từ tiếp nhận hồ sơ, thẩm định, tạo hợp đồng đến thống kê báo cáo. Đây là công trình hoàn chỉnh về quy trình phát triển phần mềm hướng đối tượng, có giá trị học thuật và ứng dụng thực tiễn cao trong đào tạo kỹ thuật phần mềm.