Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
1,4 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH MINH PHỐ HỒ CHÍ TRƯỜNG ĐẠI HỌC CÔNG TIN NGHỆ THÔNG KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN ĐỀ TÀI: “XÂY DỰNG ỨNG DỤNG QUẢN LÝ CHI TIÊU CHO PHÒNG TRỌ” Giảng viên hướng dẫn: ThS Trần Anh Dũng Sinh viên thực hiện: Hoàng Minh Hồng 17520526 Trương Nguyễn Tuấn Nam 17520785 Tp Hồ Chí Minh, ngày 11 tháng 01 năm 2021 LỜI CẢM ƠN Trong trình học tập, nghiên cứu phát triền đề tài “Xây dựng ứng dụng quản lý chi tiêu cho phòng trọ” chúng em nhận giúp đỡ, bảo nhiệt tình thầy để hoàn thành đồ án Chúng em xin bày tỏ biết ơn đặc biệt đến Thầy Trần Anh Dũng người trực tiếp hướng dẫn, giúp đỡ kiến thức, tài liệu phương pháp để chúng em hoàn thành đề tài Chúng em xin chân thành cảm ơn thời gian quý báu thầy dành để kiểm tra, đưa ý kiến nhận xét đóng góp nhiều vào tính năng, hướng phát triển cho đề tài Hi vọng với báo góp ý từ thầy, nhóm đề tài tiếp túc phát triển để ứng dụng ngày mở rộng phục vụ tốt cho người dùng Mặc dù có nhiều cố gắng suốt trình thực đề tài, song cịn có mặt hạn chế, thiếu sót Chúng em mong nhận ý kiến đóng góp dẫn thầy bạn để đề tài chúng em hoàn thiện Chúng em xin trân trọng cảm ơn! Thành phố Hồ Chí Minh, 11 tháng 01 năm 2021 MỤC LỤC Nô i dung Chương GIỚI THIỆU CHUNG 1.1 Lý chọn đề tài 1.2 Mục đích đề tài 1.3 Chức dự kiến 1.4 Đối tượng nghiên cứu Chương KIẾN THỨC NỀN TẢNG 2.1 Tổng quan mơ hình lớp 2.1.1 Khái niệm 2.1.2 Cấu trúc mơ hình lớp 2.1.2.1 Tầng trình diễn – Presentation Layer (GUI) 2.1.2.2 Tầng logic liệu – Business Logic Layer (BLL) 2.1.2.3 Tầng truy cập liệu – Data Access Layer (DAL) 2.1.3 Ưu điểm mô hình lớp 2.1.4 So sánh MVC 3-tiers Model 2.2 Tổng quan công nghệ Flutter 2.2.1 Khái niệm 2.2.2 Lịch sử phát triển 2.2.3 Ưu điểm Flutter 2.3 Ngôn ngữ Dart 10 2.3.1 Giới thiệu ngôn ngữ Dart 10 2.3.2 Ưu điểm Dart 10 2.4 Google Firebase Cloud 12 2.4.1 Khái niệm Firebase 12 2.4.2 Chức Google Firebase 13 2.4.2.1 Realtime Database – Cơ sở liệu thời gian thực 13 2.4.2.2 Firebase Authentication – Hệ thống xác thực Firebase 13 2.4.2.3 Firebase storage 13 2.4.2.4 Firebase Cloud Messaging 13 2.4.3 Lợi ích Google Firebase 13 2.5 Tổng quan Android 14 2.5.1 Giới thiệu tảng Android 14 2.5.2 Cấu trúc hệ điều hành Android 15 2.5.3 Giới thiệu hệ điều hành mở Android 16 Chương XÂY DỰNG HỆ THỐNG 16 3.1 Xây dựng kiến trúc hệ thống 16 3.1.1 Xác định yêu cầu hệ thống 16 3.1.1.1 Mô tả chức 17 3.1.2 Phân tích thiết kế hệ thống 19 3.1.2.1 Sơ đồ use case 19 3.1.2.2 Danh sách actors 22 3.1.2.3 Danh sách use cases 22 3.1.3 Sơ đồ lớp 23 3.1.4 Phân tích thiết kế CSDL 24 3.1.4.1 Bảng Thơng tin nhóm 24 3.1.4.2 Bảng Khoản chi nhóm 25 3.1.4.3 Bảng Chi tiết khoản chi 25 3.1.4.4 Bảng Người dùng 26 3.2 Thiết kế giao diện 27 3.2.1 Giao diện ứng dụng 27 3.2.1.1 Giao diện Đăng ký 27 3.2.1.2 Xác minh số điện thoại 28 3.2.1.3 Giao diện Đăng nhập 29 3.2.1.4 Giao diện Quản lý khoản chi 30 3.2.1.5 Giao diện Danh sách nhóm 31 3.2.1.6 Giao diện Tổng quan 32 3.2.1.7 Giao diện Quản lý tài khoản 33 3.2.1.8 Giao diện Thống kê 34 3.2.1.9 Giao diện Thông tin chi tiết khoản chi 35 Chương KẾ HOẠCH THỰC HIỆN 36 4.1 Quá trình thực 36 4.2 Bảng phân cơng cơng việc 37 Chương KẾT LUẬN, HƯỚNG PHÁT TRIỂN 38 5.1 Ưu điểm 38 5.2 Nhược điểm 38 5.3 Hướng phát triển 38 Chương TÀI LIỆU THAM KHẢO 39 DANH MỤC HÌNH VẼ Hình 2-1: Mơ hình lớp Hình 2-2: So sánh Mơ hình lớp MVC Hình 23:Google Firebase Cloud 10 Hình 2-4: Cấu trúc hệ điều hành Android 13 Hình 3-1: Biểu đồ use case mức tổng quát 16 Hình 3-2: Biểu đồ use case Đăng nhập 17 Hình 3-3: Biểu đồ use case Quản lý khoản chi nhóm 18 Hình 3-4: Biểu đồ use case Tổng quan nhóm 18 Hình 3-5: Biểu đồ lớp 21 Hình 3-6: Giao diện đăng ký 25 Hình 3-7: Giao diện xác minh số điện thoại 26 Hình 3-8: Giao diện đăng nhập 27 Hình 3-9: Giao diện Quản lý khoản chi 28 Hình 3-10: Giao diện Danh sách nhóm 29 Hình 3-11: Giao diện Tổng quan 30 Hình 3-12: Giao diện Quản lý tài khoản 32 Hình 3-13: Giao diện Thống kê 33 Hình 3-14: Giao diện Thông tin chi tiết 34 DANH MỤC BẢNG Bảng 3-1: Danh sách actors 19 Bảng 3-2: Danh sách use cases 20 Bảng 3-3: Các lớp sơ đổ lớp 21 Bảng 3-4: Các đối tượng thuộc tính đối tượng 22 Bảng 3-5: Bảng Khoản chi 22 Bảng 3-6: Bảng Chi tiết khoản chi 22 Bảng 3-7: Bảng Khoản thu 23 Bảng 3-8: Bảng Chi tiết khoản thu 23 Bảng 3-9: Bảng Người dùng 24 DANH MỤC TỪ VIẾT TẮT Từ viết tắt Từ đầy đủ Giải thích QLTC Quản lý tài Hình thức quản lý tiền bạc CSDL Cơ sở liệu Cơ sở liệu cho ứng dụng RFM RoomFinancialManagement Tên ứng dụng Chương GIỚI THIỆU CHUNG 1.1 Lý chọn đề tài Dựa nhu cầu bạn trọ thường nộp tiền quỹ từ sử dụng dần, hay việc nợ tiền người người khác, hàng mua người sử dụng người kia.v.v Việc quản lý thủ cơng trở nên khó khăn, phần mềm giúp bạn quản lý cách đơn giản gọn nhẹ Kết trả dư nợ người số tiền dư hay thiếu quỹ chung Đối với người tiêu dùng thông minh, chuyện quản lý chi tiêu dễ dàng Nhưng sinh viên học tự quản lý túi tiền nên nhiều ứng dụng làm để giải vấn đề Xây dựng ứng dụng tài đề tài khơng ln mang tính ứng dụng nhu cầu cao từ lập trình viên Với phát triển mạnh mẽ cách mạng công nghệ 4.0, phát triển internet điều dễ dự đốn, mà người có cho riêng thiết bị di động kết nối với internet với đời nhiều ứng dụng quản lý chức tính riêng Phục vụ tốt nhu người dùng người quản lý chi tiêu hoạt động thường ngày Người dùng cần thao tác đơn giản điện thoại di động sử dụng 1.2 Mục đích đề tài - Với bước khởi đầu mơn Đồ án 1, nhóm thực đề tài mong muốn nghiên cứu tìm tính ưu việt để áp dụng thêm vào đề tài - Từ công nghệ tìm hiểu, nhóm chọn cơng nghệ phù hợp, mở rộng nâng cấp thêm để ứng dụng hoàn thiện theo hướng mong muốn nhóm - Trong phạm vi mơn học, nhóm đặt chức phải thực gồm: ● Xây dựng chức đăng nhập, đăng ký, xác thực tài khoản ● Xây dụng chức quản lý thông tin người dùng ● Xây dựng chức quản lý khoản chi nhóm ● Xây dựng chức tạo nhóm chi tiêu ● Xây dựng chức quản lý thống kê 1.3 Chức dự kiến - Tạo nhóm chi tiêu thêm người dùng khác vào nhóm - Tạo khoản chi chia tiền cho người tham gia khoản chi Thống kê chi tiêu nhóm theo tuần/tháng - Tìm kiếm thơng tin có sử dụng lọc 1.4 Đối tượng nghiên cứu - Các công nghệ: ● Android Studio ● Firebase ● Flutter - Giao diện: Quy tắc thiết kế F-layout, quy tắc phối màu mono - Đối tượng phạm vi đề tài hướng đến: Sinh viên trọ ký túc xá theo nhóm từ người trở lên Chương KIẾN THỨC NỀN TẢNG 2.1 Tổng quan mô hình lớp 2.1.1 Khái niệm Mơ hình lớp (3-tiers) kiến trúc kiểu client/server mà giao diện người dùng (UI-user interface), quy tắc xử lý (BR-business rule hay BL-business logic), việc lưu trữ liệu phát triển module độc lập, hầu hết trì tảng độc lập, mơ hình tầng (3-tiers) coi kiến trúc phần mềm mẫu thiết kế Hình 2-1: Mơ hình lớp 2.1.2 Cấu trúc mơ hình lớp 2.1.2.1 Tầng trình diễn – Presentation Layer (GUI) Tầng có nhiệm vụ giao tiếp với người dùng Nó gồm thành phần giao diện (winform, webform, …) thực công việc nhập liệu, hiển thị liệu, kiểm tra tính đắn liệu trước gọi lớp Business Logic Layer (BLL) 2.1.2.2 Tầng logic liệu – Business Logic Layer (BLL) ● Đây nơi đáp ứng yêu cầu thao tác liệu GUI layer, xử lý nguồn liệu từ Presentation Layer trước truyền xuống Data Access Layer lưu xuống hệ quản trị CSDL ● Đây nơi kiểm tra ràng buộc, tính tồn vẹn hợp lệ liệu, thực tính tốn xử lý yêu cầu nghiệp vụ, trước trả kết Presentation Layer 2.1.2.3 Tầng truy cập liệu – Data Access Layer (DAL) Tầng có chức giao tiếp với hệ quản trị CSDL thực công việc liên quan đến lưu trữ truy vấn liệu (tìm kiếm, thêm, xóa, sửa, …) 2.1.3 Ưu điểm mơ hình lớp Việc phân chia thành lớp giúp cho code tường minh Nhờ vào việc chia lớp đảm nhận chức khác riêng biệt giao diện, xử lý, truy vấn thay để tất lại chỗ Nhằm giảm kết dính Dễ bảo trì phân chia, thành phần hệ thống dễ thay đổi Việc thay đổi cô lập lớp, ảnh hưởng đến lớp gần mà không ảnh hưởng đến chương trình Dễ phát triển, tái sử dụng: muốn thêm chức việc lập trình theo mơ hình dễ dàng có chuẩn để tuân theo Và việc sử dụng lại có thay đổi hai mơi trường (Winform sang Webform) việc thay đổi lại lớp GUI Dễ bàn giao Nếu người theo quy chuẩn định sẵn, cơng việc bàn giao, tương tác với dễ dàng tiết kiệm nhiều thời gian Dễ phân phối khối lượng cơng việc Mỗi nhóm, phận nhận nhiệm vụ mơ hình lớp Việc phân chia rõ ràng giúp lập trình viên kiểm sốt khối lượng cơng việc 2.1.4 So sánh MVC 3-tiers Model Điểm khác biệt mơ hình MVC Mơ hình lớp khác cách xử lý u cầu mơ hình Trong MVC, thành phần model giữ chức tầng Business Data Access mơ hình lớp Layer thường sử dụng lập trình ứng dụng, MVC ưu chuộng nhiều lập trình website tính linh hoạt khơng bắt buộc DTO 3Layer Hình 2-2: So sánh Mơ hình lớp MVC 2.2 Tổng quan công nghệ Flutter Trong đề tài này, appservice viết Flutter Vì sinh viên thực đề tài cần tìm hiểu ngơn ngữ 2.2.1 Khái niệm Flutter tảng phát triển ứng dụng đa tảng cho iOS Android Google phát triển Flutter sử dụng ngôn ngữ DART Google phát triển flutter sử dụng để tạo ứng dụng native cho Google Flutter hỗ trợ nhiều sở liệu như: MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, Generic ODBC… 2.2.2 Lịch sử phát triển Phiên Flutter gọi "Sky" chạy hệ điều hành Android Nó công bố hội nghị nhà phát triển Dart 2015, với dự định ban đầu để kết xuất ổn định mức 120 khung hình giây Trong phát biểu hội nghị Google idItem String Primary key Mã item khoản chi iconLoai String Not null Đường dẫn hình loại khoản chi tenLoai String Not null Tên loại khoản chi noiDung String Not null Nội dung tạo khoản chi giaTien String Not null Giá tiền khoản chi nguoiMua String Not null Người tạo khoản chi nguoiThamGia List Not null Danh sách người tham gia khoản chi hoaDon String Null Đường dẫn hình hóa đơn ghiChu String Null Ghi có Bảng 3-7: Bảng Chi tiết khoản chi 25 3.1.4.4 Bảng Người dùng Bảng người dùng lưu thông tin người dùng Users Tên trường Kiểu liệu Ràng buộc Mô tả uid String Primary key Mã người dùng displayName String Not null Tên hiểu thị người dùng phoneNumber String Not null Số điện thoại người dùng password String Not null Mật người dùng avatar String Null Ảnh đại diện người dùng money String Not null Số tiền có người dùng idGroup List Null Danh sách nhóm người dùng tạo tham gia Bảng 3-8: Bảng Chi tiết sản phẩm 26 3.2 Thiết kế giao diện 3.2.1 Giao diện ứng dụng 3.2.1.1 Giao diện Đăng ký Đây giao diện đăng ký ứng dụng, cho phép người dùng đăng ký tài khoản sử dụng ứng dụng Hình 3-6: Giao diện đăng ký 27 3.2.1.2 Xác minh số điện thoại Đây giao diện Xác minh số điện thoại, xác minh lại số điện thoại người dùng Hình 3-7: Giao diện xác minh số điện thoại 28 3.2.1.3 Giao diện Đăng nhập Đây giao diện đăng nhập ứng dụng, cho phép người dùng đăng nhập vào ứng dụng tài khoản đăng ký, tài khoản google, tài khoản facebook Hình 3-9: Giao diện đăng nhập 29 3.2.1.4 Giao diện Quản lý khoản chi Đây giao diện Quản lý khoản chi, hiển thị danh sách khoản chi nhóm Hình 3-9: Giao diện Quản lý khoản chi 30 3.2.1.5 Giao diện Danh sách nhóm Đây giao diện Danh sách nhóm, hiển thị danh sách nhóm mà người dùng tạo tham gia Hình 3-10: Giao diện Danh sách nhóm 31 3.2.1.6 Giao diện Tổng quan Đây giao diện Tổng quan, hiển thị thơng tin tổng quan nhóm Hình 3-11: Giao diện Tổng quan 32 3.2.1.7 Giao diện Quản lý tài khoản Đây giao diện tài khoản, giúp người dùng quản lý tài khoản Hình 3-12: Giao diện Quản lý tài khoản 33 3.2.1.8 Giao diện Thống kê Đây giao diện thống kê, hiển thị thông tin thống kê tháng tháng trước nhóm Hình 3-13: Giao diện Thống kê 34 3.2.1.9 Giao diện Thông tin chi tiết khoản chi Đây giao diện Thông tin chi tiết khoản chi, hiển thị thông tin chi tiết khoản chi ngày mà người dùng chọn Hình 3-14: Giao diện Thông tin chi tiết 35 Chương KẾ HOẠCH THỰC HIỆN 4.1 Quá trình thực Với đề tài nhóm chia q trình thực cụ thể sau: − Sprint 1: tìm hiểu Flutter, Firebase, front end framework Android Studio, tìm hiểu nghiệp vụ, quy trình xử lý thu chi ứng dụng, website tương tự có − Sprint 2: Thiết kế chức ứng dụng sở liệu Xây dựng kiến trúc ứng dụng − Sprint 3: Xây dựng API, xây dựng giao diện ứng dụng để thực số chức xác định sprint − Sprint 4: Xây dựng API, xây dựng giao diện ứng dụng để thực số chức lại sau sprint − Sprint 5: Xây dựng API, xây dựng giao diện ứng dụng để thực số chức lại sau sprint Sprint Hoàng Minh Hồng Trương Nguyễn Tuấn Nam Tìm hiểu Flutter, Firebase, nghiệp vụ, quy trình quản lý tài nhóm Tìm hiểu Flutter, Firebase, Android studio (20/10/2020 – 03/11/2020) (04/11/2020 – 17/11/2020) Khảo sát ứng dụng có: Số chi tiêu Misa, Mint Thiết kế chức ứng dụng, sở liệu Khảo sát ứng dụng có: Lazada, MoneyMate Thiết kế chức ứng dụng, sở liệu Xây dựng kiến trúc ứng dụng Xây dựng API Xây dựng API (18/11/2020 – 01/12/2020) Xây dựng giao diện, chức năng: trang chủ, quản lý chi tiêu nhóm Xây dựng giao diện, chức năng: đăng nhập, lưu thông tin người dùng 36 Xây dựng API (02/12/2020 – 15/12/2020) Xây dựng giao diện, chức năng: tạo khoản thu/chi nhóm, thống kê khoản thu/chi nhóm Xây dựng API (16/12/2020 – 29/12/2020) Xây dựng giao diện, chức năng: Viết báo cáo Test chức ứng dụng tìm kiếm thơng tin nhóm, thơng báo 4.2 Bảng phân chia công công việc Tên MSSV Cơng việc thực Hồng Minh Hồng 17520526 - Phân tích chức ứng dụng - Thiết kế Database kiến trúc hệ thống - Thực chức quản lý chi tiêu, tạo nhóm, quản lý nhóm, thống kê - Viết báo cáo Trương Nguyễn Tuấn Nam 17520785 - Phân tích chức ứng dụng - Vẽ sơ đồ usecase tổng quan - Viết đặc tả usecase - Thực chức đăng ký, đăng nhập, quản lý thông tin người dùng - Viết báo cáo 37 Chương KẾT LUẬN, HƯỚNG PHÁT TRIỂN 5.1 Ưu điểm − Hoàn thành yêu cầu đặt ban đầu, có đầy đủ tính cần thiết ứng dụng Quản lý chi tiêu − Giao diện đơn giản, bố cục hợp lý, người dùng dễ dàng theo tác ứng dụng − Tốc độ phản hồi thao tác nhanh, tối ưu hóa suất người dùng − Sinh viên thực nắm cách thức làm ứng dụng quản lý chi tiêu, hiểu biết ngôn ngữ Dart, công nghệ Flutter − Ứng dụng triển khai nghiệm thu thành công máy thật 5.2 Nhược điểm − Còn hạn chế số tính năng: + Chưa tích hợp tính cụ thể cho chiết xuất hóa đơn từ ảnh + Tối ưu code chưa tốt nên tốc độ tương tác ứng dụng chậm 5.3 Hướng phát triển − Xây dựng chức cịn thiếu, hồn thiện chức có − Tích hợp tốn tiền phịng qua Momo, E-bank khác, … − Tối ưu hóa code để tăng tốc độ tương tác − Tối ưu hóa CSDL hợp lý − Tối ưu hóa việc gợi ý − Thêm số gợi ý cho người dùng dựa trên: Dự định chi tiêu, tối ưu hóa chi tiêu cho tháng sau, … 38 Chương TÀI LIỆU THAM KHẢO Diễn đàn công nghệ lập trình viên: https://stackoverflow.com/ Trang web thức để tham khảo thư viện Flutter: https://pub.dev/ Bách khoa toàn thư mở: https://vi.wikipedia.org/wiki/Wikipedia Trang web hướng dẫn cài đặt sử dụng Firebase: https://firebase.google.com/ Diễn đàn cơng nghệ lập trình viên Việt Nam: https://viblo.asia/ Trang web thức Flutter: https://flutter.dev/ Trang web hướng dẫn cài đặt sử dụng Android Studio: https://developer.android.com/ Trang web cung cấp mã nguồn mở miễn phí hàng đầu hiên nay: https://github.com/ 39 ... ● Xây dựng chức quản lý khoản chi nhóm ● Xây dựng chức tạo nhóm chi tiêu ● Xây dựng chức quản lý thống kê 1.3 Chức dự kiến - Tạo nhóm chi tiêu thêm người dùng khác vào nhóm - Tạo khoản chi chia... sử dụng tài khoản đăng ký để đăng nhập vào ứng dụng Khi đăng nhập vào ứng dụng, người dùng sử dụng tất tiện ích ứng dụng − Quản lý chi tiêu theo ngày: Ứng dụng trình bày tổng quát khoản chi tiêu. .. vụ, quy trình xử lý thu chi ứng dụng, website tương tự có − Sprint 2: Thiết kế chức ứng dụng sở liệu Xây dựng kiến trúc ứng dụng − Sprint 3: Xây dựng API, xây dựng giao diện ứng dụng để thực số