Vì vậy, mục tiêu của đề tài “Phát triển hệ thốngquản lý tài chính - Finsmart” cụ thể như sau: Nhanh chóng, hiệu quả: hầu hết các công việc đều diễn ra trên máy tính, với các thao tác đơ
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trường Điện – Điện Tử
-
-BÁO CÁO BÀI TẬP LỚN
Môn: Kỹ thuật phần mềm ứng dụng
Đề tài: Ứng dụng quản lý tài chính cá nhân - Finsmart
Phạm Huy Anh 20213745
Nguyễn Văn Hiếu 20213756
Lê Anh Khôi 20213761
GV hướng dẫn: Vũ Hải
Hà Nội, tháng 1 năm 2024
Trang 2MỤC LỤC LỜI NÓI ĐẦU
CHƯƠNG 0: GIỚI THIỆU DỰ ÁN
0.1 TỔNG QUAN
0.2 MỤC TIÊU DỰ ÁN
0.3 TÍNH KHẢ THI
0.3.1 Khả thi về mặt kỹ thuật
0.3.2 Khả thi về mặt kinh tế
0.3.3 Khả thi về mặt tổ chức
0.4 KHỞI TẠO DỰ ÁN
0.5 TỔ CHỨC CÔNG VIỆC
0.5.1 Thành viên
0.5.2 Thời gian tổng thể
0.5.3 Thời gian chi tiết
0.6 CÔNG CỤ SỬ DỤNG
CHƯƠNG 1: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
1.1 TÌM HIỂU YÊU CẦU
1.1.1 Yêu cầu chức năng
1.1.2 Yêu cầu phi chức năng
1.2 PHÂN TÍCH HỆ THỐNG
1.2.1 Biểu đồ phân cấp chức năng
1.2.2 Biểu đồ luồng dữ liệu mức 0 và 1
1.2.3 Biểu đồ Use Case
1.2.4 Activity Diagram
1.2.5 System Sequence Diagram
1.3 THIẾT KẾ HỆ THỐNG
1.3.1 Cấu trúc chương trình
1.3.2 Các lớp đối tượng
CHƯƠNG 2: THIẾT KẾ CƠ SỞ DỮ LIỆU
Trang 32.1 Chuẩn hóa cơ sở dữ liệu
2.2 Kiểu dữ liệu của các thuộc tính
2.3 Mối quan hệ giữa các bảng
2.4 Thiết kế giao diện
CHƯƠNG 3: SẢN PHẨM
3.1 CÀI ĐẶT
3.2 TESTING
3.3 DEBUGGING
3.4 KẾT QUẢ
LỜI CẢM ƠN
LỜI NÓI ĐẦU
Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng điện tử, công nghệ thông tin cũng đạt được rất nhiều những thành tựu to lớn, góp công rất lớn trong công cuộc xây dựng và phát triển xã hội của nhân loại Điều này thể hiện qua việc máy tính điện tử trở nên phổ biến và gần gũi với mọi người, việc tiếp cận với hệ thống thông tin quản lý trở trành mục tiêu hang đầu của các tổ chức, doanh nghiệp cho mục đích quản lý thông tin của mình Do đó, nhóm chúng em đã lựa chọn đề tài “Thiết kế hệ thống quản lý tài chính - Finsmart”
Qua quá trình tìm hiểu và xây dựng phần mềm trên thực tế, cùng với những kiến thức được học trên giảng đường, chúng em mới thực sự cảm nhận được những khó khăn khi xây dựng và phát triển một phần mềm hoàn chỉnh Để có thể xây dựng được một phần mềm hoàn thiện, không chỉ đơn thuần là lập trình, mà còn rất nhiều công việc khác cần phải thực hiện Các công việc này được sắp xếp trong các phần với trình tự rất hợp lí, khoa học
Phần mềm này được nhóm em xây dựng nhằm hỗ trợ cho người sử dụng có nhu cầu quản lý thu nhập, chi tiêu cá nhân một cách khoa học, tránh việc phải tính toán thủ công mất nhiều thời gian mà không đảm bảo sự hợp lý trong chi tiêu Đây là phần mềm đầu tiên mà nhóm em xây dựng nên không thể tránh khỏi những hạn chế và thiếu sót, kính mong thầy bổ sung, góp ý để phần mềm ngày càng hoàn thiện và thực sự hữu ích với người sử dụng
Trang 4Nhóm em xin chân thành cảm ơn!!!
Trang 5CHƯƠNG 0: GIỚI THIỆU DỰ ÁN
0.1 TỔNG QUAN
Việc quản lý chi tiêu chưa bao giờ là dễ dàng, đặc biệt với những người mới bắt đầu công việc và kiếm được những khoản tiền lương đầu tiên Tuy nhiên, nếu việc chi tiêu không có kế hoạch, không hợp lý sẽ khiến ta nhanh chóng bị cuốn vào vòng xoáy của nợ nần Vậy quản lý chi tiêu thế nào cho hợp lý?
Với khối lượng người cần quản lý lớn như vậy, nhưng hiện nay đa số các giai đoạn và các nghiệp vụ quản lý vẫn được làm thủ công, trách nhiệm chưa tập trung chủ yếu vào quản lý chặt chẽ lượng thu nhập cá nhân Nó dẫn đến việc tiêu sài hoang phí vào những nhu cầu không cần thiết ảnh hưởng đến chất lượng sống của các cá nhân đó Chính vì thế nên nhu cầu quản lý chi tiêu ngày càng nhiều
0.2 MỤC TIÊU DỰ ÁN
Dự án này ra đời trong hoàn cảnh trên, với mục tiêu xây dựng một hệ thống phần mềm giúp tự động hóa tối đa các giai đoạn và các nghiệp vụ quản lý chi tiêu nhằm đáp ứng các nhu cầu hiện tại Vì vậy, mục tiêu của đề tài “Phát triển hệ thống quản lý tài chính - Finsmart” cụ thể như sau:
Nhanh chóng, hiệu quả: hầu hết các công việc đều diễn ra trên máy tính,
với các thao tác đơn giản, việc xử lý dữ liệu cũng nhanh chóng, không mất nhiều thời gian
Chính xác và đầy đủ: Thông tin được cập nhật đầy đủ, cung cấp các thao
tác cập nhật, thêm, sửa, xóa…dễ dàng để thông tin có độ chính xác gần như 100%
Quản lý dễ dàng: Người làm công tác quản lý có thể tra cứu tất cả các
thông tin một cách nhanh chóng và kết quả trả về hoàn toàn chính xác và hết sức nhanh chóng
0.3 TÍNH KHẢ THI
0.3.1 Khả thi về mặt kỹ thuật
Hiện nay hầu hết các ứng dụng đều áp dụng CNTT vào công việc quản lý thay cho việc sử dụng sổ sách, giấy tờ như trước đây và đem lại hiểu quả rất cao Do đó, ta có thể hoàn toàn tin tưởng vào tính khả thi của hệ thống này
Trang 6 Hơn nữa, ứng dụng được thiết kế khá đơn giản, dễ dàng sử dụng với mọi đối tượng và tương thích với mọi hệ điều hành Hệ thống không đòi hỏi kèm theo các thiết bị và công nghệ hiện đại nên gần như người quản lý dễ dàng làm quen nhanh chóng với hệ thống
0.3.2 Khả thi về mặt kinh tế
Chi phí sử dụng là hoàn toàn miễn phí, phù hợp với tất cả người dùng
Các công cụ sử dụng không tốn chi phí sử dụng
Phần mềm được sử dụng nhằm mục đích quản lý tài chính nên vấn đề kinh
tế đều được tối ưu cho mọi đối tượng kể cả là học sinh, sinh viên
0.3.3 Khả thi về mặt tổ chức
Ứng dụng sau khi hoàn thành sẽ là công cụ đắc lực cho việc quản lý tài chính của người dùng, dễ dàng sử dụng một cách hiệu quả
Tạo được mối liên hệ chặt chẽ giữa dòng tiền của người dùng và cá nhân người đó
Đáp ứng được mọi mong muốn của người dùng một cách chính xác và hiệu quả
0.4 KHỞI TẠO DỰ ÁN
Mong muốn có một ứng dụng phần mềm vào việc quản lý chi tiêu là một nhu cầu tất yếu nhằm nâng cao hiệu quả quản lý và tránh được rủi ro sai số do tính toán cũng như tiết kiệm nhiều chi phí Nhóm sinh viên chúng em đã nghiên cứu và xây dựng Phần mềm quản lý chi tiêu Finsmart để hỗ trợ người sử dụng có nhu cầu quản lý thu nhập, chi tiêu cá nhân một cách khoa học, tránh việc phải tính toán thủ công mất nhiều thời gian mà không đảm bảo sự hợp lý trong chi tiêu Việc dùng phần mềm trong việc quản lý sẽ giúp đỡ rất nhiều cho cả người quản lý mà không cần phải tính quán quá nhiều
Mục tiêu: Hệ thống phần mềm giúp cho người quản lí một cách dễ dàng các thông tin về số dư tài khoản và cách chi tiêu một cách chính xác Hệ thống dễ sử dụng tiết kiệm thời gian và sức lao động và có giao diện đẹp phù hợp với người sử dụng
Trang 70.5 TỔ CHỨC CÔNG VIỆC
0.5.1 Thành viên
3 Nguyễn Văn Hiếu 20213756
0.5.2 Thời gian tổng thể
Tổng thời gian dự kiến là 15-16 tuần (kéo dài trong thời gian học) hoàn thành trước thời hạn bàn giao phần mềm (15/1/2024) được phân bổ như sau: + Phân tích và thiết kế hệ thống phần mềm: 4-5 tuần
+ Lập trình: 9 tuần
+ Kiểm thử hệ thống phần mềm và sửa lỗi: 1 tuần
+ Tổng kết sản phẩm: 1 tuần
0.5.3 Thời gian chi tiết
Kế hoạch phân công công việc cụ thể được chia thành các giai đoạn cụ thể như sau:
˗ Giai đoạn 1: Khảo sát nhu cầu của người dùng
STT Nhiệm vụ Tuần bắt đầu Tuần kết thúc
1 Tìm hiểu và xác định nhu cầu 1 1
2 Đánh giá và xây dựng theo yêu cầuđã đặt ra 1 1
˗ Giai đoạn 2: Lập kế hoạch thực hiện dự án
STT Nhiệm vụ Tuần bắt đầu Tuần kết thúc
1 Phân công nhiệm vụ cho các thành viên để thực hiện 1 2
˗ Giai đoạn 3: Phân tích và thiết kế
STT Nhiệm vụ Tuần bắt đầu Tuần kết thúc
1 Phân tích yêu cầu, thiết kế về mặt 2 3
Trang 8chức năng và mô tả khung giao
diện
2 Phân tích thiết kế hệ thống 3 4
3 Thiết kế giao diện của phần mềm và chinh sửa 4 5
˗ Giai đoạn 4: Coding
STT Nhiệm vụ Tuần bắt đầu Tuần kết thúc
1 Tạo ra database với các yêu cầu
2 Tạo các Dto, Controllers, Interfaces, Migrations và Services 5 9
3 Tạo các folders hỗ trợ Extensions, Helpers 9 11
4 Nghiên cứu và thiết kế Frontend 11 14
˗ Giai đoạn 5: Kiểm thử và sửa lỗi
STT Nhiệm vụ Tuần bắt đầu Tuần kết thúc 1
Thực hiện kiểm thử để test chức
năng của sản phẩm trong các tình
huống đã đặt ra Chỉnh sửa và khắc
phục lỗi
2
Xây dựng bản báo cáo hoàn thiện
sản phẩm và tài liệu hướng dẫn
quản trị và sử dụng sản phẩm 15 16
˗ Giai đoạn 6: Bàn giao sản phẩm
STT Nhiệm vụ Tuần bắt đầu Tuần kết thúc
1 Hoàn thành và thuyết trình sản
0.6 CÔNG CỤ SỬ DỤNG
0.6.1 Công cụ trình bày
Microsoft Word: hoàn thiện báo cáo
Notepad: soạn thảo ý tưởng, nháp
Trang 9 Microsoft Powerpoint: slide thuyết trình dự án
0.6.2 Công cụ lập trình
Microsoft Visual Studio 2022: coding
Microsoft Visual Studio Code 2022: coding
SQL Server Management Studio 19: kết nối, kiểm tra Database
GitHub Deskstop: lưu trữ, chia sẻ code online
0.6.3 Tài nguyên lập trình
C#, C++, Javascript: code backend
HTML5, CSS: code frontend
Framework: ASP.NET Core Web App (MVC): cấu trúc chính của dự án
Trang 10CHƯƠNG 1: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 1.1 TÌM HIỂU YÊU CẦU
1.1.1 Yêu cầu chức năng
Chức năng lưu trữ và quản lí thông tin người dùng
+ Thông tin cá nhân: Tên, tuổi, nghề nghiệp
+ Email, số điện thoại
+ Nguồn thu nhập
Thống kê các khoản thu chi hàng tháng: Để báo cáo cho người sử dụng cần lập các mục thu chi hàng tháng sao cho hợp lí
Chức năng tính toán thu chi: Người dùng đặt ra giới hạn chi tiêu của bản thân Từ đó hệ thống tính toán các nguồn chi tiêu của người dùng và cảnh báo mỗi khi người dùng tiêu dùng quá mức cho phép
Chức năng quản lý thu chi:
+ Cập nhật nguồn thu hàng tháng của người sử dụng
+ Cập nhật chi tiêu trong 1 tháng của người sử dụng
+ Giới hạn khoản chi trong định mức mà người sử dụng đề ra
+ Thông báo cuối tháng: Nếu người dùng chi tiêu dưới mức cho phép
thì thông báo chi tiêu quá giới hạn và ngược lại nếu chi tiêu trên mức giới hạn chi tiêu thì là chi tiêu hợp lí
Chức năng thông báo: Hàng tháng hệ thống sẽ nhắc nhở người dùng đóng các khoản phí định kì mà người dùng đề ra như tiền điện nước, tiền nhà, tiền học phí Sau khi người dùng thực hiện hết các khoản phí đó thì cuối tháng
hệ thống sẽ tự động gửi về thông tin số dư hiện tại so với giới hạn chi tiêu ban đầu
1.1.2 Yêu cầu phi chức năng
Hoạt động
+ Hệ thống phải được đồng bộ dữ liệu của người dùng với tài khoản đã
đăng kí để nhận diện được tài khoản mỗi khi họ muốn đăng nhập
+ Đơn vị tiền tệ: VND
+ Ngôn ngữ: Tiếng Việt hoặc Tiếng Anh
Bảo mật
+ Phần mềm cần phải có hệ thống đăng nhập và bảo mật an toàn (chỉ có
cá nhân người dùng mới có thể login và quản lí tài khoản)
+ Mỗi lần người sử dụng thực hiện các lệnh trên hệ thống thì phải được
sao lưu lại để tránh sự cố
Trang 11+ Cần phải có khả năng bảo vệ thông tin cá nhân của người sử dụng khi
gặp sự cố người dùng khác có ý muốn chiếm đoạt tài khoản cá nhân
Hiệu năng
+ Hệ thống phải ổn định, tốc độ tính toán nhanh, cần chính xác tránh sai
sót
+ Dung lượng lưu trữ phải lớn, đáp ứng được yêu cầu lưu trữ thông tin
tài khoản cá nhân của người dùng
1.2 PHÂN TÍCH HỆ THỐNG
1.2.1 Biểu đồ phân cấp chức năng
Sơ đồ chức năng hệ thống quản lý chi tiêu
Sơ đồ biểu diễn 3 chức năng chính:
- Cập nhật thu nhập: bao gồm các khoản tiền mà người dùng nhập vào mỗi
tháng như lương cứng, các khoản thu định kì Ngoài ra còn cập nhật thêm các khoản thu khác như lương thưởng, lương làm ngoài giờ
- Cập nhật chi tiêu: Người dùng thêm vào các khoản chi tiêu định kì như tiền
điện, tiền nước, tiền nhà , thêm vào đó là các khoản phí phát sinh thêm như tiền viện phí phòng khi bị bệnh hoặc tiền thuốc Hơn nữa là có thể cập nhật
Trang 12thêm các khoản chi tiêu đầu tư chứng khoán, đầu tư bất động sản (nếu muốn)
- Thông báo: Hệ thống lúc này sẽ làm việc và rà soát toàn bộ các lệnh thu và
chi của người dùng Khi người dùng đặt ra giới hạn chi tiêu mà lại sử dụng quá số tiền cho phép thì hệ thống sẽ lập tức thông báo và cảnh báo người dùng chi tiêu quá giới hạn Đến cuối tháng hay những ngày thu phí định kì như tiền điện nước, tiền nhà thì hệ thống cũng sẽ làm thêm nhiệm vụ thông báo và yêu cầu người dùng cập nhật thu chi Cuối cùng, sau khi cập nhật chi tiêu và tiêu dùng hợp lý thì hệ thống sẽ thông báo “Chi tiêu hợp lí”
1.2.2 Biểu đồ luồng dữ liệu mước 0 và 1
Biều đồ luồng dữ liệu mức 0 Trong đó: (1) là dữ liệu mà người dùng có thể cập nhật như thu nhập, chi tiêu và các thông tin người dùng muốn tìm kiếm như chỉ tiêu trong một khoảng thời gian cụ thể (2) là dữ liệu về kết quả tìm kiếm, thể hiện dưới dạng số hiệu hoặc biểu đồ Giải thích: Người dùng bước đầu sẽ cập nhật thu chi rồi gửi lên hệ thống, sau đó hệ thống sẽ làm nhiệm vụ thống kê và cập nhật toàn bộ quá trình thu chi của người dùng rồi gửi về người dùng dưới dạng thông báo
Trang 13Biểu đồ luồng dữ liệu mức 1 Người dùng sau khi đăng kí tài khoản cá nhân thì sẽ được lưu lại trên hệ thống Sau khi người dùng đăng nhập thì ngay lập tức hệ thống sẽ gửi lại thông tin đăng nhập Khi đăng nhập vào tài khoản, người dùng sẽ nhập vào hệ thông các khoản thu và khoản chi mong muốn, từ đó hệ thống sẽ tính toán ra lượng chi tiêu hợp lí
và gửi lại kết quả cho người dùng Nhưng khi số tiền vượt quá mức chi tiêu cho phép thì ngay lập tức hệ thống gửi thông báo và nhắc nhở người dùng chi tiêu không hợp lí
1.2.3 Biểu đồ Use Case
Trang 14Người dùng mới khi vào giao diện trang web thì sẽ đăng kí thông qua hệ thống Khi đăng nhập vào phần mềm thì hệ hệ thống sẽ yêu cầu xác minh password, nếu mật khẩu hay tài khoản không đúng thì sẽ gửi lại thông báo cho người dùng và yêu cầu nhập lại Người dùng khi đăng nhập vào chương trình thì sẽ nhập các khoản thu và khoản chi rồi từ đó báo cáo lại cho người dùng
1.2.4 Activity Diagram
Trang 15Người dùng khi đăng nhập vào hệ thống sẽ gửi thông tin đăng nhập tới hệ thống,
hệ thống sẽ kiểm tra xem thông tin đăng nhập đã hợp lệ hay chưa Nếu hợp lệ, người dùng sẽ đăng nhập vào hệ thống và có thể cập nhật các hóa đơn, khoản thu, khoản chi Nếu chưa hợp lệ, người dùng sẽ nhận được thông báo: Thông tin đăng nhập không hợp lệ Từ các khoản thu chi mà người dùng nhập, hệ thống sẽ tự thống kê số dư tài khoản của người sử dụng và thông báo cho người sử dụng biết liệu người sử dụng có đang chi tiêu bất hợp lý
1.2.5 System Sequence Diagram
Trang 16Người dùng khi đăng nhập vào hệ thống sẽ gửi thông tin đăng nhập tới hệ thống,
hệ thống kiểm tra thông tin và trả lại kết quả thông tin hợp lệ/ không hợp lệ và thông báo cho người dùng Nếu hợp lệ, người dùng có thể đăng nhập vào hệ thống
và cập nhật chi tiêu, thu nhập, người dùng sẽ gửi dữ liệu đó cho hệ thống và hệ thống sẽ tự động tính toán, cập nhật số dư tài khoản của người sử dụng và từ đó đưa ra thông báo ( số dư, quá giới hạn chi tiêu… )
1.3 THIẾT KẾ HỆ THỐNG
CHƯƠNG 2: THIẾT KẾ CƠ SỞ DỮ LIỆU
2.1 CHUẨN HÓA CƠ SỞ DỮ LIỆU