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

Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ và quá trình phổ cập tin học diễn ra sâu rộng, máy tính cá nhân đã trở thành công cụ quen thuộc trong đời sống hàng ngày của nhiều hộ gia đình. Tuy nhiên, công tác quản lý tài chính và chi tiêu nội bộ gia đình phần lớn vẫn được thực hiện theo phương thức truyền thống thông qua sổ sách viết tay hoặc dựa vào trí nhớ cá nhân của người nội trợ (người mẹ, người vợ). Phương thức này bộc lộ nhiều hạn chế như dễ thất thoát dữ liệu, thống kê không đầy đủ, tốn nhiều thời gian và công sức ghi chép.

Đề tài "Xây dựng hệ thống quản lý chi tiêu cho các thành viên trong gia đình" (Đề tài số 15 thuộc học phần Project 1) được thực hiện bởi nhóm sinh viên Viện Công nghệ Thông tin và Truyền thông – Trường Đại học Bách Khoa Hà Nội, dưới sự hướng dẫn của TS. Vũ Thị Hương Giang và ThS. Nguyễn Ngọc Dũng.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài bao gồm:

  1. Khảo sát và thu thập yêu cầu thực tế về bài toán quản lý tài chính hộ gia đình, phân loại các nguồn thu nhập, chi tiêu cá nhân và các khoản chi tiêu chung.
  2. Phân tích và thiết kế hệ thống phần mềm hướng đối tượng theo mô hình phân tầng MVC (Model - View - Controller).
  3. Thiết kế cơ sở dữ liệu quan hệ nhằm lưu trữ thông tin người dùng, phân quyền truy cập, các giao dịch tài chính và các khoản đóng góp chung.
  4. Lập trình và cài đặt hoàn chỉnh ứng dụng quản lý chi tiêu trên nền tảng Java kết nối hệ quản trị cơ sở dữ liệu MySQL thông qua JDBC.
  5. Kiểm thử các chức năng và hoàn thiện giao diện đồ họa phục vụ người dùng.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình ghi nhận thu chi, phê duyệt giao dịch, phân bổ đóng góp chi tiêu chung và tổng hợp thống kê tài chính cá nhân/hộ gia đình.
  • Phạm vi triển khai: Ứng dụng độc lập (desktop application) được xây dựng và hoàn thành tại Trường Đại học Bách Khoa Hà Nội vào tháng 12 năm 2013.

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

Đồ án ứng dụng phương pháp phân tích thiết kế hệ thống hướng đối tượng và quy trình phát triển phần mềm chuẩn:

  • Phương pháp phân tích và mô hình hóa: Sử dụng ngôn ngữ mô hình hóa hợp nhất (UML) để xây dựng hệ thống biểu đồ Use Case (tổng quan và phân rã mức 2), đặc tả chi tiết kịch bản sử dụng, biểu đồ trình tự (Sequence Diagram) cho các nghiệp vụ chính và biểu đồ lớp (Class Diagram).
  • Mô hình kiến trúc phần mềm: Áp dụng mô hình kiến trúc MVC (Model - View - Controller) nhằm tách biệt giữa tầng giao diện người dùng, tầng xử lý điều khiển nghiệp vụ và tầng truy xuất cơ sở dữ liệu.
  • Phương pháp thiết kế cơ sở dữ liệu: Chuẩn hóa dữ liệu theo mô hình quan hệ (Relational Model), xác định khóa chính (Primary Key), các liên kết khóa ngoại và kiểu dữ liệu tương thích giữa MySQL và Java.
  • Nguồn dữ liệu: Dữ liệu hoạt động mô phỏng từ các giao dịch tài chính cá nhân, thu nhập định kỳ, các khoản chi dùng sinh hoạt chung trong phạm vi gia đình.

Phân công công việc và khối lượng thực hiện của các thành viên trong nhóm nghiên cứu:

Họ và tên Mã sinh viên Nội dung công việc đảm nhiệm Tỷ lệ giao Đánh giá hoàn thành
Hồ Thúc Đồng 20112574 Phân tích yêu cầu, vẽ biểu đồ Use Case chính; Thiết kế cơ sở dữ liệu; Xây dựng chức năng đăng nhập/đăng xuất, nhập dữ liệu giao dịch, tham gia chi chung, cập nhật thông tin cá nhân; Kiểm thử chương trình. 33% 95%
Hà Xuân Thuyên 20112302 Phân tích thiết kế hệ thống; Xây dựng lớp kết nối cơ sở dữ liệu; Xây dựng chức năng thống kê, phê duyệt của Manager, cấp lại mật khẩu và phân quyền của Admin; Thiết kế giao diện đồ họa; Kiểm thử chương trình. 33% 95%
Nguyễn Thanh Cường 20112551 Phân tích yêu cầu hệ thống; Thiết kế cơ sở dữ liệu; Xây dựng module truy xuất dữ liệu, chức năng đăng ký, tìm kiếm dữ liệu, màn hình hướng dẫn sử dụng; Xây dựng báo cáo và slide thuyết trình. 33% 90%

Thiết kế và triển khai

Kiến trúc phần mềm và cấu trúc các lớp

Hệ thống được tổ chức thành 3 tầng chức năng riêng biệt:

  • Tầng giao diện (GUI - View): Xây dựng khung cửa sổ chính MainFrame (kế thừa từ JFrame) chứa các thành phần điều khiển JPanel đại diện cho các màn hình nghiệp vụ:
    • Function: Màn hình điều hướng các chức năng chính.
    • Help: Màn hình hướng dẫn người dùng thao tác phần mềm.
    • Information: Màn hình trang chủ hiển thị bảng thống kê và các công cụ quản trị.
    • Login: Giao diện xử lý đăng nhập và đăng ký thành viên.
    • Search: Giao diện tìm kiếm dữ liệu theo từ khóa, thời gian, khoảng tiền.
    • Security: Màn hình quản lý và cập nhật thông tin cá nhân.
    • Trade: Màn hình nhập giao dịch, duyệt giao dịch và đóng góp chi chung.
  • Tầng điều khiển (Controller - package control):
    • Control: Lớp trung tâm tiếp nhận sự kiện (actionPerformed), kiểm tra dữ liệu đầu vào (kTra), điều phối hiển thị (setVisible), điều hướng dữ liệu từ giao diện xuống tầng thực thi và ngược lại.
    • Main: Lớp chứa hàm main khởi tạo đối tượng Control để kích hoạt chương trình.
  • Tầng thực thi và truy xuất dữ liệu (Data Access - package jdbc):
    • Connect: Quản lý kết nối JDBC đến MySQL (jdbc:mysql://localhost:3306/mydb), thực thi các thao tác SQL (insert, update, procedure, login, getColumnName, getRow).
    • CreateQuery: Lớp tập trung định dạng các mẫu câu truy vấn SQL (SELECT, INSERT, UPDATE) cung cấp cho lớp Connect.
                    +---------------------------------------+
                    |          TẦNG GIAO DIỆN (GUI)         |
                    | MainFrame, Function, Help, Trade,     |
                    | Information, Login, Search, Security  |
                    +---------------------------------------+
                                        |  ^
                       Bắt sự kiện      |  |  Cập nhật hiển thị
                       người dùng       v  |  dữ liệu
                    +---------------------------------------+
                    |         TẦNG ĐIỀU KHIỂN (CONTROL)     |
                    |                Lớp Control            |
                    +---------------------------------------+
                                        |  ^
                       Gọi hàm nghiệp vụ|  |  Trả về tập kết quả
                       & tạo truy vấn   v  |  (ResultSet/Vector)
                    +---------------------------------------+
                    |          TẦNG THỰC THI (JDBC)         |
                    |         Lớp Connect, CreateQuery      |
                    +---------------------------------------+
                                        |  ^
                       Truy vấn SQL     |  |  Kết quả truy vấn
                                        v  |
                    +---------------------------------------+
                    |      HỆ QUẢN TRỊ CSDL (MySQL)         |
                    |                mydb                   |
                    +---------------------------------------+

Thiết kế cấu trúc cơ sở dữ liệu

Cơ sở dữ liệu của hệ thống gồm 7 bảng quan hệ:

Tên bảng Tên trường Kiểu dữ liệu Khóa / Ghi chú
Thanhvien Idthanhvien
Username
Password
Hoten
Dienthoai
Diachi
Dvcongtac
Char(11)
Varchar(45)
Varchar(45)
Varchar(45)
Int(11)
Varchar(45)
Char(45)
Khóa chính (PK)
Tài khoản đăng nhập
Mật khẩu xác thực
Họ và tên thành viên
Số điện thoại
Địa chỉ cư trú
Đơn vị công tác
Giaodich Idgiaodich
Noidung
Sotien
Thoidiem
Hinhthuc
Trangthai
Thanhvien_id
Int(11)
Varchar(45)
Int(11)
Datetime
Varchar(45)
Varchar(45)
Int(11)
Khóa chính (PK)
Nội dung giao dịch
Số tiền phát sinh
Thời điểm giao dịch
Hình thức chi tiêu
Trạng thái duyệt
Mã định danh thành viên
Nguonchi Idnguonchi
Noidung
Trangthai
Chuthich
Sotien
Magiaodich
Int(11)
Varchar(45)
Varchar(45)
Varchar(45)
Int(11)
Int(11)
Khóa chính (PK)
Nội dung khoản chi
Trạng thái chi
Ghi chú chi tiết
Số tiền chi
Mã giao dịch liên kết
Nguonthu Idnguonthu
Noidung
Sotien
Magiaodich
Int(11)
Varchar(45)
Int(11)
Int(11)
Khóa chính (PK)
Nội dung khoản thu
Số tiền thu nhập
Mã giao dịch liên kết
Quyenhan Idquyenhan
Noidung
Giatri
Thanhvien_id
Int(11)
Varchar(45)
Int(11)
Int(11)
Khóa chính (PK)
Tên quyền hạn
Giá trị phân quyền
Mã thành viên
Hangmuc Idhangmuc
Tenhangmuc
Noidung
Trangthai
Masochi
Sotien
Int(11)
Varchar(45)
Varchar(45)
Tinyint(1)
Int(11)
Int(11)
Khóa chính (PK)
Tên hạng mục chung
Nội dung mô tả
Trạng thái hoàn thành
Mã sổ chi liên quan
Tổng số tiền cần chi
Thamgia Idthamgia
Masochi
Sotien
Thanhvien_id
Donggop
Int(11)
Int(11)
Int(11)
Int(11)
Int(11)
Khóa chính (PK)
Mã sổ chi
Số tiền tham gia
Mã thành viên đóng góp
Giá trị tiền đóng góp

Công nghệ cài đặt và kết nối dữ liệu

  • Ngôn ngữ Java (J2SE): Tận dụng tính độc lập nền tảng, cơ chế máy ảo Java Virtual Machine (JVM), xử lý luồng và hệ sinh thái thư viện giao diện đồ họa Java Swing.
  • Môi trường phát triển: NetBeans IDE hỗ trợ thiết kế giao diện kéo thả trực quan và quản lý biên dịch.
  • Cơ sở dữ liệu MySQL: Đảm bảo tính toàn vẹn dữ liệu quan hệ, tốc độ xử lý câu lệnh nhanh, chi phí vận hành mở.
  • Cơ chế kết nối JDBC (Java Database Connectivity): Sử dụng các lớp và giao diện chuẩn thuộc gói java.sql và javax.sql:
    • DriverManager: Nạp trình điều khiển cơ sở dữ liệu và mở kết nối.
    • Connection: Thiết lập phiên làm việc kết nối trực tiếp đến MySQL database.
    • Statement / PreparedStatement: Thực thi các câu lệnh truy vấn SQL tĩnh và câu lệnh tiền biên dịch.
    • ResultSet: Lưu trữ và điều hướng tập kết quả trả về từ lệnh SELECT.
    • SQLException: Bắt và xử lý ngoại lệ phát sinh trong quá trình truy xuất dữ liệu.

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

CHƯƠNG I: KHẢO SÁT ĐẶC TẢ YÊU CẦU BÀI TOÁN

Chương I phân tích toàn diện yêu cầu nghiệp vụ và xác lập ranh giới hệ thống:

  • Khảo sát yêu cầu bài toán: Đầu vào của hệ thống là thông tin thu chi cá nhân và gia đình (thời gian, lý do, số tiền, hạng mục, ghi chú); đầu ra là các chức năng cập nhật, tìm kiếm và báo cáo tài chính.
  • Hệ thống tác nhân (Actors):
    • Actor: Người dùng chưa có tài khoản, có quyền đăng ký thành viên mới.
    • Member: Thành viên tiêu chuẩn, quản lý chi tiêu cá nhân, thêm giao dịch, xem giao dịch và tham gia đóng góp các khoản chi tiêu chung.
    • Manager: Người quản lý chi tiêu gia đình, có thẩm quyền duyệt hoàn thành các giao dịch cá nhân và giao dịch chi chung để đưa vào thống kê.
    • Admin: Quản trị viên hệ thống, quản lý tài khoản, cấp lại mật khẩu và phân chia quyền hạn (Member/Manager).
  • Hệ thống Use Case: Xây dựng biểu đồ tổng quan gồm 8 Use Case chính (Đăng nhập, Đăng xuất, Đăng ký, Giao dịch, Tìm kiếm, Thống kê, Bảo mật, Hướng dẫn) và các Use Case con tương ứng.
  • Đặc tả luồng sự kiện: Mô tả chi tiết luồng sự kiện chính, sự kiện phụ, tiền điều kiện và hậu điều kiện cho 5 nghiệp vụ cốt lõi: Đăng nhập, Đăng ký, Tìm kiếm, Giao dịch và Thống kê.

CHƯƠNG II: PHÂN TÍCH THIẾT KẾ BÀI TOÁN

Chương II tập trung chi tiết hóa thiết kế kỹ thuật của hệ thống:

  • Thiết kế dữ liệu: Xây dựng cấu trúc 7 bảng quan hệ chi tiết gồm các kiểu dữ liệu, ràng buộc khóa chính và quan hệ giữa các bảng.
  • Biểu đồ trình tự (Sequence Diagrams): Mô tả quy trình tương tác tuần tự giữa Giao diện, Điều khiển và Cơ sở dữ liệu cho 6 nghiệp vụ chính:
    1. Đăng nhập (7 bước): Tiếp nhận thông tin, gửi yêu cầu điều khiển, truy vấn CSDL, kiểm tra quyền hạn, thông báo kết quả.
    2. Đăng ký thành viên mới (7 bước): Kiểm tra tính hợp lệ dữ liệu form, tạo bản ghi mới trong bảng Thanhvien, gán quyền mặc định là Member.
    3. Thêm giao dịch (7 bước): Kiểm tra định dạng số tiền/nội dung, ghi nhận giao dịch mới vào cơ sở dữ liệu.
    4. Xác nhận giao dịch (13 bước): Manager lựa chọn giao dịch chưa duyệt, xác thực điều kiện và cập nhật trạng thái hoàn thành.
    5. Tham gia chi chung (15 bước): Thành viên tra cứu khoản chi chung, nhập mức đóng góp, cập nhật bảng Thamgia và tính toán lại phần tiền cần hoàn thành.
    6. Thống kê (7 bước): Tiếp nhận tiêu chí lọc theo tháng/hạng mục, truy vấn cơ sở dữ liệu và hiển thị kết quả tổng hợp.
  • Thiết kế chi tiết các lớp: Xác định danh sách thuộc tính và phương thức hoạt động cho hai lớp trung tâm là Control (chịu trách nhiệm bắt sự kiện, điều phối logic) và Connect (chịu trách nhiệm tạo kết nối, thực thi câu lệnh SQL, ánh xạ dữ liệu sang DefaultTableModel).

CHƯƠNG III: CÔNG NGHỆ VÀ THUẬT TOÁN SỬ DỤNG

Chương III trình bày cơ sở kỹ thuật và các công cụ được lựa chọn để phát triển phần mềm:

  • Ngôn ngữ lập trình Java: Đánh giá các đặc tính hướng đối tượng hoàn toàn, tính độc lập nền tảng ("Viết một lần, chạy mọi nơi"), hỗ trợ lập trình đa luồng (Multi-threading) và tính an toàn cao.
  • Môi trường phát triển NetBeans: Khai thác công cụ kéo thả giao diện đồ họa GUI Builder, hỗ trợ quản lý ngoại lệ và tự động gợi ý phương thức.
  • Hệ quản trị cơ sở dữ liệu MySQL: Sử dụng hệ thống quản trị cơ sở dữ liệu nguồn mở với hiệu năng truy vấn nhanh, tính ổn định và tính tương thích cao với nền tảng Java.
  • Kiến trúc trình điều khiển JDBC: Mô tả cơ chế làm việc của JDBC API, vai trò của DriverManager, các đối tượng Connection, Statement, PreparedStatement, CallableStatement, ResultSet và cơ chế ánh xạ dữ liệu trực tiếp vào các bảng giao diện JTable.

CHƯƠNG IV: KẾT QUẢ CHƯƠNG TRÌNH MINH HỌA

Chương IV minh chứng kết quả triển khai thực tế của sản phẩm phần mềm:

  • Kết nối thành công giữa tầng giao diện đồ họa Java và cơ sở dữ liệu MySQL thông qua JDBC theo đúng kiến trúc 3 tầng.
  • Triển khai đầy đủ các màn hình giao diện người dùng:
    • Giao diện khởi động: Tích hợp song song form đăng nhập và form đăng ký tài khoản trực quan.
    • Giao diện quản lý giao dịch: Cho phép tạo mới giao dịch cá nhân, đăng ký hạng mục chi tiêu chung, phê duyệt trạng thái giao dịch dành cho Manager.
    • Giao diện tìm kiếm dữ liệu: Cung cấp 3 chế độ tìm kiếm độc lập theo từ khóa nội dung, khoảng thời gian phát sinh và phạm vi số tiền.
    • Giao diện thống kê tài chính: Báo cáo tổng nguồn thu, tổng nguồn chi, thống kê các khoản chi chung và tính toán tự động số dư chênh lệch thu - chi trong tháng của từng thành viên.
    • Giao diện quản trị hệ thống: Cho phép Admin thực hiện cập nhật hồ sơ, đặt lại mật khẩu và phân định vai trò người dùng (Member hoặc Manager).

CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Chương V tổng kết quá trình thực hiện bài tập lớn Project 1:

  • Đánh giá mức độ đáp ứng của phần mềm đối với các yêu cầu đặt ra ban đầu về mặt chức năng, cấu trúc dữ liệu và trải nghiệm giao diện người dùng.
  • Định hướng các hạng mục nghiên cứu và mở rộng chức năng trong tương lai nhằm nâng cao tính ứng dụng của hệ thống.

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

Báo cáo bài tập lớn đã đạt được các kết quả kỹ thuật cụ thể:

  1. Thiết kế hoàn chỉnh hệ thống quản lý chi tiêu gia đình: Xây dựng đầy đủ tài liệu phân tích thiết kế bao gồm hệ thống Use Case, 6 biểu đồ trình tự chi tiết và thiết kế cơ sở dữ liệu chuẩn hóa 7 bảng.
  2. Cài đặt thành công ứng dụng trên Java và MySQL: Xây dựng cấu trúc mã nguồn theo mô hình phân tầng rõ ràng (gói control, gói jdbc, hệ thống giao diện Swing), đảm bảo tính module hóa và dễ bảo trì.
  3. Phân quyền người dùng chặt chẽ: Hiện thực hóa cơ chế phân quyền 3 cấp độ tác nhân (Admin, Manager, Member), giải quyết bài toán kiểm soát chi tiêu cá nhân song song với việc minh bạch hóa các khoản đóng góp chi tiêu chung trong hộ gia đình.
  4. Tích hợp các công cụ hỗ trợ tài chính thiết thực: Triển khai thành công các module tìm kiếm đa tiêu chí (từ khóa, thời gian, số tiền) và công cụ tính toán số dư thu chi hàng tháng tự động.

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

Hạn chế và các định hướng mở rộng được ghi nhận từ phạm vi đề tài:

  • Phạm vi triển khai: Hệ thống hiện tại đang vận hành dưới dạng ứng dụng đơn máy (Desktop Application) kết nối cơ sở dữ liệu nội bộ qua localhost:3306, chưa hỗ trợ triển khai phân tán trên môi trường Web hoặc ứng dụng di động.
  • Phương thức lưu trữ thông tin: Mặc dù yêu cầu ban đầu có đề cập đến việc lưu trữ hình ảnh hóa đơn/chứng từ và đánh tag tìm kiếm, hệ thống trong giai đoạn này chủ yếu tập trung xử lý dữ liệu dạng văn bản và số liệu tài chính.
  • Hướng phát triển tiếp theo:
    • Nâng cấp và hoàn thiện các tính năng mở rộng theo đặc tả nghiệp vụ nâng cao.
    • Tối ưu hóa giao diện người dùng và mở rộng khả năng xuất báo cáo tài chính trực quan.
    • Phát triển phiên bản đa nền tảng nhằm phục vụ các thành viên gia đình truy cập từ xa qua thiết bị di động hoặc trình duyệt web.

Giá trị tham khảo

Tài liệu là tài liệu tham khảo thực tiễn dành cho:

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Đặc biệt là sinh viên thực hiện các học phần Đồ án môn học, Project 1, Project 2 hoặc Đồ án tốt nghiệp định hướng xây dựng ứng dụng Java Core/Java Swing kết hợp cơ sở dữ liệu quan hệ.
  • Người học phân tích thiết kế hệ thống: Tham khảo phương pháp xây dựng biểu đồ Use Case, biểu đồ trình tự, thiết kế cơ sở dữ liệu quan hệ và áp dụng mô hình phân tầng MVC trong một bài toán quản lý thực tế.

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

1. Hệ thống phân chia người dùng thành những nhóm quyền nào và chức năng của từng nhóm là gì?
Hệ thống phân quyền người dùng thành 3 nhóm tác nhân chính sau khi đăng nhập:

  • Member: Người dùng thông thường, có quyền ghi nhận giao dịch cá nhân, xem giao dịch và tham gia đóng góp vào các khoản chi chung của gia đình.
  • Manager: Người quản lý chi tiêu, có quyền duyệt các giao dịch cá nhân và chi chung để ghi nhận hoàn thành phục vụ thống kê.
  • Admin: Quản trị viên, có quyền phân quyền tài khoản (chuyển đổi giữa Member và Manager) và cấp lại mật khẩu cho các thành viên.

2. Cơ sở dữ liệu của phần mềm gồm những bảng nào và lưu trữ thông tin gì?
Cơ sở dữ liệu của phần mềm gồm 7 bảng:

  • Thanhvien: Lưu trữ thông tin cá nhân và tài khoản thành viên.
  • Giaodich: Lưu trữ thông tin chung về các phát sinh giao dịch.
  • Nguonchi và Nguonthu: Chi tiết hóa các khoản chi và nguồn thu nhập.
  • Quyenhan: Lưu thông tin phân quyền tương ứng với từng thành viên.
  • Hangmuc: Lưu thông tin các hạng mục chi tiêu chung trong gia đình.
  • Thamgia: Lưu thông tin đóng góp tài chính của từng thành viên cho các hạng mục chi chung.

3. Tầng thực thi (Data Access) của ứng dụng được xây dựng như thế nào?
Tầng thực thi nằm trong package jdbc, gồm hai lớp:

  • Lớp Connect: Chịu trách nhiệm kết nối trực tiếp đến cơ sở dữ liệu MySQL thông qua JDBC URL jdbc:mysql://localhost:3306/mydb với tài khoản root, cung cấp các phương thức mở/đóng kết nối, lấy cấu trúc cột/hàng và thực thi các câu lệnh INSERT/UPDATE/SELECT.
  • Lớp CreateQuery: Chứa các mẫu câu truy vấn SQL định sẵn nhằm trừu tượng hóa và cung cấp câu lệnh tương ứng cho lớp Connect.

4. Chức năng tìm kiếm trong phần mềm hỗ trợ những phương thức nào?
Chức năng tìm kiếm hỗ trợ 3 phương thức tra cứu độc lập:

  • Tìm kiếm theo từ khóa văn bản.
  • Tìm kiếm theo mốc thời gian (ngày, tháng).
  • Tìm kiếm theo giới hạn khoảng số tiền (nhập số tiền cận dưới và cận trên).

Kết luận

Bài tập lớn Project 1 "Xây dựng hệ thống quản lý chi tiêu cho các thành viên trong gia đình" của nhóm sinh viên Trường Đại học Bách Khoa Hà Nội đã giải quyết trọn vẹn bài toán quản lý tài chính hộ gia đình bằng giải pháp tin học hóa. Ứng dụng được thiết kế bài bản theo mô hình phân tầng MVC, tổ chức cơ sở dữ liệu quan hệ chặt chẽ và cài đặt hoàn chỉnh trên nền tảng Java kết nối MySQL qua JDBC. Hệ thống đáp ứng đầy đủ các chức năng quản lý giao dịch cá nhân, phân bổ đóng góp chi chung, tìm kiếm và thống kê số dư tài chính theo từng tháng. Đây là tài liệu mẫu mực về quy trình phân tích, thiết kế và hiện thực hóa phần mềm ứng dụng trong đào tạo công nghệ thông tin.