Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 87 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
87
Dung lượng
3,61 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN MƠN HỌC ĐỒ ÁN PHÁT TRIỂN VÍ ĐIỆN TỬ DỰA TRÊN CƠNG NGHỆ THANH TỐN KHƠNG TIẾP XÚC Giảng viên hướng dẫn : TS Nguyễn Trịnh Đông Sinh viên thực : Châu Đức Hiệp Mã sinh viên 20520499 : Sinh viên thực : Trần Nam Khánh Mã sinh viên 20520577 : TP HỒ CHÍ MINH, THÁNG NĂM 2023 LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành tri ân sâu sắc đến thầy hướng dẫn, tạo điều kiện cho nhóm chúng em hồn thành đồ án mơn Đồ án Trong vịng 11 tuần, qua buổi học, nhờ dẫn nhiệt tình thầy, em tiếp thu kiến thức quan trọng, bổ ích góp ý chân thành để làm đồ án hồn chỉnh Trong khoảng thời gian thực đồ án, em học hỏi thêm nhiều kiến thức, kinh nghiệm, biết quy trình để tạo sản phẩm phần mềm Bên cạnh đó, chúng em xin cảm ơn bạn bè lớp động viên, thảo luận góp ý cho nhóm đồng thời khơi thêm nguồn động lực cho nhóm suốt q trình đầy khó khăn Mặc dù cố gắng hoàn thành báo cáo với tất nỗ lực song báo cáo nhóm chúng em chắn khơng tránh khỏi thiếu sót, em mong nhận thơng cảm góp ý chân thành từ thầy Nhóm em xin chân thành cảm ơn Nhóm sinh viên thực hiện: Châu Đức Hiệp Trần Nam Khánh NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Tp.HCM, ngày … tháng năm 2023 GVHD TS Nguyễn Trịnh Đơng TĨM TẮT Đồ án với đề tài "Phát triển ví điện tử dựa cơng nghệ tốn khơng tiếp xúc" tập trung vào việc xây dựng hệ thống ví điện tử có khả đáp ứng nhu cầu toán người dùng cung cấp cho đối tác hệ thống có khả chịu tải tốt, có khả mở rộng cao Đề tài việc tìm hiểu thực trạng, xác định vấn đề cần giải cải thiện Mục tiêu, phạm vi đề tài chức cần có hệ thống xác định rõ ràng Bên cạnh việc xử lý nghiệp vụ hệ thống, tơi tìm hiểu, so sánh lựa chọn công nghệ phù hợp để nâng cao trải nghiệm người dùng, tối ưu hóa chi phí phát triển triển khai Với phân tích chi tiết yêu cầu, thời gian phát triển ngắn, yêu cầu, tính thay đổi, đồ án sử dụng mơ hình Waterfall để phát triển hệ thống Kết thu giai đoạn thiết kế kiến trúc hệ thống, sở liệu, giao diện người dùng, sơ đồ thể thông qua công cụ thiết kế Figma Draw.io Trong giai đoạn thực hiện, server client phát triển song song với công nghệ phù hợp Bên server, sử dụng ExpressJS để xây dựng ứng dụng, với TypeORM để tạo tương tác với model Chúng sử dụng Passport để xác thực người dùng JWT, với Firebase Admin để gửi thông báo Bên client, sử dụng Flutter để phát triển ứng dụng cho Android iOS Công việc kiểm thử unit test thực xuyên suốt trình phát triển, kiểm thử tích hợp thực cuối giai đoạn Trong giai đoạn vận hành, server triển khai lên Google Cloud, cho phép truy cập liệu thông qua API từ thiết bị có yêu cầu trường xác thực hợp lệ Phần cuối đồ án việc trình bày kết thực báo cáo, đưa kết luận hướng phát triển cho hệ thống tương lai Nội dung đồ án trình bày chương: - Chương 01: Tổng quan Trình bày sơ thực trạng, nhu cầu thực tế Xác định mục tiêu phạm vi đề tài - Chương 02: Cơ sở lý thuyết, tổng quan công nghệ Giớ thiệu giải thuật, công nghệ, tảng sử dụng đồ án - Chương 03: Phân tích thiết kế ứng dụng Phân tích yêu cầu, thiết kế, thực triển khai ứng dụng - Chương 04: Kết luận - Chương 05: Cài đặt thử nghiệm Những kết đạt sau kết thúc đồ án Những hạn chế, khó khăn q trình phát triển đồ án nêu hướng phát triển tương lai MỤC LỤC LỜI CẢM ƠN TÓM TẮT MỤC LỤC DANH MỤC TỪ VIẾT TẮT Chương 1.1 TỔNG QUAN Khảo sát trạng 1.1.1 Nhu cầu thực tế đề tài 1.1.2 Khảo sát số ứng dụng có 1.2 Lí thực đề tài 1.3 Mục tiêu 1.3.1 Đối tượng sử dụng 1.3.2 Yêu cầu Chương 2.1 CƠ SỞ LÝ THUYẾT, TỔNG QUAN CÔNG NGHỆ Công nghệ sử dụng 2.1.1 Flutter 2.1.2 BloC 2.1.3 ExpressJs 11 2.1.4 TypeORM 13 2.1.5 Firebase Cloud Messaging 16 2.1.6 JSON Web Token 18 2.1.7 MySQL 20 Chương 3.1 PHÂN TÍCH THIẾT KẾ ỨNG DỤNG 22 Use case 22 3.1.1 Sơ đồ Use case 22 3.1.2 Danh sách Actors 23 3.1.3 Danh sách Use case 23 3.1.4 Đặc tả Use case 24 3.2 Activity diagram 39 3.2.1 Lược đồ hoạt động đăng nhập 39 3.2.2 Lượt đồ hoạt động đăng ký 39 3.2.3 Lược đồ hoạt động đăng xuất 40 3.2.4 Lược đồ hoạt động OTP 40 3.2.5 Lược đồ hoạt động Xem lịch sử giao dịch 41 3.2.6 Lược đồ hoạt động Chuyển tiền 41 3.2.7 Lược đồ hoạt động Liên kết ngân hàng 42 3.2.8 Lược đồ hoạt động Nạp tiền 42 3.2.9 Lược đồ hoạt động Rút tiền 43 3.3 Thiết kế sở liệu 44 3.3.1 Sơ đồ ERD 44 3.3.2 Mô tả chi tiết 44 3.4 Thiết kế hệ thống 48 3.5 Đặc tả API 49 3.5.1 Đặc tả API cho Authentication: 49 3.5.2 Đặc tả API cho User: 53 3.5.3 Đặc tả API cho Transaction: 56 3.5.4 Đặc tả API cho Wallet: 59 3.6 Thiết kế giao diện 61 3.6.1 Danh sách hình 61 3.6.2 Giao diện 64 64 Chương KẾT LUẬN 74 4.1 Kết đạt 74 4.2 Những ưu điểm hạn chế 74 4.2.1 Ưu điểm 74 4.2.2 Hạn chế 75 4.3 Hướng phát triển 76 Chương CÀI ĐẶT VÀ THỬ NGHIỆM 77 5.1 Môi trường cài đặt 77 5.2 Các thư viện, framework liên quan 77 5.3 Kiểm thử phần mềm 77 5.4 Hướng dẫn cài đặt 77 TÀI LIỆU THAM KHẢO 78 DANH MỤC TỪ VIẾT TẮT STT Tên Diễn giải STT Số thứ tự PK Primary key FK Foreign key ERD Entity relationship diagram UI User interface UX User experience CHƯƠNG 1.1 TỔNG QUAN Khảo sát trạng 1.1.1 Nhu cầu thực tế đề tài Hiện nay, với phát triển mạnh mẽ công nghệ thông tin, dịch vụ ngân hàng, toán điện tử trở nên phổ biến Q trình tốn khơng tiếp xúc ngày trở nên quan trọng, đặc biệt bối cảnh dịch Covid Từ nhu cầu sử dụng ví điện tử ngày tăng cao, tạo hội phát triển cho ứng dụng ví điện tử 1.1.2 Khảo sát số ứng dụng có 1.1.2.1 Momo Tổng quan Momo ứng dụng ví điện tử hàng đầu Việt Nam, thành lập vào năm 2013 Momo cung cấp dịch vụ ví điện tử cho phép người dùng tốn hóa đơn, chuyển tiền, mua hàng trực tuyến cách nhanh chóng tiện lợi Momo có giao diện dễ sử dụng, hệ thống tốn an tồn chương trình khuyến hấp dẫn 3.6.2 Giao diện Hình 3.12 _ Hình 3.13 Màn hình đăng nhập (trái) Màn hình Đăng ký (phải) 64 Hình 3.14 _ Hình 3.15 Màn hình OTP (trái) Màn hình Trang chủ (phải) 65 Hình 3.16 _ Hình 3.17 Màn hình Lịch sử giao dịch (trái) Màn hình Bảo mật (phải) 66 Hình 3.18 _ Hình 3.19 Màn hình Chọn phương thức chuyển tiền (trái) Màn hình Chuyển tiền (phải) 67 Hình 3.20 _ Hình 3.21 Màn hình Xác nhận chuyển tiền (trái) Màn hình Chuyển tiền thành cơng (phải) 68 Hình 3.22 _ Hình 3.23 Màn hình xác nhận nạp tiền (trái) Màn hình Nạp tiền (phải) 69 Hình 3.24 _ Hình 3.25 Màn hình xác nhận nạp tiền (trái) Màn hình Rút tiền (phải) 70 Hình 3.25 _ Hình 3.26 Màn hình xác nhận rút tiền (trái) Màn hình QR (phải) 71 Hình 3.27 _ Hình 3.28 Màn hình tài khoản(1)(2) 72 Hình 3.39 Màn hình Khuyến 73 CHƯƠNG 4.1 KẾT LUẬN Kết đạt Đề tài “Phát triển ví điện tử dựa cơng nghệ tốn khơng tiếp xúc” hồn thành thành cơng theo u cầu đề ra, thơng qua việc khảo sát, tìm hiểu, phân tích, thiết kế, cài đặt kiểm thử phần mềm Bản thân em đánh giá đề tài đạt mục tiêu đề ra, thực phát triển ứng dụng có nhiều tính hữu ích đáp ứng nhu cầu người dùng môi trường thương mại điện tử đại Đúng với mục tiêu đặt ban đầu, em đã: • Ứng dụng kiến thức lý thuyết thực hành vào quy trình phát triển phần mềm thực tiễn, từ xây dựng tư lĩnh vực Cơng nghệ phần mềm • Giải vấn đề đặt phần mô tả tốn, hồn thiện sản phẩm đề tài phần mềm trực tuyến cách tốt • Xây dựng chương trình hồn thiện chức năng, mặt UI UX, đáp ứng nhu cầu thực tế để giải vấn đề; giao diện trực quan, đẹp mắt, thân thiện đáp ứng tính đắn tính tiến hóa việc thiết kế liệu Ngồi ra, từ q trình làm sản phẩm, nhóm có hội tìm hiểu rõ vận dụng kiến thức học môn học trước, đồng thời nắm quy trình phát triển phần mềm với nghiên cứu kỹ thuật công nghệ, phục vụ môn học tới mà cịn hành trình làm việc lĩnh vực cơng nghệ thông tin tương lai 4.2 Những ưu điểm hạn chế 4.2.1 Ưu điểm - Về sản phẩm phần mềm: 74 o Là hệ thống có tảng xây dựng đầy đủ, theo mơ hình “Clean Architecture” thông dụng mà doanh nghiệp sử dụng o Hệ thống thiết kế với độ chịu tải tốt, có khả mở rộng theo chiều ngang (horizontal-scale) o Hệ thống thân thiện, quy trình rõ ràng, đơn giản giúp người dùng theo dõi tiến độ hiệu - Về trình xây dựng: o Học hỏi nhiều công nghệ trao đổi kiến thức, bổ sung kiến thức cho việc làm o Tính sáng tạo, linh hoạt o Sử dụng cơng cụ hỗ trợ giúp việc quản lý trở nên đơn giản hơn, trực quan hơn, có định hướng như: Notion, One Drive, PlantUML, 4.2.2 Hạn chế - Về sản phẩm phần mềm: o Sản phẩm chưa hoàn thiện chức bên trang chủ phần khuyến o Chưa áp dụng kĩ thuật deployment tối ưu (do hạn chế chi phí, sử dụng sản phẩm miễn phí) o Cơ sở liệu bị giới hạn dung lượng số lần truy vấn miễn phí dẫn đến việc người dùng bị giới hạn liệu o Tính chưa đầy đủ so với nghiệp vụ thực tế - Về việc tổ chức quản lý nhóm: o Có số cơng việc khơng hồn thành đặt Phải thay đổi linh hoạt sát để theo kịp tiến độ o Khối lượng công việc cần thực nhiều kèm theo việc làm cá nhân nên chịu áp lực mặt thời gian 75 4.3 Hướng phát triển Đề tài cịn mở rộng phát triển thêm nhiều tính hữu ích cho người dùng như: • Cho phép người dùng đăng phản hồi, đánh giá chất lượng dịch vụ, giao diện, trải nghiệm sử dụng Điều không tạo tương tác người dùng hệ thống, mà giúp cho đội phát triển ứng dụng hiểu nhu cầu kỳ vọng người dùng • Cập nhật lọc thêm thuộc tính giúp người dùng tìm kiếm, lọc thơng tin cách nhanh chóng tiện lợi, nâng cao trải nghiệm người dùng • Hồn thiện chức quảng cáo, khuyến Mở rộng chức tốn, cho phép tốn từ bên ngồi app • Tích hợp với dịch vụ/thanh tốn khác: Để mở rộng chức tốn, ứng dụng tích hợp với dịch vụ tốn khác, từ tạo nhiều lựa chọn cho người dùng • Tăng cường bảo mật: mở rộng chức bảo mật xác thực hai yếu tố, bảo mật biometic để bảo vệ thông tin tài sản người dùng Ngoài hệ thống thiếu sót nhiều có nhiều hướng để phát triển như: • Áp dụng tư tưởng Event-Driven kèm theo cơng nghệ Kafka để tăng tính khả dụng cho hệ thống • Xây dựng cơng cụ quản lý cho cửa hàng tham gia • Sử dụng gRPC thay cho RESTful API để giao tiếp service • Triển khai từ Google Cloud sang Kubernate • Xây dựng cơng cụ theo dõi hệ thống (có thể sử dụng Prometheous, Grafana) 76 CHƯƠNG 5.1 CÀI ĐẶT VÀ THỬ NGHIỆM Môi trường cài đặt − Dart (Flutter) 5.2 Các thư viện, framework liên quan − Front-end: Flutter − State management: Bloc − Back-end: NodeJS (ExpressJS) − Database: MySQL 5.3 Kiểm thử phần mềm Nhóm có tiến hành kiểm thử phần mềm sau lần build chức năng, tăng tính đắn tốc độ sửa lỗi chương trình Ứng dụng chạy thử nghiệm thiết bị nhiều độ phân giải khác (responsive) nhiều trình duyệt - Manual testing: whitebox, blackbox theory - API testing: Postman 5.4 Hướng dẫn cài đặt Bước 1: Tải giải nén source code từ Google Drive Github với đường dẫn: hiepchau/NFCEWallet (github.com) Bước 2: Mở project Visual Code Bước 3: Mở emulator Bước 4: Chạy lệnh “flutter run” để build sử dụng app 77 TÀI LIỆU THAM KHẢO [1] Bloc, "Bloc Library," [Online] Available: https://bloclibrary.dev/#/ [2] Express.js, "ExpressJs Documentation," [Online] Available: https://expressjs.com/en/4x/api.html [3] Firebase, "Firebase Cloud Messaging Documentation," [Online] Available: https://firebase.google.com/docs/cloud-messaging [4] Passport, "Passport-Local Package," [Online] Available: https://www.passportjs.org/packages/passport-local/ [5] Passport, "Passport-JWT Package," [Online] Available: https://www.passportjs.org/packages/passport-jwt/ [6] Android Developer, "Host-based Card Emulation," [Online] Available: https://developer.android.com/guide/topics/connectivity/nfc/hce [7] TypeORM, "TypeORM Documentation," [Online] Available: https://typeorm.io/ 78