1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng app ebook sử dụng nodejs và flutter

149 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng App Ebook sử dụng NodeJS và Flutter
Tác giả Trần Thị Trà My, Nguyễn Thị Quỳnh Như
Người hướng dẫn ThS. Nguyễn Hữu Trung
Trường học Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 149
Dung lượng 13,28 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI (22)
  • 2. MỤC ĐÍCH CỦA ĐỀ TÀI (6)
  • 3. CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU (0)
    • 3.1. Đối tượng nghiên cứu (23)
    • 3.2. Phạm vi nghiên cứu (23)
  • CHƯƠNG 1. CƠ SỞ LÝ THUYẾT (24)
    • 1.1. TÌM HIỂU VỀ FLUTTER [2] (24)
      • 1.1.1. Giới thiệu về Flutter (24)
      • 1.1.2. Các chức năng nổi bật (24)
    • 1.2. TÌM HIỂU VỀ DART [3] (25)
      • 1.2.1. Giới thiệu về Dart (25)
      • 1.2.2. Các chức năng nổi bật (25)
    • 1.3. TÌM HIỂU VỀ FIREBASE (27)
      • 1.3.1. Giới thiệu về Firebase [5] (0)
      • 1.3.2. Các chức năng nổi bật [6] (27)
    • 1.4. TÌM HIỂU VỀ NODE.JS [4] (28)
      • 1.4.1. Giới thiệu về Node.js (28)
      • 1.4.2. Các chức năng nổi bật (28)
  • CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG (31)
    • 2.2. KHẢO SÁT MỘT SỐ PHẦN MỀM (32)
      • 2.2.1. Ứng dụng Kindle (32)
      • 2.2.2. Ứng dụng Tủ Sách - Read Ebook (36)
    • 2.3. PHÂN TÍCH CÁC YÊU CẦU CỦA HỆ THỐNG (39)
      • 2.3.1. Các yêu cầu về chức năng nghiệp vụ (39)
      • 2.3.2. Các yêu cầu chức năng hệ thống (40)
      • 2.3.3. Các yêu cầu phi chức năng (42)
  • CHƯƠNG 3. MÔ HÌNH HÓA CÁC YÊU CẦU (43)
    • 3.1. LƯỢC ĐỒ USECASE (43)
      • 3.1.1. Phân hệ khách (43)
      • 3.1.2. Phân hệ người dùng (47)
      • 3.1.3. Phân hệ quản trị viên (60)
    • 3.2. LƯỢC ĐỒ TUẦN TỰ (64)
      • 3.2.1. Phân hệ khách (64)
      • 3.2.2. Phân hệ người dùng (68)
      • 3.2.3. Phân hệ quản trị viên (79)
    • 3.3. LƯỢC ĐỒ CƠ SỞ DỮ LIỆU (84)
  • CHƯƠNG 4. THIẾT KẾ GIAO DIỆN (85)
    • 4.1. USER FLOWS TRONG UX (85)
    • 4.2. MÀN HÌNH SPLASH (85)
    • 4.3. KHI CHƯA ĐĂNG NHẬP (86)
      • 4.3.1. Màn hình đăng nhập (86)
      • 4.3.2. Màn hình đăng ký (87)
      • 4.3.3. Màn hình home (88)
      • 4.3.4. Màn hình tìm kiếm (89)
      • 4.3.5. Màn hình sách theo danh mục (90)
      • 4.3.6. Màn hình sách theo kết quả tìm kiếm (91)
      • 4.3.7. Màn hình chi tiết sách (92)
      • 4.3.8. Màn hình bình luận (93)
      • 4.3.9. Màn hình thư viện (94)
      • 4.3.10. Màn hình nhiệm vụ (95)
      • 4.3.12. Màn hình cài đặt (97)
    • 4.4. KHI ĐÃ ĐĂNG NHẬP (98)
      • 4.4.1. Màn hình home (98)
      • 4.4.2. Màn hình thư viện (100)
      • 4.4.3. Màn hình đọc sách (102)
      • 4.4.4. Màn hình nghe sách (105)
      • 4.4.5. Màn hình thêm bình luận (107)
      • 4.4.6. Màn hình hồ sơ (108)
      • 4.4.7. Màn hình chỉnh sửa thông tin cá nhân (110)
      • 4.4.8. Màn hình đổi mật khẩu (111)
      • 4.4.9. Màn hình ghi chú (112)
      • 4.4.10. Màn hình nạp tiền (113)
      • 4.4.11. Màn hình thống kê (114)
      • 4.4.12. Màn hình câu hỏi thông thường (115)
      • 4.4.13. Màn hình tương tác với quản trị viên (116)
    • 4.5. MÀN HÌNH QUẢN TRỊ VIÊN (117)
      • 4.5.1. Màn hình đăng nhập (117)
      • 4.5.1. Màn hình dashboard (118)
      • 4.5.2. Màn hình quản lý danh mục sách (119)
      • 4.5.3. Màn hình quản lý sách (121)
      • 4.5.4. Màn hình quản lý người dùng (125)
      • 4.5.5. Màn hình quản lý nhiệm vụ (126)
  • CHƯƠNG 5. CÀI ĐẶT VÀ KIỂM THỬ (130)
    • 5.1. CÀI ĐẶT (130)
      • 5.1.1. Về backend (130)
      • 5.1.2. Về frontend (130)
    • 5.2. KIỂM THỬ ỨNG DỤNG (131)
      • 5.2.1. Các chức năng thuộc phân hệ khách (131)
      • 5.2.2. Các chức năng thuộc phân hệ người dùng (131)
      • 5.2.3. Các chức năng thuộc phân hệ quản trị viên (133)
      • 5.2.4. Kiểm tra chi tiết các chức năng (134)
    • 1.1. Về kiến thức (145)
    • 1.2. Về đề tài (145)
    • 2. ƯU ĐIỂM VÀ NHƯỢC ĐIỂM (145)
      • 2.1. Ưu điểm (145)
      • 2.2. Nhược điểm (145)
    • 3. THUẬN LỢI (0)
    • 4. KHÓ KHĂN (146)
    • 5. HƯỚNG PHÁT TRIỂN (146)
  • TÀI LIỆU THAM KHẢO (0)

Nội dung

PHÂN CÔNG NHIỆM VỤ Trần Thị Trà My • Khảo sát và phân tích đề tài • Phụ trách cơ sở lý thuyết Firebase và Node.js • Viết đặc tả usecase, lược đồ tuần tự cho quản trị viên, chức năng đăng

MỤC ĐÍCH CỦA ĐỀ TÀI

3 Các tiếp cận và phương pháp nghiên cứu

1 Chương 1: Cơ sở lý thuyết

2 Chương 2: Khảo sát hiện trạng

3 Chương 3: Phân tích các yêu cầu của hệ thống

4 Chương 4: Mô hình hóa các yêu cầu

5 Chương 5: Thiết kế giao diện phần mềm

Phần Tài Liệu Tham Khảo

STT Thời gian Công việc Ghi chú

Xem xét, đánh giá lại những việc đã thực hiện ở tiểu luận chuyên ngành và quyết định các chức năng sẽ cải thiện, thêm mới trên ứng dụng

Lập kế hoạch thực hiện và phân công nhiệm vụ

Tiến hành chỉnh sửa, cải thiện các chức năng cũ

Hoàn thiện chỉnh sửa, kiểm tra các chức năng cũ

Hoàn thiện các chức năng mới, xử lý lỗi và tiến hành kiểm tra lỗi

Khắc phục các lỗi ứng dụng và tiến hành viết báo cáo

Kiểm tra toàn bộ ứng dụng và hoàn thiện báo cáo Ý kiến của giáo viên hướng dẫn Ngày 11 tháng 07 năm 2024

ThS Nguyễn Hữu Trung Nguyễn Thị Quỳnh Như

Trần Thị Trà My • Khảo sát và phân tích đề tài

• Phụ trách cơ sở lý thuyết Firebase và Node.js

• Viết đặc tả usecase, lược đồ tuần tự cho quản trị viên, chức năng đăng nhập, đăng ký, mật khẩu cho người dùng, quản trị viên

• Thiết kế giao diện quản trị viên và code phần web quản trị viên

• Viết hướng sử dụng, cài đặt cho quản trị viên

• Tiến hành kiểm thử và sửa lỗi cho quản trị viên

• Viết và sửa chữa báo cáo Nguyễn Thị Quỳnh Như • Khảo sát và phân tích đề tài

• Phụ trách cơ sở lý thuyết Dart, Flutter

• Viết đặc tả usecase, lược đồ tuần tự cho người dùng và các chức năng của người dùng

• Thiết kế giao diện người dùng và code phần ứng dụng người dùng

• Viết hướng sử dụng, cài đặt cho người dùng

• Tiến hành kiểm thử và sửa lỗi cho người dùng

• Viết và sửa chữa báo cáo Ý kiến của giáo viên hướng dẫn Ngày 11 tháng 07 năm 2024

ThS Nguyễn Hữu Trung Nguyễn Thị Quỳnh Như

PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 1

PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN 2

LỜI CẢM ƠN 3 ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP 4

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 20

2 MỤC ĐÍCH CỦA ĐỀ TÀI 20

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU 21

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 22

1.1.2 Các chức năng nổi bật 22

1.2.2 Các chức năng nổi bật 23

1.3.2 Các chức năng nổi bật [6] 25

1.4 TÌM HIỂU VỀ NODE.JS [4] 26

1.4.1 Giới thiệu về Node.js 26

1.4.2 Các chức năng nổi bật 26

CHƯƠNG 2 KHẢO SÁT HIỆN TRẠNG 29

2.2 KHẢO SÁT MỘT SỐ PHẦN MỀM 30

2.2.2 Ứng dụng Tủ Sách - Read Ebook 34

2.3 PHÂN TÍCH CÁC YÊU CẦU CỦA HỆ THỐNG 37

2.3.1 Các yêu cầu về chức năng nghiệp vụ 37

2.3.2 Các yêu cầu chức năng hệ thống 38

2.3.3 Các yêu cầu phi chức năng 40

CHƯƠNG 3 MÔ HÌNH HÓA CÁC YÊU CẦU 41

3.1.3 Phân hệ quản trị viên 58

3.2.3 Phân hệ quản trị viên 77

3.3 LƯỢC ĐỒ CƠ SỞ DỮ LIỆU 82

CHƯƠNG 4 THIẾT KẾ GIAO DIỆN 83

4.3.5 Màn hình sách theo danh mục 88

4.3.6 Màn hình sách theo kết quả tìm kiếm 89

4.3.7 Màn hình chi tiết sách 90

4.4.5 Màn hình thêm bình luận 105

4.4.7 Màn hình chỉnh sửa thông tin cá nhân 108

4.4.8 Màn hình đổi mật khẩu 109

4.4.12 Màn hình câu hỏi thông thường 113

4.4.13 Màn hình tương tác với quản trị viên 114

4.5 MÀN HÌNH QUẢN TRỊ VIÊN 115

4.5.2 Màn hình quản lý danh mục sách 117

4.5.3 Màn hình quản lý sách 119

4.5.4 Màn hình quản lý người dùng 123

4.5.5 Màn hình quản lý nhiệm vụ 124

CHƯƠNG 5 CÀI ĐẶT VÀ KIỂM THỬ 128

5.2.1 Các chức năng thuộc phân hệ khách 129

5.2.2 Các chức năng thuộc phân hệ người dùng 129

5.2.3 Các chức năng thuộc phân hệ quản trị viên 131

5.2.4 Kiểm tra chi tiết các chức năng 132

2 ƯU ĐIỂM VÀ NHƯỢC ĐIỂM 143

Hình 2.3 Trang cài đặt thêm 31

Hình 2.4 Trang chủ khi đã đăng nhập 31

Hình 2.5 Trang library khi chưa có sách 31

Hình 2.7 Trang thông tin chi tiết của sách 32

Hình 2.8 Trang hiển thị sách được tải về 33

Hình 2.9 Trang chủ Tủ Sách 34

Hình 2.10 Trang chi tiết sản phẩm 34

Hình 2.11 Trang nội dung sách (1) 35

Hình 2.12 Trang nội dung sách (2) 35

Hình 2.14 Chức năng sách nói 35

Hình 2.15 Quản lý thông tin cá nhân 36

Hình 3.2 Lược đồ usecase phân hệ khách 41

Hình 3.3 Lược đồ usecase phân hệ người dùng 45

Hình 3.4 Lược đồ usecase phân hệ quản trị viên 58

Hình 3.5 Lược đồ tuần tự đăng ký 63

Hình 3.6 Lược đồ tuần tự tìm kiếm 64

Hình 3.7 Lược đồ tuần tự xem thông tin sách 64

Hình 3.8 Lược đồ tuần tự xem bình luận 65

Hình 3.9 Lược đồ tuần tự xem danh sách nhiệm vụ 65

Hình 3.10 Lược đồ tuần tự chuyển đổi giao diện sáng, tối Error! Bookmark not defined. Hình 3.11 Lược đồ tuần tự đăng nhập 66

Hình 3.12 Lược đồ tuần tự quên mật khẩu 67

Hình 3.13 Lược đồ tuần tự đăng xuất 67

Hình 3.14 Lược đồ tuần tự đặt lại mật khẩu 68

Hình 3.15 Lược đồ tuần tự chỉnh sửa thông tin cá nhân 68

Hình 3.16 Lược đồ tuần tự đổi ảnh đại diện 69

Hình 3.17 Lược đồ tuần tự đọc sách 69

Hình 3.19 Lược đồ tuần tự đánh dấu sách 70

Hình 3.20 Lược đồ tuần tự ghi chú 71

Hình 3.21 Lược đồ tuần tự tra từ điển 71

Hình 3.22 Lược đồ tuần tự thay đổi cỡ chữ 72

Hình 3.23 Lược đồ tuần tự đánh giá sách 72

Hình 3.24 Lược đồ tuần tự thực hiện nhiệm vụ 73

Hình 3.25 Lược đồ xem câu hỏi thường gặp 74

Hình 3.26 Lược đồ tuần tự phản hồi, đặt câu hỏi 74

Hình 3.27 Lược đồ tuần tự nạp tiền 75

Hình 3.28 Lược đồ tuần tự mua sách 76

Hình 3.29 Lược đồ xem thống kê hoạt động 76

Hình 3.30 Lược đồ tuần tự thêm danh mục sách 77

Hình 3.31 Lược đồ tuần tự chỉnh sửa danh mục sách 77

Hình 3.32 Lược đồ tuần tự xóa danh mục sách 78

Hình 3.33 Lược đồ tuần tự thêm sách 78

Hình 3.34 Lược đồ tuần tự xóa sách 79

Hình 3.35 Lược đồ tuần tự xóa người dùng 79

Hình 3.36 Lược đồ tuần tự thêm nhiệm vụ 80

Hình 3.37 Lược đồ tuần tự chỉnh sửa nhiệm vụ 80

Hình 3.38 Lược đồ tuần tự xóa nhiệm vụ 81

Hình 3.39 Lược đồ tuần thống kê 81

Hình 3.40 Lược đồ cơ sở dữ liệu 82

Hình 4.1 User Flow của ứng dụng 83

Hình 4.3 Màn hình splash (dark theme) 83

Hình 4.4 Màn hình đăng nhập 84

Hình 4.5 Màn hình đăng nhập (dark theme) 84

Hình 4.6 Màn hình đăng ký 85

Hình 4.7 Màn hình đăng ký (dark theme) 85

Hình 4.8 Màn hình home chưa đăng nhập 86

Hình 4.9 Màn hình home chưa đăng nhập (dark theme) 86

Hình 4.10 Màn hình tìm kiếm 87

Hình 4.11 Màn hình tìm kiếm (dark theme) 87

Hình 4.13 Màn hình sách theo danh mục (dark theme) 88

Hình 4.14 Màn hình sách theo kết quả tìm kiếm 89

Hình 4.15 Màn hình sách theo kết quả tìm kiếm (dark themme) 89

Hình 4.16 Màn hình chi tiết sách 90

Hình 4.17 Màn hình chi tiết sách (dark theme) 90

Hình 4.18 Màn hình bình luận 91

Hình 4.19 Màn hình bình luận (dark theme) 91

Hình 4.20 Màn hình bình luận (2) 91

Hình 4.21 Màn hình bình luận (dark theme) (2) 91

Hình 4.22 Màn hình thư viện chưa đăng nhập 92

Hình 4.23 Màn hình thư viện chưa đăng nhập (dark theme) 92

Hình 4.24 Màn hình nhiệm vụ 93

Hình 4.25 Màn hình nhiệm vụ (dark theme) 93

Hình 4.26 Màn hình hồ sơ chưa đăng nhập 94

Hình 4.27 Màn hình hồ sơ chưa đăng nhập (dark theme) 94

Hình 4.28 Màn hình cài đặt 95

Hình 4.29 Màn hình cài đặt (dark theme) 95

Hình 4.31 Màn hình home (dark theme) 96

Hình 4.33 Màn hình home (dark theme) (2) 97

Hình 4.34 Màn hình thư viện 98

Hình 4.35 Màn hình thư viện (dark theme) 98

Hình 4.36 Màn hình thư viện (2) 98

Hình 4.37 Màn hình thư viện (dark theme) (2) 98

Hình 4.38 Màn hình thư viện (3) 99

Hình 4.39 Màn hình thư viện (dark theme) (3) 99

Hình 4.40 Màn hình đọc sách 100

Hình 4.41 Màn hình đọc sách (dark theme) 100

Hình 4.42 Màn hình đọc sách (2) 100

Hình 4.43 Màn hình đọc sách (dark theme) (2) 100

Hình 4.44 Màn hình đọc sách (3) 101

Hình 4.45 Màn hình đọc sách (dark theme) (3) 101

Hình 4.47 Màn hình đọc sách (dark theme) (4) 101

Hình 4.48 Màn hình đọc sách (5) 102

Hình 4.49 Màn hình đọc sách (dark theme) (5) 102

Hình 4.50 Màn hình nghe sách 103

Hình 4.51 Màn hình nghe sách (dark theme) 103

Hình 4.52 Màn hình nghe sách (2) 103

Hình 4.53 Màn hình nghe sách (dark theme) (2) 103

Hình 4.54 Màn hình nghe sách (3) 104

Hình 4.55 Màn hình nghe sách (dark theme) (3) 104

Hình 4.56 Màn hình thêm bình luận 105

Hình 4.57 Màn hình thêm bình luận (dark theme) 105

Hình 4.58 Màn hình hồ sơ 106

Hình 4.59 Màn hình hồ sơ (dark theme) 106

Hình 4.60 Màn hình hồ sơ (2) 106

Hình 4.61 Màn hình hồ sơ (dark theme) (2) 106

Hình 4.62 Màn hình chỉnh sửa thông tin cá nhân 108

Hình 4.63 Màn hình chỉnh sửa thông tin cá nhân (dark theme) 108

Hình 4.64 Màn hình đổi mật khẩu 109

Hình 4.65 Màn hình đổi mật khẩu (dark theme) 109

Hình 4.66 Màn hình ghi chú 110

Hình 4.67 Màn hình ghi chú (dark theme) 110

Hình 4.68 Màn hình nạp tiền 111

Hình 4.69 Màn hình nạp tiền (dark theme) 111

Hình 4.70 Màn hình thống kê 112

Hình 4.71 Màn hình thống kê (dark theme) 112

Hình 4.72 Màn hình thống kê (2) 112

Hình 4.73 Màn hình thống kê (dark theme) (2) 112

Hình 4.74 Màn hình câu hỏi thông thường 113

Hình 4.75 Màn hình câu hỏi thông thường (dark theme) 113

Hình 4.76 Màn hình tương tác với quản trị viên 114

Hình 4.77 Màn hình tương tác với quản trị viên (dark theme 114

Hình 4.78 Màn hình đăng nhập của quản trị viên 115

Hình 4.81 Màn hình quản lý danh mục sách 117

Hình 4.82 Màn hình quản lý danh mục sách (2) 118

Hình 4.83 Màn hình quản lý sách 119

Hình 4.84 Màn hình quản lý sách (2) 119

Hình 4.85 Màn hình quản lý sách (3) 120

Hình 4.86 Màn hình quản lý sách (4) 120

Hình 4.87 Màn hình quản lý sách (5) 121

Hình 4.88 Màn hình quản lý sách (6) 121

Hình 4.89 Màn hình quản lý người dùng 123

Hình 4.90 Màn hình quản lý người dùng (2) 123

Hình 4.91 Màn hình quản lý nhiệm vụ 124

Hình 4.92 Màn hình quản lý nhiệm vụ (2) 125

Hình 4.93 Màn hình quản lý nhiệm vụ (3) 125

Hình 4.94 Màn hình quản lý nhiệm vụ (4) 126

Bảng 2.1 Nhận xét về ứng dụng Kindle 33

Bảng 2.2 Nhận xét về ứng dụng Tủ sách – Read Ebook 36

Bảng 2.3 Các yêu cầu về chức năng nghiệp vụ 37

Bảng 2.4 Các yêu cầu chức năng hệ thống 38

Bảng 2.5 Các yêu cầu phi chức năng 40

Bảng 3.1 Use case đăng ký 41

Bảng 3.3 Usecase xem thông tin sách 43

Bảng 3.4 Usecase xem bình luận 43

Bảng 3.5 Usecase xem nhiệm vụ 44

Bảng 3.6 Usecase chuyển đổi giao diện sáng, tối 44

Bảng 3.7 Use case đăng nhập 46

Bảng 3.8 Usecase quên mật khẩu 46

Bảng 3.10 Usecase đặt lại mật khẩu 47

Bảng 3.11 Usecase quản lý thông tin cá nhân 48

Bảng 3.14 Usecase đánh dấu sách 50

Bảng 3.16 Usecase tra từ điển 51

Bảng 3.17 Usecase thay đổi cỡ chữ 52

Bảng 3.18 Usecase đánh giá sách 52

Bảng 3.19 Usecase thực hiện nhiệm vụ 53

Bảng 3.20 Usecase xem các câu hỏi thường gặp 54

Bảng 3.21 Usecase phản hồi và đặt câu hỏi cho quản trị viên 55

Bảng 3.22 Usecase đánh giá sách 55

Bảng 3.24 Usecase xem thống kê hoạt động 57

Bảng 3.25 Usecase quản lý danh mục sách 58

Bảng 3.26 Usecase quản lý sách 59

Bảng 3.27 Usecase quản lý người dùng 60

Bảng 4.1 Mô tả màn hình đăng nhập 84

Bảng 4.2 Mô tả màn hình đăng ký 85

Bảng 4.3 Mô tả màn hình home (chưa đăng nhập) 86

Bảng 4.4 Mô tả màn hình tìm kiếm 87

Bảng 4.5 Mô tả màn hình sách theo danh mục 88

Bảng 4.6 Mô tả màn hình sách theo kết quả tìm kiếm 89

Bảng 4.7 Mô tả màn hình chi tiết sách 90

Bảng 4.8 Mô tả màn hình bình luận 92

Bảng 4.9 Mô tả màn hình thư viện 92

Bảng 4.10 Mô tả màn hình nhiệm vụ 93

Bảng 4.11 Mô tả màn hình hồ sơ (chưa đăng nhập) 94

Bảng 4.12 Mô tả màn hình cài đặt 95

Bảng 4.13 Mô tả màn hình home 97

Bảng 4.14 Mô tả màn hình thư viện 99

Bảng 4.15 Mô tả màn hình sách 102

Bảng 4.16 Mô tả màn hình nghe sách 104

Bảng 4.17 Mô tả màn hình thêm bình luận 105

Bảng 4.18 Mô tả màn hình hồ sơ 107

Bảng 4.19 Mô tả màn hình chỉnh sửa thông tin cá nhân 108

Bảng 4.20 Mô tả màn hình đổi mật khẩu 109

Bảng 4.21 Mô tả màn hình ghi chú 110

Bảng 4.22 Mô tả màn hình nạp tiền 111

Bảng 4.23 Mô tả màn hình thống kê 113

Bảng 4.24 Mô tả màn hình câu hỏi thông thường 113

Bảng 4.25 Mô tả màn hình tương tác với quản trị viên 114

Bảng 4.26 Mô tả màn hình đăng nhập của quản trị viên 115

Bảng 4.27 Mô tả màn hình dashboard 116

Bảng 4.28 Mô tả màn hình quản lý danh mục sách 118

Bảng 4.29 Mô tả màn hình quản lý sách 121

Bảng 4.30 Mô tả màn hình quản lý người dùng 123

Bảng 4.31 Mô tả màn hình quản lý nhiệm vụ 126

Bảng 5.1 Kiểm thử các chức năng phân hệ khách 129

Bảng 5.3 Kiểm thử các chức năng thuộc phân hệ quản trị viên 131

Bảng 5.4 Test case đánh giá sách khi chưa đọc hoặc nghe sách 132

Bảng 5.5 Test case tra từ điển 132

Bảng 5.6 Test case lưu sách nói 133

Bảng 5.7 Test case nạp tiền 134

Bảng 5.8 Test case mua sách 135

Bảng 5.9 Test case thực hiện nhiệm vụ xem sách 136

Bảng 5.10 Test case thực hiện nhiệm vụ bình luận sách 137

Bảng 5.11 Test case thực hiện thêm nhiệm vụ 139

Bảng 5.12 Test case chỉnh sửa danh mục sách 140

Bảng 5.13 Test case chặn người dùng 141

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời hiện đại với sự bùng nổ của công nghệ thông tin, sự tiếp xúc của con người với các phương tiện truyền thông hiện đại ngày càng mạnh mẽ hơn bao giờ hết Văn hóa đọc, một trụ cột của sự phát triển văn hóa và tri thức, đang chứng tỏ sự quan trọng không thể thay thế trong bối cảnh công nghiệp hóa

- hiện đại hóa, đặc biệt là khi đất nước chúng ta đang bước chân vào cuộc cách mạng công nghiệp 4.0 và nền kinh tế tri thức

Tuy nhiên, thách thức ngày càng lớn đối với phong trào đọc sách đã nảy sinh Số lượng người đọc thực sự đã giảm đi đáng kể do sự gia tăng của các phương tiện truyền thông thị giác và âm thanh cũng như mạng xã hội Thêm vào đó, sự bùng nổ của ngành xuất bản và kỷ nguyên số đã tạo ra một lượng lớn sách báo và thông tin đa chiều, đòi hỏi sự lựa chọn thông minh và thời gian để tiếp tục duy trì thói quen đọc

Trong bối cảnh này, việc tùy chỉnh nội dung đọc sao cho phù hợp với từng người dựa trên trình độ, nghề nghiệp và sở thích cá nhân trở nên vô cùng quan trọng Để bắt kịp xu hướng và sự phát triển của thời đại, ngày càng nhiều ứng dụng và trang web đọc sách trực tuyến ra đời

Trên cơ sở đó, nhóm em có ý tưởng xây dựng một ứng dụng di động đọc sách, giúp cho việc tìm kiếm và đọc sách trở nên nhanh chóng và thuận tiện hơn ở mọi thời gian, địa điểm Bằng cách sử dụng công nghệ và khả năng tùy chỉnh thông minh, ứng dụng sẽ mang lại trải nghiệm đọc sách cá nhân hóa hơn, giúp mọi người duy trì thói quen đọc trong thời đại số hóa và tiến bộ này

2 MỤC ĐÍCH CỦA ĐỀ TÀI Đề tài có mục đích chính là xây dựng một ứng dụng đọc sách giúp cung cấp các tính năng tiện ích, cải thiện trải nghiệm đọc sách, tiết kiệm thời gian, chi phí và có hiệu qua cao

Thiết kế giao diện đơn giản, đẹp, sử dụng dễ dàng, gần gũi với người dùng

Cung cấp các tính năng tiện lợi, độc đáo, thú vị

CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

Đối tượng nghiên cứu

Các đối tượng nghiên cứu của đề tài:

• Người sử dụng cuối: Đây là người sẽ truy cập và sử dụng ứng dụng Đây có thể là khách hàng, hoặc người dùng đã có tài khoản muốn truy cập vào ứng dụng để tìm, đọc sách và lưu lại tiến trình đọc Với mục đích hướng vào đối tượng người dùng tuổi trẻ là chủ yếu ứng dụng dự tính xây dựng với giao diện trẻ trung, đơn giản

• Quản trị viên của ứng dụng: Người có quyền truy cập và quản lý toàn bộ các thành phần của ứng dụng như sách, danh mục sách, tác giả, nhiệm vụ, lịch sử đọc, giao dịch,…

Phạm vi nghiên cứu

Flutter, Dart: Xây dựng giao diện app cho các chức năng cần thiết, đọc và thao tác được với API server

NodeJs: Xây dựng các API với các chức năng cần thiết cho ứng dụng, liên kết với database

FireBase: Lưu trữ database của ứng dụng

CƠ SỞ LÝ THUYẾT

TÌM HIỂU VỀ FLUTTER [2]

Flutter là SDK di động của Google để xây dựng các ứng dụng IOS và Android gốc từ một cơ sở mã duy nhất Nó được phát triển vào ngày 4 tháng 12 năm 2018 Khi xây dựng các ứng dụng bằng Flutter, mọi thứ đều hướng tới Widget – các khối mà ứng dụng Flutter được xây dựng Giao diện người dùng của ứng dụng bao gồm nhiều tiện ích đơn giản, mỗi tiện ích xử lý một công việc cụ thể

1.1.2 Các chức năng nổi bật

Phát triển đa nền tảng (Cross-platform development): Flutter cho phép các nhà phát triển viết một codebase duy nhất cho cả Android và IOS, đồng thời nó cũng giúp giảm thời gian và chi phí phát triển

Tải lại nóng (Hot Reload): Flutter cho phép các nhà phát triển xem những thay đổi ngày lập tức xảy ra trong code, tính năng này giúp quá trình phát triển nhanh hơn và hiệu quả hơn

Mã nguồn mở (Open-Source): Flutter là một framework mã nguồn mở và miễn phí để phát triển các ứng dụng di động

SDK và các tính năng gốc có thể truy cập (Accessible Native Features and SDKs): Tính năng này cho phép quá trình phát triển ứng dụng trở nên dễ dàng và thú vị thông qua mã gốc của Flutter, tích hợp của bên thứ ba và API nền tảng Do đó, chúng ta có thể dễ dàng truy cập SDK trên cả hai nền tảng

Code tối thiểu (Minimal code): Ứng dụng Flutter được phát triển bởi ngôn ngữ lập trình Dart, sử dụng trình biên dịch JIT và AOT để cải thiện thời gian khởi động tổng thể, hoạt động và tăng tốc hiệu suất

Widget: Flutter framework cung cấp các widget có khả năng phát triển các thiết kế cụ thể có thể tùy chỉnh Quan trọng nhất, Flutter có hai bộ widget:

Material Design và Cupertino widget giúp mang lại trải nghiệm không gặp trục trặc trên tất cả các nền tảng.

TÌM HIỂU VỀ DART [3]

Dart là ngôn ngữ lập trình hiện đại cấp cao, có mục đích chung, được phát triển ban đầu bởi Google Đây là ngôn ngữ lập trình mới xuất hiện vào năm 2011, nhưng phiên bản ổn định của nó đã được phát hành vào tháng 6 năm

2017 Dart không quá phổ biến vào thời điểm đó, nhưng nó trở nên phổ biến khi được Flutter sử dụng

Dart là một ngôn ngữ lập trình hướng đối tượng, dựa trên lớp Về mặt cú pháp, nó khá giống với Java, C và JavaScript Nếu biết bất kỳ ngôn ngữ lập trình nào trong số này, bạn có thể dễ dàng học ngôn ngữ lập trình Dart

Dart là ngôn ngữ lập trình nguồn mở được sử dụng rộng rãi để phát triển ứng dụng di động, ứng dụng web hiện đại, ứng dụng máy tính để bàn và Internet of Things (IoT) sử dụng khung Flutter Nó cũng hỗ trợ một số khái niệm nâng cao như giao diện, mixin, lớp trừu tượng, Nó là một ngôn ngữ biên dịch và hỗ trợ hai loại kỹ thuật biên dịch

AOT (Ahead of time) - Nó chuyển đổi mã Dart thành mã JavaScript được tối ưu hóa với sự trợ giúp của trình biên dịch dart2js và chạy trên tất cả các trình duyệt web hiện đại Nó biên dịch mã tại thời điểm xây dựng

JOT (Just-In-Time) - Nó chuyển đổi mã byte trong mã máy (mã gốc), nhưng chỉ mã cần thiết

1.2.2 Các chức năng nổi bật

Mã nguồn mở (Open Source): Dart là ngôn ngữ lập trình nguồn mở, có nghĩa là nó được cung cấp miễn phí Nó được phát triển bởi Google, được tiêu chuẩn ECMA (European Computer Manufacturers Association) phê duyệt và đi kèm với giấy phép BSD (Berkeley Software Distribution License)

Nền tảng độc lập (Platform Independent): Dart hỗ trợ tất cả các hệ điều hành chính như Windows, Linux, Macintosh, v.v Dart có Máy ảo riêng được gọi là Dart VM, cho phép chúng ta chạy mã Dart trong mọi hệ điều hành

Hướng đối tượng (Object-Oriented): Dart là ngôn ngữ lập trình hướng đối tượng và hỗ trợ tất cả các khái niệm lập trình hướng đối tượng như lớp, kế thừa, Nó cũng hỗ trợ các khái niệm nâng cao như mixin, trừu tượng, các lớp, kiểu thống nhất Đồng thời (Concurrency): Dart là ngôn ngữ lập trình không đồng bộ, có nghĩa là nó hỗ trợ đa luồng bằng cách sử dụng Isolates Các phần tách biệt là các thực thể độc lập có liên quan đến các luồng nhưng không chia sẻ bộ nhớ và thiết lập liên lạc giữa các tiến trình bằng cách truyền thông báo

Thư viện mở rộng (Extensive Libraries): Dart bao gồm nhiều thư viện sẵn có hữu ích bao gồm SDK (Bộ phát triển phần mềm), core, math, async, math, chuyển đổi, html, IO, v.v Nó cũng cung cấp cơ sở để sắp xếp code Dart thành các thư viện với không gian tên thích hợp Nó có thể tái sử dụng bằng câu lệnh import

Dễ học (Easy to learn): Như chúng ta đã thảo luận ở phần trước, học

Dart không phải là nhiệm vụ của Hercules vì chúng ta biết rằng cú pháp của Dart tương tự như Java, C#, JavaScript, kotlin, v.v nếu bạn biết bất kỳ ngôn ngữ nào trong số này thì bạn có thể học Dart một cách dễ dàng

Biên soạn linh hoạt (Flexible Compilation): Dart cung cấp sự linh hoạt để biên dịch mã và nhanh chóng Nó hỗ trợ hai loại quy trình biên dịch, AOT (Ahead of time) và JIT (Just-in-Time) Code Dart được truyền bằng ngôn ngữ khác có thể chạy trong các nhà sản xuất web hiện đại

Loại an toàn (Type Safe): Dart là ngôn ngữ an toàn kiểu, có nghĩa là nó sử dụng cả kiểm tra kiểu tĩnh và kiểm tra thời gian chạy để xác nhận rằng giá trị của biến luôn khớp với kiểu tĩnh của biến, đôi khi nó được gọi là kiểu gõ âm thanh Mặc dù các Type là bắt buộc, nhưng chú thích loại là tùy chọn do có sự can thiệp về loại Điều này làm cho mã dễ đọc hơn Ưu điểm khác của ngôn ngữ an toàn kiểu là khi chúng ta thay đổi một phần mã, hệ thống sẽ cảnh báo chúng ta về sửa đổi mà chúng ta đã sửa đổi trước đó

Các đối tượng (Objects): Dart coi mọi thứ như một đối tượng Giá trị gán cho biến là một đối tượng Các hàm, số và chuỗi cũng là một đối tượng trong Dart Tất cả các đối tượng đều kế thừa từ lớp Object

Hỗ trợ trình duyệt: (Browser Support): Dart hỗ trợ tất cả các trình duyệt web hiện đại Nó đi kèm với trình biên dịch Dart2js giúp chuyển đổi code Dart thành code JavaScript được tối ưu hóa phù hợp với mọi loại trình duyệt web

Cộng đồng (Community): Dart có một cộng đồng lớn trên toàn thế giới Vì vậy, nếu gặp phải vấn đề trong khi viết code thì bạn có thể dễ dàng tìm được sự trợ giúp.

TÌM HIỂU VỀ FIREBASE

Firebase, Inc là một tập hợp các nền tảng phát triển ứng dụng và dịch vụ điện toán đám mây phụ trợ do Google cung cấp Nó lưu trữ cơ sở dữ liệu, dịch vụ, xác thực và tích hợp cho nhiều ứng dụng

Firebase cung cấp cho chúng ta những API đơn giản, mạnh mẽ và đa nền tảng trong việc quản lý, sử dụng database

1.3.2 Các chức năng nổi bật [6]

Gồm các tính năng như:

• Realtime, cho phép người dùng lưu trữ và đồng bộ dữ liệu theo thời gian thực Dịch vụ này được lưu trữ trực tiếp trên iCloud, mỗi khi dữ liệu thay đổi mọi thiết bị kết nối sẽ nhận được thay đổi lập tức

• Offline: Ứng dụng sử dụng Firebase vẫn khả dụng khi ngoại tuyến vì chúng sẽ sử dụng tới bộ nhớ của thiết bị và tự động đồng bộ lên server khi thiết bị online

• Sử dụng cho nhiều thiết bị và khả năng mở rộng thông qua kết hợp cơ sở dữ liệu

Xây dựng các bước xác thực người dùng bằng Email, Facebook, Twitter, GitHub, Google,…Với tính năng này, người dùng sẽ dễ dàng xây dựng login mà không cần sử dụng dữ liệu đăng ký riêng

Firebase Cloud Messaging (FCM) là một dịch vụ miễn phí của Google Thông qua FCM, nhà phát triển ứng dụng có thể gửi thông điệp một cách nhanh chóng, an toàn tới các thiết bị cài đặt ứng dụng của họ Ngoài ra, còn có thể sử dụng xây dựng ứng dụng chat

Google Analytics là một giải pháp đo lường ứng dụng miễn phí cung cấp cái nhìn sâu sắc về việc sử dụng ứng dụng và thao tác của người dùng đối với ứng dụng

Báo cáo phân tích giúp chúng ta hiểu rõ các hành vi của người dùng khi sử dụng ứng dụng của chúng ta, điều này cho phép chúng ta có thể đưa ra những quyết định sáng suốt liên quan đến tiếp thị (marketing) ứng dụng và tối ưu hóa hiệu suất (performance optimizations).

TÌM HIỂU VỀ NODE.JS [4]

1.4.1 Giới thiệu về Node.js

Node.js là một nền tảng (Platform) phát triển độc lập, là một môi trường chạy mã JavaScript phía máy chủ (server-side), được xây dựng dựa trên JavaScript Engine của Google Chrome (Chrome’s V8 JavaScript Engine)

1.4.2 Các chức năng nổi bật

1.4.2.1 Lập trình không đồng bộ:

Toàn bộ API trong thư viện Node.js đều không đồng bộ, hay không bị chặn Về cơ bản điều này có nghĩa là một server sử dụng Node.js sẽ không bao giờ chờ một API trả về dữ liệu Server sẽ chuyển sang API kế tiếp sau khi gọi API đó và cơ chế thông báo của Events trong Node.js giúp server nhận được phản hồi từ lần gọi API trước

Nói cách khác, Node.js hoạt động theo cách không chặn, không chặn việc thực thi bất kỳ hoạt động nào tiếp theo I/O không đồng bộ và không chặn cải thiện cả thời gian phản hồi và trải nghiệm người dùng

Là một cách tiếp cận lập trình mà chúng ta tập trung vào việc phản ứng và xử lý các "sự kiện" thay vì việc thực hiện các nhiệm vụ theo thứ tự từ trên xuống dưới Lập trình hướng sự kiện giúp ứng dụng trở nên phản ứng và linh hoạt Thay vì chờ đợi một luồng thực thi tuyến tính, ứng dụng có thể xử lý nhiều sự kiện đồng thời và phản hồi theo cách tùy chỉnh cho từng sự kiện riêng lẻ

Node.js sử dụng kiến trúc hướng sự kiện và mô hình không đồng bộ để xử lý sự kiện và tác vụ I/O Điều này làm cho Node.js phù hợp cho việc xây dựng các ứng dụng dựa trên sự kiện như ứng dụng thời gian thực và đa người dùng

Khả năng mở rộng cao: Các ứng dụng Node.js có khả năng mở rộng cao vì chúng chạy không đồng bộ Node.js có thể xử lý các yêu cầu đồng thời một cách hiệu quả trong khi cân bằng tất cả các lõi CPU đang hoạt động Tính năng này của Node.js rất có lợi cho các nhà phát triển

Khả năng mở rộng cao: Các ứng dụng Node.js có khả năng mở rộng cao vì chúng chạy không đồng bộ Node.js có thể xử lý các yêu cầu đồng thời một cách hiệu quả trong khi cân bằng tất cả các lõi CPU đang hoạt động Tính năng này của Node.js rất có lợi cho các nhà phát triển

Node.js sử dụng một mô hình luồng đơn với vòng lặp sự kiện/event Vòng lặp sự kiện là thứ cho phép Node.js thực hiện tất cả các hoạt động không chặn Điều này có nghĩa là mọi thứ từ nhận yêu cầu đến thực hiện tác vụ đến gửi phản hồi cho máy khách đều được thực thi trong một luồng duy nhất Tính năng này ngăn chặn việc tải lại và giảm thời gian chuyển ngữ cảnh

Node.js hoạt động với các luồng dữ liệu, là dữ liệu tổng hợp Do đó, người dùng có thể lấy dữ liệu dễ dàng và nhanh chóng hơn vì không cần phải đợi toàn bộ thao tác hoàn tất Nó làm giảm thời gian tổng thể cần thiết để xử lý Do đó, có rất ít hoặc không có dữ liệu bị đệm trong Node.js

Node.js hỗ trợ nhiều hệ điều hành, bao gồm Windows, macOS và các phiên bản của Linux, giúp bạn phát triển ứng dụng đa nền tảng

1.4.2.8 License: Được phát hành theo giấy phép MIT

KHẢO SÁT HIỆN TRẠNG

KHẢO SÁT MỘT SỐ PHẦN MỀM

2.2.1.1 Các màn hình chính của ứng dụng

Hình 2.1 Trang chủ Kindle Hình 2.2 Trang thư viện

Hình 2.3 Trang cài đặt thêm

Hình 2.4 Trang chủ khi đã đăng nhập Hình 2.5 Trang library khi chưa có sách

Hình 2.6 Trang Shorts Hình 2.7 Trang thông tin chi tiết của sách

Hình 2.8 Trang hiển thị sách được tải về

Bảng 2.1 Nhận xét về ứng dụng Kindle Điểm mạnh Điểm yếu

⚫ Số lượng sách khổng lồ: Kindle có một thư viện sách điện tử rất lớn với hàng triệu tựa sách khác nhau, bao gồm cả sách văn học, chuyên ngành và học thuật Điều này tạo ra nhiều lựa chọn đọc sách cho người dùng

⚫ Giao diện sáng sủa và dễ sử dụng: Giao diện của ứng dụng Kindle được thiết kế đơn giản và dễ sử dụng, giúp người dùng dễ dàng tìm kiếm, mua sách và quản lý thư viện cá nhân

⚫ Sự tích hợp với hệ thống Kindle: cho phép bạn chuyển đổi giữa đọc trên điện

⚫ Phụ thuộc vào hệ sinh thái Amazon: Kindle chặt chẽ liên kết với hệ sinh thái Amazon Điều này có nghĩa là nếu bạn muốn mua sách điện tử, bạn phải dựa vào cửa hàng sách của Amazon Điều này có thể khiến cho người dùng muốn khám phá sách từ các nguồn khác cảm thấy hạn chế

⚫ Hạn chế cho đối tượng đọc sách hoàn toàn miễn phí: Mặc dù có nhiều sách miễn phí trên Kindle, nhưng không phải tất cả sách đều miễn phí Một số sách nổi tiếng và mới nhất thường phải trả phí thoại di động, máy tính bảng và các thiết bị khác mà không mất dữ liệu và tiến trình đọc

⚫ Chế độ đọc linh hoạt: Ứng dụng cung cấp nhiều tùy chọn cho việc đọc sách, bao gồm chế độ ban đêm, tùy chỉnh kích thước văn bản và phông chữ, và hỗ trợ đọc theo chế độ ngang hoặc dọc

⚫ Chia sẻ trích dẫn và chú thích: Bạn có thể chia sẻ trích dẫn và chú thích từ sách với bạn bè trên mạng xã hội, tạo ra một trải nghiệm đọc tương tác

2.2.2 Ứng dụng Tủ Sách - Read Ebook

2.2.2.1 Các màn hình chính của ứng dụng

Hình 2.9 Trang chủ Tủ Sách Hình 2.10 Trang chi tiết sản phẩm

Hình 2.11 Trang nội dung sách (1) Hình 2.12 Trang nội dung sách (2)

Hình 2.13 Mục lục sách Hình 2.14 Chức năng sách nói

Hình 2.15 Quản lý thông tin cá nhân Hình 2.16 Gửi phản hồi

Bảng 2.2 Nhận xét về ứng dụng Tủ sách – Read Ebook Điểm mạnh Điểm yếu

⚫ Giao diện thân thiện và dễ sử dụng: Tủ

Sách có một giao diện người dùng thân thiện và trực quan, giúp người dùng dễ dàng tìm kiếm, chọn và đọc sách một cách tiện lợi

⚫ Phong phú sách trong thư viện: Ứng dụng này cung cấp một thư viện sách đa dạng, từ văn học cho đến sách chuyên ngành, cho phép người dùng tìm kiếm và chọn sách dựa trên sở thích cá nhân

⚫ Chế độ đọc linh hoạt: Tủ Sách cho phép tùy chỉnh kích thước chữ, chế độ đọc ngang hoặc dọc, và hỗ trợ chế độ ban

⚫ Quảng cáo: ứng dụng Tủ Sách có thể hiển thị quảng cáo khiến người dùng có thể thấy làm phiền và làm giảm trải nghiệm đọc

⚫ Không có tích hợp với các thiết bị đọc sách: Tủ Sách có thể không hỗ trợ đồng bộ hóa với các thiết bị đọc sách điện tử khác như Kindle, giới hạn khả năng chia sẻ nội dung giữa các thiết bị

⚫ Vấn đề tải sách: Ứng dụng cần nâng cấp tài khoản để có thể đọc offline, ngay cả đối với sách đã tải xuống đêm để giảm ánh sáng xanh

⚫ Hỗ trợ nhiều định dạng sách điện tử: Ứng dụng này hỗ trợ nhiều định dạng sách điện tử phổ biến, cho phép bạn đọc sách từ nhiều nguồn khác nhau

⚫ Chia sẻ trích dẫn và đánh dấu: Tủ Sách cho phép bạn chia sẻ trích dẫn và đánh dấu trong sách với bạn bè, tạo ra trải nghiệm đọc tương tác và thú vị.

PHÂN TÍCH CÁC YÊU CẦU CỦA HỆ THỐNG

2.3.1 Các yêu cầu về chức năng nghiệp vụ

Bảng 2.3 Các yêu cầu về chức năng nghiệp vụ Đối tượng Các chức năng thực hiện

Khách (chưa đăng ký tài khoản) Đăng ký Tìm kiếm Xem thông tin sách Xem bình luận Xem danh sách nhiệm vụ Chuyển đổi giao diện sáng, tối

Người dùng Đăng nhập /Đăng ký

Tìm kiếm Xem thông tin sách Xem bình luận Xem danh sách nhiệm vụ Chuyển đổi giao diện sáng, tối Quên mật khẩu Đăng xuất Đặt lại mật khẩu qua mail Quản lý thông tin cá nhân Đọc sách

Nghe sách Đánh dấu sách Ghi chú Tra từ điển Thay đổi cỡ chữ Đánh giá sách Thực hiện nhiệm vụ Xem các câu hỏi thường gặp Phản hồi, đặt câu hỏi cho quản trị viên Nạp tiền

Mua sách Xem thống kê hoạt động

Quản trị viên Đăng nhập

Quản lý danh mục sách Quản lý sách

Quản lý người dùng Quản lý nhiệm vụ Quản lý doanh thu

2.3.2 Các yêu cầu chức năng hệ thống

Bảng 2.4 Các yêu cầu chức năng hệ thống

STT Nội dung Mô tả chi tiết Ghi chú

Hệ thống đảm bảo chỉ người dùng đã xác thực mới có thể truy cập vào các chức năng chính của hệ thống

Người dùng chưa đăng nhập chỉ sử dụng được các chức năng cơ bản

Hệ thống cung cấp chức năng để thêm, sửa, xóa các dữ liệu trong hệ thống

Hệ thống sử dụng Cloud Firestore và Storage trên Firebase để lưu các dữ liệu chính của hệ thống Và sử dụng SharedPreferences để lưu các dữ liệu local của người dùng

4 Phân quyền Khách: Được sử dụng các chức năng cơ bản của sử dụng hệ thống, xem sơ lược các thành phần và đăng ký để trở thành người dùng Người dùng: Sử dụng các chức năng chính của hệ thống Quản trị viên: có quyền sử dụng các chức năng của hệ thống quản lý

5 Quản lý các file và phương tiện

Các file phương tiện (hình ảnh và các file âm thamh) khi đưa vào hệ thống để lưu trữ đầu tiên sẽ được kiểm tra phải chính xác là các file phương tiện, sau đó hệ thống sẽ sử dụng dịch vụ bên thứ 3 là Firebase để lưu trữ và quản lý

6 Chức năng xóa tài nguyên

Với các chức của hệ thống không thể xóa trực tiếp tại cơ sở dữ liệu, hệ thống sẽ chuyển trạng thái của dữ liệu sang trạng thái là false

7 Gửi mã xác thực qua mail

Hệ thống dùng dịch vụ bên thứ 3 là Google Gmail để gửi OTP để đăng ký, quên mật khẩu thông qua email

Hỗ trợ 2 cổng thanh toán Paypal và VNPay Khi thực hiện thanh toán online khi thanh toán thành công hệ thống sẽ cập nhật số tiền tương ứng vào ví của ứng dụng

Các tài nguyên có chức năng vô hiệu hóa sẽ ẩn tài nguyên khỏi hệ thống người dùng, các người dùng, khách hàng sẽ không thể tìm thấy, truy cập vào tài nguyên đó nữa

2.3.3 Các yêu cầu phi chức năng

Bảng 2.5 Các yêu cầu phi chức năng

STT Nội dung Tiêu chuẩn Mô tả chi tiết

1 Tính bảo mật của hệ thống Hiệu quả Đảm bảo lưu trữ, bảo mật dữ liệu người dùng

2 Giao diện đơn giản, dễ sử dụng

Hiệu quả Giúp người dùng có thể sử dụng dễ dàng

3 Nâng cấp hệ thống Hiểu quả Dễ dàng cập nhật, nâng cấp hệ thống

MÔ HÌNH HÓA CÁC YÊU CẦU

LƯỢC ĐỒ USECASE

Hình 3.2 Lược đồ usecase phân hệ khách

Bảng 3.1 Use case đăng ký

Brief description Khách đăng ký tài khoàn

Post-conditions Nếu đăng ký thành công, khách được chuyển tới trang đăng nhập

Nếu thất bại: hệ thống vẫn ở trang đăng ký, hiện thông báo yêu cầu khách thực hiện lại thao tác

Use case bắt đầu khi khách muốn đăng ký tài khoản để đăng nhập vào chế độ người dùng của ứng dụng:

1 Hệ thống hiển thị giao diện trang đăng ký tài khoản

2 Khách nhập các thông tin về email, mật khẩu, số điện thoại, và nhấn nút đăng ký

3 Hệ thống kiểm tra thông tin và tiến hành tạo tài khoản, hiển thị thông báo tạo tài khoản thành công, chuyển sang trang đăng nhập

Nếu trong quá trình kiểm tra dữ liệu hoặc nhập mã xác thực xảy ra lỗi

1 Hệ thống hiển thị thông báo lỗi, yêu cầu kiểm tra lại thông tin, và quay về trang đăng ký

2 Quay lại bước 2 ở Basic flow

Brief description Khách muốn tìm kiếm sách theo tên sách, tên tác giả, thể loại sách

Post-conditions Nếu tìm kiếm thành công, hiển thị danh sách các sách đáp ứng yêu cầu tìm kiếm Nếu tìm kiếm thất bại, hiển thị danh sách tất cả các sách

Usecase bắt đầu khi khách muốn tìm kiếm sách

1 Khách nhấn thanh tìm kiếm ở thanh công cụ để chuyển sang giao diện trang tìm kiếm

2 Hệ thống hiển thị giao diện trang tìm kiếm gồm thanh tìm kiếm và danh sách thể loại sách Khách có thể tìm kiếm theo 2 cách:

3 Tìm kiếm theo thể loại:

3.1 Khách chọn vào thể loại sách 3.2 Hệ thống hiển thị tất cả các sách theo thể loại

4 Tìm kiếm theo từ khóa:

4.1 Khách điền từ khóa, chọn tìm kiếm theo tên sách hoặc tên tác giả

4.2 Hệ thống hiển thị sách theo từ khóa vừa tìm kiếm

Bảng 3.3 Usecase xem thông tin sách

Name Xem thông tin sách

Brief description Khách muốn xem thông tin chi tiết của một quyển sách

Use case bắt đầu khi khách nhấn vào một quyển sách để xem thông tin

1 Hệ thống hiển thị thông tin chi tiết của quyển sách gồm giới thiệu tóm tắt, số trang, điểm đánh giá,…

2 Khách có thể ấn vào nút đọc để chuyển sang tính năng đọc sách

Bảng 3.4 Usecase xem bình luận

Name Xem thông tin sách

Brief description Khách muốn xem bình luận của một quyển sách

Use case bắt đầu khi khách nhấn vào phần bình luận một quyển sách để xem thông tin

1 Hệ thống hiển thị tổng các bình luận và các bình luận phân theo điểm đánh giá

2 Khách có thể ấn vào nút bình luận để xem cụ thể nội dung các bình luận (nếu có)

Bảng 3.5 Usecase xem nhiệm vụ

Brief description Khách muốn xem thông tin của một nhiệm vụ

Use case bắt đầu khi khách nhấn vào trang nhiệm vụ

1 Hệ thống hiển thị thông tin chi tiết của các nhiệm vụ

2 Khách có xem cụ thể tên, loại, số tiền nhận được của mỗi nhiệm vụ

3.1.1.6 Chuyển đổi giao diện sáng, tối

Bảng 3.6 Usecase chuyển đổi giao diện sáng, tối Name Chuyển đổi giao diện sáng, tối

Brief description Khách muốn chuyển đổi giao diện sáng, tối

Usecase bắt đầu khi khách hàng truy cập vào trang cài đặt:

1 Hệ thống hiển thị trang cài đặt

2 Khách hàng nhấn vào nút chế độ tối để chuyển đổi giao diện

3 Hệ thống sẽ chuyển thành giao diện sáng nếu giao diện hiện tại đang tối và ngược lại Sau đó lưu giao diện được chọn vào local storage

Hình 3.3 Lược đồ usecase phân hệ người dùng

Bảng 3.7 Use case đăng nhập

Brief description Người dùng muốn đăng nhập vào hệ thống

Pre-conditions Người dùng đã đăng ký tài khoản thành công

Post-conditions Nếu đăng nhập thành công, người dùng được chuyển tới trang chủ

Nếu thất bại: hệ thống vẫn ở trang đăng nhập, hiện thông báo yêu cầu người dùng thực hiện lại thao tác

Use case bắt đầu khi người dùng muốn đăng nhập vào chế độ người dùng của ứng dụng:

1 Hệ thống hiển thị giao diện trang đăng nhập tài khoản

2 Người dùng nhập các thông tin về email, mật khẩu và nhấn nút đăng nhập

3 Hệ thống kiểm tra thông tin hợp lệ, cùng với thông tin phân quyền, chuyển sang trang chủ

Nếu trong quá trình hệ thống kiểm tra thông tin đăng nhập xảy ra lỗi

1 Hệ thống hiển thị thông báo lỗi về tên đăng nhập hoặc mật khẩu

2 Quay lại bước 2 ở basic flow

Bảng 3.8 Usecase quên mật khẩu

Brief description Người dùng quên mật khẩu của tài khoản

Pre-conditions Người dùng đã đăng ký tài khoản thành công

Post-conditions Nếu thành công, hiển thị thông báo cập nhật thành công, người dùng được chuyển tới trang đăng nhập

Basic flow (thành Use case bắt đầu khi người dùng muốn đặt mật khẩu mới cho tài khoản: công) 1 Người dùng nhập email muốn reset mật khẩu

2 Hệ thống gửi link để người dùng đặt mật khẩu mới qua email

3 Người dùng điền mật khẩu và nhấn save

4 Hệ thống lưu thông tin mật khẩu mới

Nếu trong quá trình hệ thống kiểm tra thông tin xảy ra lỗi

1 Hệ thống hiển thị thông báo lỗi về otp

2 Quay lại bước 3 ở basic flow và yêu cầu gửi lại mã otp

Brief description Người dùng muốn đăng xuất khỏi hệ thống

Pre-conditions Người dùng đã đăng nhập vào hệ thống

Usecase bắt đầu khi người dùng muốn đăng xuất tài khoản hoặc muốn đăng nhập vào tài khoản khác

1 Người dùng chọn đăng xuất

2 Hệ thống xóa thông tin người dùng trên session storage và local storage

3 Hệ thống trả về trang đăng nhập

Bảng 3.10 Usecase đặt lại mật khẩu

Name Đặt lại mật khẩu

Brief description Người dùng muốn đặt lại mật khẩu

Pre-conditions Người dùng đã đăng nhập vào hệ thống

Post-conditions Nếu thành công, hiển thị thông báo cập nhật thành công, khách được chuyển tới trang đăng nhập

Usecase bắt đầu khi người dùng muốn đặt lại mật khẩu và nhấn nút đặt lại mật khẩu

1 Hệ thống chuyển người dùng sang trang dùng để đặt lại mật khẩu

2 Người dùng nhập thông tin về mật khẩu cũ, mật khẩu mới và xác nhận mật khẩu mới Sau đó nhấn cập nhật

3 Hệ thống cập nhật mật khẩu mới lên server của firebase và database

Nếu trong quá trình hệ thống kiểm tra thông tin xảy ra lỗi

1 Hệ thống hiển thị thông báo lỗi về mật khẩu nhập vào

2 Quay lại bước 2 ở basic flow và nhập lại thông tin

3.1.2.5 Quản lý thông tin cá nhân

Bảng 3.11 Usecase quản lý thông tin cá nhân

Name Quản lý thông tin cá nhân

Brief description Cho phép người dùng vào trong thông tin cá nhân điều chỉnh các thông tin cá nhân, đổi ảnh đại diện

Pre-conditions Người dùng đã đăng nhập vào hệ thống

Usecase bắt đầu khi người dùng muốn xem thông tin cá nhân, chỉnh sửa thông tin cá nhân, đổi ảnh đại diện

1 Hệ thống hiển thị trang thông tin cá nhân

2 Chỉnh sửa thông tin cá nhân:

1.1 Người dùng chọn “Cập nhật thông tin cá nhân”

1.2 Hệ thống hiển thị form cập nhật thông tin cá nhân 1.3 Người dùng nhập thông tin cần chỉnh sửa và nhấn lưu 1.4 Hệ thống cập nhật các thông tin cá nhân

2.1 Người dùng chọn “Đổi ảnh đại diện”

2.2 Hệ thống hiển thị form để thay đổi ảnh đại diện 2.3 Người dùng tải ảnh lên và chọn lưu

2.4 Hệ thống cập nhật ảnh đại diện của người dùng

Brief description Người dùng muốn đọc sách

Pre-conditions Người dùng đã đăng nhập vào hệ thống

Usecase bắt đầu khi người dùng muốn đọc sách:

1 Người dùng chọn một tựa sách có ký hiệu sách đọc

2 Hệ thống hiển thị trang thông tin sách

3 Người dùng chọn “Đọc sách”

4 Hệ thống hiển thị giao diện đọc sách

Brief description Người dùng muốn nghe sách

Pre-conditions Người dùng đã đăng nhập vào hệ thống

Usecase bắt đầu khi người dùng muốn nghe sách:

1 Người dùng chọn sách có ký hiệu sách nói

2 Hệ thống hiển thị trang thông tin sách

3 Người dùng chọn “Nghe sách”

4 Hệ thống hiển thị giao diện nghe sách

Bảng 3.14 Usecase đánh dấu sách

Brief description Người dùng muốn đánh dấu sách để có thể đọc sau không cần tìm kiếm lại

Pre-conditions Người dùng phải đăng nhập vào hệ thống

Usecase bắt đầu khi người dùng muốn đánh dấu lại các tựa sách để đọc sau:

1 Người dùng tìm sách hoặc bắt gặp một tựa sách muốn đọc hoặc nghe và chọn

2 Hệ thống hiển thị trang thông tin sách

3 Người dùng chọn đánh dấu sách

4 Hệ thống thêm sách vào thư viện của người dùng

Brief description Người dùng muốn ghi chú khi đang đọc sách

Pre-conditions Người dùng phải đăng nhập vào hệ thống

Usecase bắt đầu khi người dùng đang đọc sách và muốn ghi chú:

1 Người dùng vào giao diện đọc sách và tiến hành tô cụm từ muốn ghi chú hoặc vào bấm vào nút tạo ghi chú

2 Hệ thống hiển thị giao diện form ghi chú

3 Người dùng bấm nút lưu

4 Hệ thống lưu ghi chú của người dùng

Bảng 3.16 Usecase tra từ điển

Brief description Người dùng muốn tra từ tiếng anh khi đang đọc sách tiếng anh

Pre-conditions Người dùng phải đăng nhập vào hệ thống

Usecase bắt đầu khi người dùng đang được sách tiếng anh và muốn tra từ tiếng trực tiếp trên sách:

1 Người dùng bôi đen một từ hoặc một câu cần dịch

2 Hệ thống sẽ tự động hiện nghĩa tiếng việt

Bảng 3.17 Usecase thay đổi cỡ chữ

Name Thay đổi cỡ chữ

Brief description Người dùng muốn thay đổi cỡ chữ

Pre-conditions Người dùng phải đăng nhập vào hệ thống

Usecase bắt đầu khi người dùng muốn thay đổi cỡ chữ và vào trang đọc sách:

1 Hệ thống hiển thị trang đọc sách

2 Người dùng nhấn nút cài đặt

3 Hệ thống hiển thị giao diện trang cài đặt giao diện đọc sách

4 Người dùng nhấn nút tăng hoặc giảm cỡ chữ

5 Hệ thống thay đổi cỡ chữ đang hiển thị theo yêu cầu của người dùng và lưu lại vào local storage

Bảng 3.18 Usecase đánh giá sách

Brief description Người dùng muốn đưa ra đánh giá của cá nhân về sách

Pre-conditions Người dùng phải đăng nhập vào hệ thống

Post-conditions Nếu thành công thêm một bình luận mới trên giao diện

Nếu thất bại hiện thị thông báo không thể thêm bình luận

Usecase bắt đầu khi người dùng muốn đưa ra đánh giá cá nhân về sách:

1 Hệ thống hiển thị trang bình luận

2 Người dùng chọn thêm đánh giá

3 Hệ thống hiển thị form thêm đánh giá

4 Người dùng tiến hành điền đánh giá và nhấn nút lưu

5 Hệ thống lưu và hiển thị đánh giá của người dùng

Nếu sách chưa được người dùng đọc hoặc nghe ít nhất một nửa nội dung:

1 Hệ thống hiển thị thông báo không thể thêm bình luận do chưa xem ít nhất một nửa nội dung sách

2 Quay lại bước 2 ở basic flow Nếu sách đã được người đọc thêm bình luận

1 Hệ thống hiển thị thông báo một tài khoản chỉ có thể thêm một bình luận cho một quyển sách

2 Quay lại bước 2 ở basic flow

Bảng 3.19 Usecase thực hiện nhiệm vụ

Name Thực hiện nhiệm vụ

Brief description Người dùng muốn thực hiện nhiệm vụ

Pre-conditions Người dùng phải đăng nhập vào hệ thống

Post-conditions Nếu thực hiện thành công nhiệm vụ: cập nhật tiền thưởng vào ví của người dùng và thay đổi trạng thái của nhiệm vụ

Usecase bắt đầu khi người dùng muốn thực hiện một trong các nhiệm vụ sau:

1 Nhiệm vụ xem sách 1.1 Người dùng nhấn nút đọc hoặc nghe sách 1.2 Hệ thống truy cập đến trang nội dung sách 1.3 Người dùng thoát khỏi trang nội dung sách 1.4 Hệ thống kiểm tra người dùng đã truy cập đủ số lần theo yêu cầu của nhiệm vụ, đánh dấu nhiệm vụ hoàn thành và cập nhật tiền thưởng vào ví của người dùng

2.1 Người dùng nhấn nút bình luận 2.2 Hệ thống truy cập đến trang bình luận 2.3 Người dùng tiến hành thêm bình luận 2.4 Hệ thống kiểm tra người dùng đã thêm số bình luận theo yêu cầu của nhiệm vụ, đánh dấu nhiệm vụ hoàn thành và cập nhật tiền thưởng vào ví của người dùng

3 Nhiệm vụ nạp tiền 3.1 Người dùng nhấn nút nạp tiền 3.2 Hệ thống truy cập đến trang để nạp tiền 3.3 Người dùng đăng nhập vào trang nạp tiền và hoàn thành giao dịch

3.4 Hệ thống kiểm tra người dùng đã nạp tiền đủ theo số lần theo yêu cầu của nhiệm vụ, đánh dấu nhiệm vụ hoàn thành và cập nhật tiền thưởng vào ví của người dùng

3.1.2.14 Xem các câu hỏi thường gặp

Bảng 3.20 Usecase xem các câu hỏi thường gặp

Name Xem các câu hỏi thường gặp

Brief description Người dùng muốn xem các câu hỏi thường gặp

Pre-conditions Người dùng phải đăng nhập vào hệ thống

Usecase bắt đầu khi người dùng truy cập vào trang các câu hỏi thường gặp

1 Hệ thống hiển thị trang các câu hỏi thường gặp

2 Người dùng chọn và nhấn vào câu hỏi quan tâm

3 Hệ thống hiển thị đáp án cho câu hỏi

3.1.2.15 Phản hồi, đặt câu hỏi cho quản trị viên

Bảng 3.21 Usecase phản hồi và đặt câu hỏi cho quản trị viên

Name Phản hồi và đặt câu hỏi cho quản trị viên

Brief description Người dùng muốn đưa ra phản hồi và đặt câu hỏi cho quản trị viên

Pre-conditions Người dùng phải đăng nhập vào hệ thống

Post-conditions Nếu thành công câu hỏi sẽ được lưu trên firebase

Usecase bắt đầu khi người truy cập vào trang thêm phản hồi và câu hỏi:

1 Hệ thống hiển thị trang thêm phản hồi, câu hỏi

2 Người dùng tiến hành chọn loại vấn đề gặp phải, điền miêu tả vấn đề và nhấn gửi

3 Hệ thống lưu câu hỏi lên firebase

Bảng 3.22 Usecase đánh giá sách

Brief description Người dùng muốn nạp tiền vào tài khoản

Pre-conditions Người dùng phải đăng nhập vào hệ thống

Post-conditions Nếu thành công tiền sẽ được nạp vào trong ví của người dùng

Nếu thất bại hiện thị thông báo giao dịch xảy ra lỗi

Usecase bắt đầu khi người dùng truy cập vào trang nạp tiền

1 Hệ thống hiển thị trang dùng để nạp tiền

2 Người dùng chọn số tiền muốn nạp, chọn 1 trong 2 phương thức là

3 Hệ thống chuyển sang webview của Paypal hoặc VNPay

4 Người dùng đăng nhập vào tài khoản Paypal hoặc VNPay và tiến hành thanh toán

5 Hệ thống lưu lại giao dịch và cập nhật tiền vào ví của người dùng trong ứng dụng

Nếu trong quá trình đăng nhập vào webview của phương thức thanh toán bị lỗi

1 Hệ thống thông báo giao dịch thất bại

2 Quay lại bước 2 ở basic flow và yêu cầu chọn lại phương thức thanh toán

Brief description Người dùng muốn mua một quyển sách

Pre-conditions Người dùng phải đăng nhập vào hệ thống

Post-conditions Nếu thành công người dùng có thể truy cập vào nội dung của sách đã mua, và tiền trong ví của người dùng sẽ bị trừ một khoản tương ứng Nếu thất bại hiện thị thông báo cần nạp thêm tiền để mua sách

Usecase bắt đầu khi người dùng chọn một quyển sách có phí

1 Hệ thống hiển thị trang thông tin sách

2 Người dùng chọn đọc hoặc nghe sách

3 Hệ thống hiển thị thông báo yêu cầu người dùng có xác nhận mua sách

4 Người dùng nhấn xác nhận

5 Hệ thống chuyển người dùng sang giao diện nội dung sách và trừ tiền tương ứng trong tài khoản

Alternative flow Nếu số tiền trong ví của người dùng ít hơn số tiền của quyển sách:

(thất bại) 1 Hệ thống hiển thị thông báo số tiền không đủ

2 Quay lại bước 2 ở basic flow

3.1.2.18 Xem thống kê hoạt động

Bảng 3.24 Usecase xem thống kê hoạt động

Name Xem thống kê hoạt động

Brief description Người dùng muốn xem thống kê hoạt động nạp, mua trong ứng dụng

Pre-conditions Người dùng phải đăng nhập vào hệ thống

Usecase bắt đầu khi người dùng truy cập vào trang thống kê hoạt động:

1 Hệ thống hiển thị trang thống kê hoạt động

2 Người dùng chọn loại thống kê gồm 2 loại tất cả hoặc theo tháng

3 Hệ thống hiển thị biểu đồ thống kê theo yêu cầu

3.1.3 Phân hệ quản trị viên

Hình 3.4 Lược đồ usecase phân hệ quản trị viên

3.1.3.1 Quản lý danh mục sách

Bảng 3.25 Usecase quản lý danh mục sách

Name Quản lý danh mục sách

Brief description Quản trị viên quản lý danh mục sách

Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống

Usecase bắt đầu khi Quản trị viên đăng nhập vào dashboard thống kê và ấn chọn ‘Categories’ trên giao diện:

1 Hệ thống hiển thị giao diện danh sách các danh mục sách, Quản trị viên có thể chọn một trong các thao tác sau

2 Thêm danh mục sách 2.1 Quản trị viên bấm nút ‘New’ trên giao diện 2.2 Hệ thống hiển thị giao diện thêm danh mục sách

2.3 Quản trị viên điền các thông tin về danh mục sách gồm: tên danh mục

2.4 Quản trị viên nhấn nút ‘Submit’ để lưu thông tin 2.5 Hệ thống quay lại giao diện quản lý danh mục sách với danh mục vừa được thêm vào

3 Chỉnh sửa danh mục sách 3.1 Quản trị viên bấm biểu tượng Edit kế danh mục sách muốn chỉnh sửa thông tin

3.2 Hiển thị giao diện chỉnh sửa thông tin danh mục sách 3.3 Quản trị viên chỉnh sửa các thông tin gồm: tên danh mục sách,…

3.4 Hệ thống quay lại giao diện quản lý danh mục sách với danh mục sách vừa được chỉnh thông tin

4 Xóa 4.1 Quản trị viên bấm biểu tượng Delete kế danh mục sách muốn xóa

4.2 Hệ thống cập nhật lại giao diện quản lý danh mục sách

Bảng 3.26 Usecase quản lý sách

Brief description Quản trị viên quản lý sách

Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống

Usecase bắt đầu khi Quản trị viên đăng nhập vào dashboard thống kê và ấn chọn ‘Books’ trên giao diện:

1 Hệ thống hiển thị giao diện danh sách tất cả sách, Quản trị viên có thể chọn một trong các thao tác sau

2 Thêm sách 2.1 Quản trị viên bấm nút ‘New’ trên giao diện 2.2 Hệ thống hiển thị giao diện thêm sách 2.3 Quản trị viên điền các thông tin về sách gồm: tên sách, link hình ảnh, danh sách tác giả, danh sách danh mục, giá, mô tả sách, ngày xuất bản, ngôn ngữ

2.4 Quản trị viên nhấn nút ‘Next để lưu thông tin sách 2.5 Hệ thống sẽ chuyển tiếp đến bước nhập các chương của sách 2.6 Quản trị viên tiến hành nhập từng chương

2.7 Quản trị viên nhấn nút “Add”

2.8 Hệ thống quay lại giao diện quản lý sách với sách vừa được thêm vào

3 Xóa sách 3.1 Quản trị viên bấm biểu tượng Delete kế sách muốn xóa 3.2 Hệ thống cập nhật lại giao diện quản lý sách

Bảng 3.27 Usecase quản lý người dùng

Name Quản lý người dùng

Brief description Quản trị viên quản lý người dung

Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống

Usecase bắt đầu khi Quản trị viên đăng nhập vào dashboard thống kê và ấn chọn ‘Users’ trên giao diện:

1 Hệ thống hiển thị giao diện danh sách người dùng, Quản trị viên có thể chọn một trong các thao tác sau

2 Chặn người dùng 2.1 Quản trị viên bấm biểu tượng Delete kế người dùng muốn xóa

2.2 Hệ thống cập nhật lại giao diện quản lý người dùng

Bảng 3.28 Usecase quản lý nhiệm vụ

Name Quản lý nhiệm vụ

Brief description Quản trị viên quản lý nhiệm vụ

Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống

Usecase bắt đầu khi Quản trị viên đăng nhập vào dashboard thống kê và ấn chọn ‘Missions’ trên giao diện:

1 Hệ thống hiển thị giao diện danh sách các nhiệm vụ, Quản trị viên có thể chọn một trong các thao tác sau

2 Thêm nhiệm vụ 2.1 Quản trị viên bấm nút ‘New’ trên giao diện 2.2 Hệ thống hiển thị giao diện thêm nhiệm vụ 2.3 Quản trị viên điền các thông tin về nhiệm vụ gồm: tên nhiệm vụ, mô tả nhiệm vụ, phần thưởng của nhiệm vụ, loại nhiệm vụ, số lần thực hiện để hoàn thành 2.4 Quản trị viên nhấn nút ‘Submit’ để lưu thông tin 2.5 Hệ thống quay lại giao diện quản lý danh mục sách với danh mục vừa được thêm vào

2.6 Hệ thống tiến hành gửi Notification tới người dùng thông báo về việc có nhiệm vụ mới

3 Chỉnh sửa nhiệm vụ 3.1 Quản trị viên bấm biểu tượng Edit kế nhiệm vụ muốn chỉnh sửa thông tin

3.2 Hiển thị giao diện chỉnh sửa thông tin nhiệm vụ 3.3 Quản trị viên chỉnh sửa các thông tin gồm: tên nhiệm vụ,…

3.4 Hệ thống quay lại giao diện quản lý nhiệm vụ với nhiệm vụvừa được chỉnh thông tin

4 Xóa 4.1 Quản trị viên bấm biểu tượng Delete kế nhiệm vụ muốn xóa 4.2 Hệ thống hiển thị form xác nhận

4.3 Quản trị viên nhấn “Confirm”

4.4 Hệ thống cập nhật lại giao diện quản lý nhiệm vụ

Brief description Quản trị viên quản lý doanh thu

Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống

Usecase bắt đầu khi Quản trị viên đăng nhập vào dashboard thống kê:

1 Hệ thống hiển thị giao diện thống kê

2 Quản trị viên có thể xem các số liệu được thống kê

LƯỢC ĐỒ TUẦN TỰ

Hình 3.5 Lược đồ tuần tự đăng ký

Hình 3.6 Lược đồ tuần tự tìm kiếm

Hình 3.7 Lược đồ tuần tự xem thông tin sách

Hình 3.8 Lược đồ tuần tự xem bình luận

3.2.1.5 Xem danh sách nhiệm vụ

Hình 3.9 Lược đồ tuần tự xem danh sách nhiệm vụ

3.2.1.6 Chuyển đổi giao diện sáng, tối

Hình 3.10 Lược đồ tuần tự chuyển đổi giao diện sáng, tối

Hình 3.11 Lược đồ tuần tự đăng nhập

Hình 3.12 Lược đồ tuần tự quên mật khẩu

Hình 3.13 Lược đồ tuần tự đăng xuất

3.2.2.4 Đặt lại mật khẩu qua mail

Hình 3.14 Lược đồ tuần tự đặt lại mật khẩu

3.2.2.5 Quản lý thông tin cá nhân

Hình 3.15 Lược đồ tuần tự chỉnh sửa thông tin cá nhân

Hình 3.16 Lược đồ tuần tự đổi ảnh đại diện

Hình 3.17 Lược đồ tuần tự đọc sách

Hình 3.18 Lược đồ tuần tự nghe sách

Hình 3.19 Lược đồ tuần tự đánh dấu sách

Hình 3.20 Lược đồ tuần tự ghi chú

Hình 3.21 Lược đồ tuần tự tra từ điển

Hình 3.22 Lược đồ tuần tự thay đổi cỡ chữ

Hình 3.23 Lược đồ tuần tự đánh giá sách

Hình 3.24 Lược đồ tuần tự thực hiện nhiệm vụ

3.2.2.14 Xem các câu hỏi thường gặp

Hình 3.25 Lược đồ xem câu hỏi thường gặp

3.2.2.15 Phản hồi, đặt câu hỏi cho quản trị viên

Hình 3.26 Lược đồ tuần tự phản hồi, đặt câu hỏi

Hình 3.27 Lược đồ tuần tự nạp tiền

Hình 3.28 Lược đồ tuần tự mua sách

3.2.2.18 Xem thống kê hoạt động

Hình 3.29 Lược đồ xem thống kê hoạt động

3.2.3 Phân hệ quản trị viên

3.2.3.1 Quản lý danh mục sách

Hình 3.30 Lược đồ tuần tự thêm danh mục sách

Hình 3.31 Lược đồ tuần tự chỉnh sửa danh mục sách

Hình 3.32 Lược đồ tuần tự xóa danh mục sách

Hình 3.33 Lược đồ tuần tự thêm sách

Hình 3.34 Lược đồ tuần tự xóa sách

Hình 3.35 Lược đồ tuần tự xóa người dùng

Hình 3.36 Lược đồ tuần tự thêm nhiệm vụ

Hình 3.37 Lược đồ tuần tự chỉnh sửa nhiệm vụ

Hình 3.38 Lược đồ tuần tự xóa nhiệm vụ

Hình 3.39 Lược đồ tuần thống kê

LƯỢC ĐỒ CƠ SỞ DỮ LIỆU

Hình 3.40 Lược đồ cơ sở dữ liệu

THIẾT KẾ GIAO DIỆN

USER FLOWS TRONG UX

Hình 4.1 User Flow của ứng dụng

MÀN HÌNH SPLASH

Hình 4.3 Màn hình splash (dark theme)

KHI CHƯA ĐĂNG NHẬP

Hình 4.4 Màn hình đăng nhập Hình 4.5 Màn hình đăng nhập (dark theme)

Bảng 4.1 Mô tả màn hình đăng nhập

STT Tên Loại Chú thích

1 Email Input Text Nhập thông tin email đăng nhập

2 Mật khẩu Password Nhập mật khẩu

3 Quên mật khẩu Link text Khi nhấn vào sẽ mở trang để đặt lại mật khẩu qua email

4 Đăng nhập Button Khi nhấn vào sẽ thực hiện đăng nhập bằng email và mật khẩu

5 Đăng nhập bằng Google Button Khi nhấn vào sẽ thực hiện đăng nhập bằng tài khoản google

6 Đăng nhập bằng Facebook Button Khi nhấn vào sẽ thực hiện đăng nhập bằng tài khoản facebook

7 Đăng ký Link text Khi nhấn vào sẽ chuyển sang trang đăng ký

Hình 4.6 Màn hình đăng ký Hình 4.7 Màn hình đăng ký (dark theme)

Bảng 4.2 Mô tả màn hình đăng ký

STT Tên Loại Chú thích

1 Email Input Text Nhập thông tin email đăng nhập

2 Mật khẩu Password Nhập mật khẩu

3 Xác nhận mật khẩu Password Nhập lại mật khẩu

4 Đăng ký Button Khi nhấn vào sẽ thực hiện đăng ký

5 Đăng nhập Link text Khi nhấn vào sẽ mở trang đăng nhập

Hình 4.8 Màn hình home chưa đăng nhập Hình 4.9 Màn hình home chưa đăng nhập

Bảng 4.3 Mô tả màn hình home (chưa đăng nhập)

STT Tên Loại Chú thích

1 Lời chào Text Chào người dùng

2 Giới thiệu Widget Hiển thị các câu nói nổi tiếng

3 Sách mới Widget Hiển thị các sách mới

4 Tất cả sách Widget Hiển thị tất cả sách trong ứng dụng

5 Thanh điều hướng Navbar Di chuyển giữa các giao diện của ứng dụng

Hình 4.10 Màn hình tìm kiếm Hình 4.11 Màn hình tìm kiếm (dark theme)

Bảng 4.4 Mô tả màn hình tìm kiếm

STT Tên Loại Chú thích

1 Tên giao diện Text Tên giao diện tìm kiếm

2 Tìm kiếm Text field Nhập input tìm kiếm

3 Loại tìm kiếm Button Lựa chọn tìm kiếm theo tên sách hoặc tên tác giả

4 Danh mục Button Các danh mục sách trong ứng dụng

4.3.5 Màn hình sách theo danh mục

Hình 4.12 Màn hình sách theo danh mục Hình 4.13 Màn hình sách theo danh mục (dark theme)

Bảng 4.5 Mô tả màn hình sách theo danh mục

STT Tên Loại Chú thích

1 Tên giao diện Text Tên danh mục

2 Kết quả tìm kiếm Widget Hiện thị sách theo danh mục đã chọn

4.3.6 Màn hình sách theo kết quả tìm kiếm

Hình 4.14 Màn hình sách theo kết quả tìm kiếm

Hình 4.15 Màn hình sách theo kết quả tìm kiếm (dark themme)

Bảng 4.6 Mô tả màn hình sách theo kết quả tìm kiếm

STT Tên Loại Chú thích

1 Tên giao diện Text Tên giao diện tìm kiếm

2 Tìm kiếm Text field Nhập input tìm kiếm

3 Loại tìm kiếm Button Lựa chọn tìm kiếm theo tên sách hoặc tên tác giả

4 Kết quả tìm kiếm Widget Kết quả tìm kiểm, khi lựa chọn sẽ mở trang chi tiết bài đăng

4.3.7 Màn hình chi tiết sách

Hình 4.16 Màn hình chi tiết sách Hình 4.17 Màn hình chi tiết sách (dark theme)

Bảng 4.7 Mô tả màn hình chi tiết sách

STT Tên Loại Chú thích

1 Quay lại Button Quay lại trang chủ

2 Ảnh bìa sách Image Hiển thị ảnh bìa của quyển sách

3 Xem trước Button Hiển thị vài trang nội dung sách

4 Lưu sách Button Lưu sách vào thư viện

5 Chia sẻ Button Chia sẻ thông tin sách

6 Tên sách Text Hiển thị tên sách

7 Tên tác giả Text Hiển thị tên tác giả

8 Chuyển trang Button Chuyển giữa trang chi tiết sách và bình luận

9 Chi tiết sách Widget Chứa thông tin chi tiết của sách

10 Đọc sách Button Chuyển sang đọc sách

Hình 4.18 Màn hình bình luận Hình 4.19 Màn hình bình luận (dark theme)

Hình 4.20 Màn hình bình luận (2) Hình 4.21 Màn hình bình luận (dark theme)

Bảng 4.8 Mô tả màn hình bình luận

STT Tên Loại Chú thích

1 Chi tiết bình luận theo sao Widget Số lượng bình luận theo sao

2 Tổng bình luận Widget Trung bình số điểm và tổng các bình luận

3 Bình luận Button Chuyển sang trang bình luận

4 Các bình luận Widget Danh sách các bình luận

5 Thêm bình luận Button Thêm bình luận

Hình 4.22 Màn hình thư viện chưa đăng nhập Hình 4.23 Màn hình thư viện chưa đăng nhập

Bảng 4.9 Mô tả màn hình thư viện

STT Tên Loại Chú thích

1 Tên giao diện Text Tên giao diện thư viện

2 Đăng nhập Button Chuyển sang trang đăng nhập

Hình 4.24 Màn hình nhiệm vụ Hình 4.25 Màn hình nhiệm vụ (dark theme)

Bảng 4.10 Mô tả màn hình nhiệm vụ

STT Tên Loại Chú thích

1 Tên giao diện Text Tên giao diện thư viện

2 Nhiệm vụ Widget Hiển thị tên, nội dung, loại, số tiền của một nhiệm vụ

Hình 4.26 Màn hình hồ sơ chưa đăng nhập

Hình 4.27 Màn hình hồ sơ chưa đăng nhập

Bảng 4.11 Mô tả màn hình hồ sơ (chưa đăng nhập)

STT Tên Loại Chú thích

1 Tên giao diện Text Tên giao diện hồ sơ

2 Đăng nhập Button Chuyển sang trang đăng nhập

3 Cài đặt Widget Chuyển sang trang cài đặt

Hình 4.28 Màn hình cài đặt Hình 4.29 Màn hình cài đặt (dark theme)

Bảng 4.12 Mô tả màn hình cài đặt

STT Tên Loại Chú thích

1 Quay lại Button Quay lại trang hồ sơ

2 Tên giao diện Text Tên giao diện thư viện

Chuyển đổi giữa màn hình sáng, tối

4 Đăng xuất Button Đăng xuất khỏi ứng dụng

KHI ĐÃ ĐĂNG NHẬP

Hình 4.30 Màn hình home Hình 4.31 Màn hình home (dark theme)

Hình 4.32 Màn hình home (2) Hình 4.33 Màn hình home (dark theme) (2)

Bảng 4.13 Mô tả màn hình home

STT Tên Loại Chú thích

1 Tên người dùng Text Hiển thị tên người dùng

2 Giới thiệu Widget Hiển thị các câu nói nổi tiếng

3 Sách mới Widget Hiển thị các sách mới

4 Tất cả sách Widget Hiển thị tất cả sách trong ứng dụng

5 Thanh điều hướng Navbar Di chuyển giữa các giao diện của ứng dụng

Hình 4.34 Màn hình thư viện Hình 4.35 Màn hình thư viện (dark theme)

Hình 4.36 Màn hình thư viện (2) Hình 4.37 Màn hình thư viện (dark theme) (2)

Hình 4.38 Màn hình thư viện (3) Hình 4.39 Màn hình thư viện (dark theme) (3)

Bảng 4.14 Mô tả màn hình thư viện

STT Tên Loại Chú thích

1 Tên giao diện Text Tên giao diện thư viện

2 Chuyển đổi Tab bar Lựa chọn giữa thư viện history reading, listening và thư viện favourites

3 Danh sách sách trong tab chọn

Widget Hiển thị các sách trong history reading, listening và tiến trình đọc

Hình 4.40 Màn hình đọc sách Hình 4.41 Màn hình đọc sách (dark theme)

Hình 4.42 Màn hình đọc sách (2) Hình 4.43 Màn hình đọc sách (dark theme) (2)

Hình 4.44 Màn hình đọc sách (3) Hình 4.45 Màn hình đọc sách (dark theme) (3)

Hình 4.46 Màn hình đọc sách (4) Hình 4.47 Màn hình đọc sách (dark theme) (4)

Hình 4.48 Màn hình đọc sách (5) Hình 4.49 Màn hình đọc sách (dark theme) (5)

Bảng 4.15 Mô tả màn hình sách

STT Tên Loại Chú thích

1 Mục lục Button Hiển thị danh sách mục lục

2 Cài đặt Button Hiển thị trang để cài đặt giao diện đọc sách

3 Nội dung sách Text Hiển thị nội dung sách theo chương

4 Danh sách mục lục Widget Danh sách mục lục, bấm vào để chuyển chương

5 Thêm ghi chú Button Hiển thị dialog để thêm ghi chú

6 Thay đổi màu nền Button Nút để thay đổi màu nền của giao diện đọc sách

7 Phóng to chữ Button Tăng cỡ chữ

8 Thu nhỏ chữ Button Thu nhỏ cỡ chữ

9 Thao tác chữ được tô Widget Thực hiện copy, lưu, hoặc dịch đoạn chữ được tô

10 Thêm ghi chú Dialog Thêm ghi chú cho quyển sách

Hình 4.50 Màn hình nghe sách Hình 4.51 Màn hình nghe sách (dark theme)

Hình 4.52 Màn hình nghe sách (2) Hình 4.53 Màn hình nghe sách (dark theme)

Hình 4.54 Màn hình nghe sách (3) Hình 4.55 Màn hình nghe sách (dark theme)

Bảng 4.16 Mô tả màn hình nghe sách

STT Tên Loại Chú thích

1 Quay lại Button Quay lại trang chi tiết sách

2 Mục lục Button Hiển thị danh sách mục lục của sách nói

3 Cài đặt Button Hiển thị trang để cài đặt giao diện để nghe sách

4 Thông tin sách Widget Hình ảnh, tên sách, tên tác giả

5 Thanh tiến trình Slider Tiến trình của file mp3

6 Tên chương Text Hiển thị tên chương

7 Điều chỉnh âm thanh Widget Bật, tắt, điều chỉnh âm thanh

8 Danh sách mục lục Widget Danh sách mục lục, bấm vào để chuyển chương

9 Tắt Button Thoát khỏi dialog

10 Thay đổi màu nền Button Nút để thay đổi màu nền của giao diện nghe sách

4.4.5 Màn hình thêm bình luận

Hình 4.56 Màn hình thêm bình luận Hình 4.57 Màn hình thêm bình luận (dark theme)

Bảng 4.17 Mô tả màn hình thêm bình luận

STT Tên Loại Chú thích

1 Tên dialog Text Tên của dialog để thêm bình luận

2 Chọn số sao Widget Nhấn để chọn số sao cho bình luận

3 Bình luận Input Text Thêm nội dung bình luận

4 Thêm Button Nhấn thêm bình luận

Hình 4.58 Màn hình hồ sơ Hình 4.59 Màn hình hồ sơ (dark theme)

Hình 4.60 Màn hình hồ sơ (2) Hình 4.61 Màn hình hồ sơ (dark theme) (2)

Bảng 4.18 Mô tả màn hình hồ sơ

STT Tên Loại Chú thích

1 Thông tin người dùng Widget Hiển thị thông tin cơ bản của người dùng

2 Chỉnh sửa thông tin Button Chuyển sang trang chỉnh sửa thông tin cá nhân

3 Cài đặt Button Chuyển sang trang để cài đặt nền giao diện

4 Thay đổi mật khẩu Button Chuyển sang trang đổi mật khẩu

5 Ghi chú Button Chuyển sang trang ghi chú

6 Thêm tiền Button Chuyển sang trang để nạp tiền

7 Thống kê Button Chuyển sang trang thống kê

8 Câu hỏi thông thường Button Chuyển sang trang câu hỏi thông thường

9 Tương tác Button Chuyển sang trang tương tác

4.4.7 Màn hình chỉnh sửa thông tin cá nhân

Hình 4.62 Màn hình chỉnh sửa thông tin cá nhân

Hình 4.63 Màn hình chỉnh sửa thông tin cá nhân (dark theme)

Bảng 4.19 Mô tả màn hình chỉnh sửa thông tin cá nhân

STT Tên Loại Chú thích

1 Quay lại Button Quay lại trang hồ sơ

2 Tên giao diện Text Tên giao diện tìm kiếm

3 Chỉnh sửa ảnh Button Hiển thị giao diện để chỉnh sửa ảnh

4 Tên người dùng Input Text Nhập thông tin tên người dùng

5 Cập nhật Button Cập nhật thông tin cá nhân

4.4.8 Màn hình đổi mật khẩu

Hình 4.64 Màn hình đổi mật khẩu Hình 4.65 Màn hình đổi mật khẩu (dark theme)

Bảng 4.20 Mô tả màn hình đổi mật khẩu

STT Tên Loại Chú thích

1 Mật khẩu cũ Input Text Nhập vào mật khẩu cũ

2 Quên mật khẩu Link Text Chuyển sang trang quên mật khẩu

3 Mật khẩu mới Input Text Nhập vào mật khẩu mới

4 Xác thực mật khẩu mới Input Text Nhập lại mật khẩu mới

5 Cập nhật Button Cập nhật mật khẩu mới

Hình 4.66 Màn hình ghi chú Hình 4.67 Màn hình ghi chú (dark theme)

Bảng 4.21 Mô tả màn hình ghi chú

STT Tên Loại Chú thích

1 Tên ghi chú Text Hiển thị tên ghi chú

2 Xóa Button Xóa ghi chú

3 Chỉnh sửa Button Chỉnh sửa ghi chú

4 Nội dung ghi chú Text Hiển thị nội dung ghi chú

5 Tên sách Text Hiển thị tên sách chứa ghi chú

Hình 4.68 Màn hình nạp tiền Hình 4.69 Màn hình nạp tiền (dark theme)

Bảng 4.22 Mô tả màn hình nạp tiền

STT Tên Loại Chú thích

1 Mức tiền Button Chọn mức tiền muốn nạp

2 Paypal Button Chọn phương thức thanh toán

3 VNPay Button Chọn phương thức thanh toán

Hình 4.70 Màn hình thống kê

Hình 4.71 Màn hình thống kê (dark theme)

Hình 4.72 Màn hình thống kê (2) Hình 4.73 Màn hình thống kê (dark theme) (2)

Bảng 4.23 Mô tả màn hình thống kê

STT Tên Loại Chú thích

1 Chọn loại thống kê Button Chọn loại thống kê theo tất cả hoặc theo tháng

2 Thời gian Button Hiển thị dialog để chọn thời gian

3 Đồ thị Chart Hiển thị đồ thị

4 Các thành phần Widget Hiển thị các thành phần trong đồ thị

5 Lịch Dialog Hiển thị lịch để chọn thời gian

4.4.12 Màn hình câu hỏi thông thường

Hình 4.74 Màn hình câu hỏi thông thường Hình 4.75 Màn hình câu hỏi thông thường

Bảng 4.24 Mô tả màn hình câu hỏi thông thường

STT Tên Loại Chú thích

1 Danh sách câu hỏi Text Hiển thị danh sách câu hỏi và câu trả lời

4.4.13 Màn hình tương tác với quản trị viên

Hình 4.76 Màn hình tương tác với quản trị viên

Hình 4.77 Màn hình tương tác với quản trị viên (dark theme

Bảng 4.25 Mô tả màn hình tương tác với quản trị viên

STT Tên Loại Chú thích

1 Loại vấn đề Button Chọn loại vấn đề

2 Miêu tả vấn đề Input Text Nhập miêu tả vấn đề

3 Gửi vấn đề Button Gửi vấn đề về cho quản trị viên

MÀN HÌNH QUẢN TRỊ VIÊN

Hình 4.78 Màn hình đăng nhập của quản trị viên Bảng 4.26 Mô tả màn hình đăng nhập của quản trị viên

STT Tên Loại Chú thích

1 Email Text field Nhập thông tin email đăng nhập

2 Mật khẩu Password Nhập thông tin mật khẩu đăng nhập

3 Đăng nhập Button Khi nhấn vào sẽ thực hiện đăng nhập

Hình 4.80 Màn hình dashboard (2) Bảng 4.27 Mô tả màn hình dashboard

STT Tên Loại Chú thích

1 Thống kê người dùng Widget Hiển thị số người dùng

2 Thống kê lượt xem Widget Hiển thị số lượt xem

3 Thống kê số sách Widget Hiển thị số sách

4 Thống kê số nhiệm vụ Widget Hiển thị số nhiệm vụ

5 Thống kê doanh thu Widget Hiển thị doanh thu

6 Biểu đồ Chart Hiển thị thống kê doanh thu theo tháng

7 Profile quản trị viên Widget Hiển thị profile quản trị viên

4.5.2 Màn hình quản lý danh mục sách

Hình 4.81 Màn hình quản lý danh mục sách

Hình 4.82 Màn hình quản lý danh mục sách (2) Bảng 4.28 Mô tả màn hình quản lý danh mục sách

STT Tên Loại Chú thích

1 Menu Widget Chuyển hướng trang web

2 Profile quản trị viên Widget Hiển thị profile quản trị viên

3 Id danh mục sách Widget Hiển thị id danh mục sách

4 Tên danh mục sách Widget Hiển thị tên danh mục sách

5 Thao tác với danh mục sách IconButton Thực hiện các hành động với danh mục sách

6 Phân trang Widget Chuyển trang

7 Tên danh mục sách Textfield Nhập tên danh mục sách

8 Chọn file Button Chọn hình cho danh mục sách

9 Hủy Button Hủy chỉnh sửa danh mục sách

10 Chỉnh sửa Button Thực hiển chỉnh sửa danh mục sách

4.5.3 Màn hình quản lý sách

Hình 4.83 Màn hình quản lý sách

Hình 4.84 Màn hình quản lý sách (2)

Hình 4.85 Màn hình quản lý sách (3)

Hình 4.86 Màn hình quản lý sách (4)

Hình 4.87 Màn hình quản lý sách (5)

Hình 4.88 Màn hình quản lý sách (6) Bảng 4.29 Mô tả màn hình quản lý sách

STT Tên Loại Chú thích

1 Id sách Widget Hiển thị id sách

2 Tiêu đề Widget Hiển thị tiêu đề sách

3 Tên tác giả Widget Hiển thị tên tác giả của sách

4 Lượt xem Widget Hiển thị lượt xem của sách

5 Thao tác với sách IconButton Thực hiện các hành động với danh mục sách

6 Chi tiết sách Widget Hiển thị chi tiết sách

7 Đóng Button Đóng form hiển thị chi tiết sách

8 Danh sách chương Button Chuyển tiếp đến form xem danh sách chương

9 Danh sách Audio Button Chuyển tiếp đến form xem danh sách audio

10 Xem chương sách Button Hiển thị form để xem chi tiết chương

11 Tên chương Text Hiển thị tên chương

12 Thông tin sách Button Quay lại form chi tiết sach

13 Chi tiết chương Widget Hiển thị chi tiết chương

14 Tiêu đề Textfield Nhập tiêu đề sách

15 Tác giả Textfield Nhập tác giả sách

16 Mô tả Textfield Nhập mô tả sách

17 Giá Textfield Nhập giá sách

18 Ngôn ngữ Textfield Nhập ngôn ngữ sách

19 Quốc gia Textfield Nhập quốc gia sách

20 Thêm danh mục sách Button Hiển thị form thêm danh mục sách

21 Chương Widget Nhập số lượng chương

22 Audio Widget Nhập số lượng Audio

23 Chọn file Chọn file Chọn file ảnh của sách

24 Tên danh mục sách TextField Nhập tên danh mục sách

25 Chọn file Chọn file Chọn file ảnh của danh mục sách

26 Thêm Button Thêm danh mục sách

4.5.4 Màn hình quản lý người dùng

Hình 4.89 Màn hình quản lý người dùng

Hình 4.90 Màn hình quản lý người dùng (2) Bảng 4.30 Mô tả màn hình quản lý người dùng

STT Tên Loại Chú thích

1 Id người dùng Widget Hiển thị id người dùng

2 Họ và tên Widget Hiển thị họ và tên người dùng

3 Email Widget Hiển thị Email người dùng

4 Trạng thái Widget Hiển thị trạng thái người dùng

5 Thao tác với người dùng Widget Thực hiện chặn người dùng

6 Form xác nhận Dialog Thực hiện xác nhận chặn người dùng

4.5.5 Màn hình quản lý nhiệm vụ

Hình 4.91 Màn hình quản lý nhiệm vụ

Hình 4.92 Màn hình quản lý nhiệm vụ (2)

Hình 4.93 Màn hình quản lý nhiệm vụ (3)

Hình 4.94 Màn hình quản lý nhiệm vụ (4) Bảng 4.31 Mô tả màn hình quản lý nhiệm vụ

STT Tên Loại Chú thích

1 Nhiệm vụ mới Button Thêm nhiệm vụ mới

2 Id nhiệm vụ Widget Hiển thị id nhiệm vụ

3 Tên nhiệm vụ Widget Hiển thị tên nhiệm vụ

4 Loại Widget Hiển thị loại nhiệm vụ

5 Thao tác Widget Hiển thị các thao tác có thể thức hiện với nhiệm vụ

6 Tên TextField Nhập tên của nhiệm vụ mới

7 Tiền thưởng TextField Nhập phần thưởng của nhiệm vụ mới

8 Chi tiết TextField Nhập chi tết của nhiệm vụ mới

9 Chọn loại Dropdown Nhập loại của nhiệm vụ mới

10 Lần TextField Nhập số lần của nhiệm vụ mới

11 Thêm Button Thêm nhiệm vụ mới

12 Chi tiết nhiệm vụ Dialog Hiển thị chi tiết của nhiệm vụ

13 Tên TextField Nhập tên của nhiệm vụ

14 Tiền thưởng TextField Nhập phần thưởng của nhiệm vụ

15 Chi tiết TextField Nhập chi tết của nhiệm vụ

16 Chọn loại Dropdown Nhập loại của nhiệm vụ

17 Lần TextField Nhập số lần của nhiệm vụ

18 Chỉnh sửa Button Chỉnh sửa nhiệm vụ

CÀI ĐẶT VÀ KIỂM THỬ

CÀI ĐẶT

• Môi trường phát triển tích hợp: Visual Studio Code Các bước thiết lập:

• Clone source code từ github: https://github.com/mytran324/e_book_app_backend.git

• Mở source code bằng Visual Studio code

• Mở terminal dẫn đến thư mục source code

• Cài đặt tài nguyên cho hệ thống: npm install

• Khởi chạy hệ thống: npm run start Port sử dụng: localhost:8080/api

Hoặc sử dụng: Swagger UI (e-book-app-backend.onrender.com)

5.1.2 Về frontend Ứng dụng di động cho người dùng:

• Truy cập đường https://drive.google.com/file/d/1RXjwkkOG7wOEnKd1GoKSSR4njuohLOn9/ view?usp=sharing Tải file apk về điện thoại android để tiến hành chạy ứng dụng

Website cho quản trị viên:

• Yêu cầu phần mềm: o Dart v3.1.5 trở lên o Flutter v3.13.0 trở lên o Môi trường phát triển tích hợp: Android Studio

• Các bước thực hiện o Clone source code từ github: https://github.com/nhudang1511/e_book_app_quản trị viên.git o Mở source code bằng Android Studio o Cài đặt tài nguyên cho hệ thống: Trên thanh công cụ chọn Toos -> Flutter -> Flutter Pub Get o Tại Flutter Device Selection: Chọn Chrome hoặc Edge o Khởi chạy hệ thống: Nhấn run hoặc tổ hợp phím Ctrl + F5

KIỂM THỬ ỨNG DỤNG

5.2.1 Các chức năng thuộc phân hệ khách

Bảng 5.1 Kiểm thử các chức năng phân hệ khách

STT Testcase Kết quả mong đợi Kết quả

1 Tìm kiếm Tìm kiếm thành công được những cuốn sách theo tên sách, theo danh mục

2 Xem thông tin sách Xem thông tin sách thành công trước khi đọc sách

3 Chuyển đổi giao diện sáng tối

Chuyển đổi thành công giữa hai giao diện sáng tối tùy ý

5.2.2 Các chức năng thuộc phân hệ người dùng

Bảng 5.2 Kiểm thử các chức năng thuộc phân hệ người dùng

STT Testcase Kết quả mong đợi Kết quả

1 Đăng nhập Đăng nhập thành công, đúng phân quyền

2 Đăng ký Đăng ký thành công khi người dùng nhập đủ và các thông tin phù hợp

3 Chuyển đổi giao diện sáng tối

Chuyển đổi thành công giữa hai giao diện sáng tối tùy ý

4 Reset mật khẩu Người dùng có thể reset mật khẩu thành công qua Email, khi cung câp email hợp lệ

5 Quản lý thông tin cá nhân

Người dùng xem thông tin cá nhân và có thể chỉnh sửa thành công với những trường được cho phép

6 Tìm kiếm Tìm kiếm thành công được những cuốn sách theo tên sách, theo tác giả

7 Xem thông tin sách Xem thông tin sách thành công trước khi đọc sách

8 Đọc sách Đọc sách thành công Pass

9 Đánh dấu sách, chương Hệ thống lưu tiến trình đọc sách của người dùng thành công

10 Ghi chú Ghi chú lại các trích đoạn trong sách Pass

11 Tra từ điển Dịch thành công các từ, đoạn trong sách với những sách được viết bằng tiếng Anh

12 Đánh giá sách Gửi đánh giá về sách thành công Pass

13 Nghe sách Người dùng có thể truy cập vào sách nói và tiến hành nghe nội dung sách

14 Lưu sách nghe Sau khi người dùng nghe sách, tiến trình sách được nghe sẽ được lưu lại

15 Nạp tiền Người dùng có thể thông qua Paypal hoặc VNPay để nạp tiền vào tài khoản

16 Mua sách Người dùng dựa vào số tiền đã nạp và tiến hành mua để đọc các sách có phí

17 Thực hiện nhiệm vụ xem sách

Sau khi người dùng đọc hoặc nghe sách đủ số lần theo yêu cầu thì nhiệm vụ đánh dấu hoàn thành

18 Thực hiện nhiệm vụ thêm bình luận

Sau khi người dùng thêm bình luận đủ số lần theo yêu cầu thì nhiệm vụ đánh dấu hoàn thành

19 Thực hiện nhiệm vụ nạp tiền

Sau khi người dùng nạp đủ số lần theo yêu cầu thì nhiệm vụ đánh dấu hoàn thành

20 Xem báo cáo Hệ thống hiển thị báo cáo tiêu dùng của người dùng trên ứng dụng theo

21 Gửi phản hồi Người dùng gửi các phản hồi tới quản trị viên và được lưu trên firebase

5.2.3 Các chức năng thuộc phân hệ quản trị viên

Bảng 5.3 Kiểm thử các chức năng thuộc phân hệ quản trị viên

STT Testcase Kết quả mong đợi Kết quả

1 Thống kê Thành công xem được những thống kê của ứng dụng

2 Xem danh sách danh mục sách

Xem thành công thông tin danh sách danh mục sách

3 Chỉnh sửa danh mục sách

Chỉnh sửa thành công danh mục sách Pass

4 Xóa danh mục sách Xóa thành công danh mục sách Pass

5 Thêm danh mục sách Thêm thành công danh mục sách khi điền đủ thông tin phù hợp

6 Xem danh sách sách Xem thành công thông tin danh sách sách

7 Xem chi tiết sách Thành công xem chi tiết sách, các chương và audio của sách

8 Thêm sách Thêm thành công danh mục sách khi điền đủ thông tin phù hợp và thực hiện đúng quá trình

9 Xóa sách Xóa thành công danh mục sách Pass

10 Xem danh sách người dùng

Xem thông tin sách thành công danh sách người dùng

11 Chặn người dùng Chặn thành công người dùng Pass

12 Xem danh sách nhiệm vụ

Thành công xem được danh sách nhiệm vụ

13 Thêm nhiệm vụ Thành công thêm được nhiệm vụ Pass

14 Chỉnh sửa nhiệm vụ Thành công chỉnh sửa thông tin nhiệm vụ

15 Xóa nhiệm vụ Thành công xóa nhiệm vụ Pass

5.2.4 Kiểm tra chi tiết các chức năng

Bảng 5.4 Test case đánh giá sách khi chưa đọc hoặc nghe sách

Mô tả Kiểm tra chức năng đánh giá sách khi chưa đọc hoặc nghe sách

1 Đăng nhập vào ứng dụng

2 Chọn phần bình luận của sách, bấm thêm bình luận

3 Nhập nội dung bình luận, đánh giá bằng sao và nhấn thêm

Số sao: 4 sao Nội dung bình luận: ‘This book is engaging and interesting’

Hiển thị thông báo yêu cầu người dùng đọc hoặc nghe ít nhất một nửa nội dung để có thể bình luận

Kết quả thực tế Như mong đợi

Kết luận Passed Ảnh minh chứng

Bảng 5.5 Test case tra từ điển

Mô tả Kiểm tra chức năng tra từ điển khi đọc sách tiếng anh

1 Đăng nhập vào ứng dụng

2 Truy cập vào phẩn đọc sách, chọn nội dung muốn tra

3 Nhấn nút dịch để chuyển nội dung sang tiếng việt

Tô đoạn văn ‘Mr and Mrs Dursley, of number four, Privet Drive, were proud to say that they were perfectly normal, thank you very much.’

Kết quả mong đợi Dịch đoạn văn sang tiếng việt

Kết quả thực tế Như mong đợi

Kết luận Passed Ảnh minh chứng

Bảng 5.6 Test case lưu sách nói

Mô tả Kiểm tra chức năng lưu tiến trình của sách nói

1 Đăng nhập vào ứng dụng

2 Chọn phần nghe của sách nói

3 Nhấn nút play để nghe âm thanh

Kết quả mong đợi Lưu lại tiến trình đã nghe

Kết quả thực tế Như mong đợi

Kết luận Passed Ảnh minh chứng

Bảng 5.7 Test case nạp tiền

Kiểm tra chức năng nạp tiền bằng Paypal khi người dùng hoàn thành giao dịch

1 Đăng nhập vào ứng dụng

2 Chọn phần nạp tiền của ứng dụng, chọn nạp Paypal

3 Đăng nhập vào webview của Paypal và tiến hành hoàn thành thanh toán

Khi giao dịch bằng Paypal thành công, ví của người dùng trên ứng dụng được cộng thêm tiền

Kết quả thực tế Như mong đợi

Kết luận Passed Ảnh minh chứng

Bảng 5.8 Test case mua sách

Kiểm tra chức năng mua hàng khi số tiền của ví ít hơn sản phẩm cần mua

1 Đăng nhập vào ứng dụng

2 Chọn phần đọc hoặc nghe của sách có phí

Hiển thị thông báo số tiền không đủ, vui lòng nạp thêm để mua sách này

Kết quả thực tế Như mong đợi

Kết luận Passed Ảnh minh chứng

Bảng 5.9 Test case thực hiện nhiệm vụ xem sách

Kiểm tra thực hiện nhiệm vụ xem sách sau khi xem sách một lần theo yêu cầu nhiệm vụ

1 Đăng nhập vào ứng dụng

2 Chọn phần đọc hoặc nghe sách

3 Truy cập vào trang nhiệm vụ để kiểm tra

Nhiệm vụ cập nhật trạng thái, ví của người dùng được cộng thêm tiền thưởng

Kết quả thực tế Như mong đợi

Kết luận Passed Ảnh minh chứng

Bảng 5.10 Test case thực hiện nhiệm vụ bình luận sách

Kiểm tra thực hiện nhiệm vụ bình luận sách khi bình luận 1 lần theo yêu cầu nhiệm vụ

1 Đăng nhập vào ứng dụng

2 Chọn phần bình luận của sách, bấm thêm bình luận

3 Chuyển sang trang nhiệm vụ để kiểm tra tiến trình nhiệm vụ

Số sao: 5 sao Nội dung bình luận: ‘good’

Nhiệm vụ cập nhật trạng thái, ví của người dùng được cộng thêm tiền thưởng

Kết quả thực tế Như mong đợi

Kết luận Passed Ảnh minh chứng

Bảng 5.11 Test case thực hiện thêm nhiệm vụ

Mô tả Kiểm tra thực hiện thêm nhiệm vụ

1 Đăng nhập vào trang quản trị viên

2 Đến trang quản lý nhiện vụ

3 Chọn nút “New Mission” để tiến hành thêm nhiệm vụ

Detail: “Add comment to four books”

Thêm nhiệm vụ thành công và nhiệm vụ được cập nhật lên danh sách nhiệm vụ

Kết quả thực tế Như mong đợi

Kết luận Passed Ảnh minh chứng

Bảng 5.12 Test case chỉnh sửa danh mục sách

Mô tả Kiểm tra thực hiện chỉnh sửa danh mục sách

1 Đăng nhập vào trang quản trị viên

2 Đến trang quản lý danh mục sách

3 Chọn nút “Edit” trên danh mục sách muốn chỉnh sửa

Dữ liệu thử Category name: “Children’s story”

Tên danh mục được cập nhật thành công và hiển thị lên danh sách danh mục sách

Kết quả thực tế Như mong đợi

Kết luận Passed Ảnh minh chứng

Bảng 5.13 Test case chặn người dùng

Mô tả Kiểm tra thực hiện chặn người dùng

1 Đăng nhập vào trang quản trị viên

2 Đến trang quản lý người dùng

3 Chọn nút “Block” trên người dùng muốn chặn

Người dùng bị chặn thành công và cập nhật danh sách người dùng

Kết quả thực tế Như mong đợi

Kết luận Passed Ảnh minh chứng

Về kiến thức

• Về chuyên môn: o Hiểu được cách quản lý cơ sở dữ liệu với Firebase, cách làm việc với Google, Facebook Firebase o Hiểu rõ quy trình thực hiện dự án phần mềm và cách xây dựng một ứng dụng cơ bản o Học hỏi được các debug để tìm lỗi và giải quyết các lỗi xảy ra trong quá trình phát triển phần mềm

• Về kỹ năng: o Rèn luyện kỹ năng làm việc nhóm, giải quyết vấn đề chung o Kỹ năng đọc tài liệu tiếng anh, tự học, tự nghiên cứu để giải quyết khó khăn.

Về đề tài

Sau khi thực hiện đề tài nhóm đã đạt được:

• Ứng dụng di động eBook

• Website dành cho quản trị viên của hệ thống

• Kinh nghiệm lập trình ứng dụng di động

• Kinh nghiệm làm việc với Flutter, Node.js, Google Firebase, Cloud FireStore.

ƯU ĐIỂM VÀ NHƯỢC ĐIỂM

• Hệ thống bao gồm các tính năng cơ bản cần có và hoạt động ổn định

• Hệ thống được triển khai giúp người dùng có thể dễ dàng sử dụng mà không cần phải cài đặt phức tạp

• Sử dụng các thư viện phổ biến trong Flutter, dễ dàng cho việc nâng cấp và phát triển trong tương lai

• Các tính năng của ứng dụng còn đơn giản, chưa có điểm nhấn để thu hút người dùng xử lý chưa thật sự tối ưu

Nhờ có sự hướng dẫn nhiệt tình của thầy Nguyễn Hữu Trung cũng như các thầy cô trong Khoa Công nghệ thông tin Trường Đại học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh giúp đỡ nhóm trong thời gian thực hiện đề tài

• Flutter là một công nghệ khá mới nên việc tìm kiếm các giải pháp cũng như các lời giải cho các bài toán phát sinh trong quá trình phát triển phần mềm còn gây ít nhiều trở ngại cho nhóm

• Kinh nghiệm và kỹ năng của nhóm còn nhiều thiếu sót và non trẻ cũng dẫn đến không ít khó khăn để giải quyết vấn đề

5 HƯỚNG PHÁT TRIỂN Để dự án có thể phát triển hơn, nhóm đã đưa ra hướng phát triển:

• Cập nhật thêm giao diện để thu hút người dùng

• Nâng cấp để ứng dụng có thể sử dụng ngay cả khi không có Internet

• Phát triển thêm role tác giả để người dùng có thể đăng, bán sách trên ứng dụng

• Phát triển thêm mạng xã hội để người sử dụng ứng dụng có thể đọc, chia sẻ sách với nhau trực tiếp trên ứng dụng

[1] Dart overview, Dart Team, 16/12/2023: Dart overview | Dart

[2] Flutter, 16/12/2023: https://www.javatpoint.com/flutter

[3] Dart, 17/12/2023: https://www.javatpoint.com/dart-features

[4] NodeJs, 15/12/2023: https://nodejs.org/docs/latest/api/

[5] Firebase App Distribution, Firebase, 11/09/2023: Firebase App Distribution (google.com)

[6] Using Firebase Authentication, Firebase, 12/09/2023: Using Firebase

[7] Tham khảo UI, 04/09/2023: https://www.behance.net/search/projects/?searchok+app&sort=recommended

STT Thời gian Công việc Ghi chú

1 01/07/2024 - Báo cáo tiến độ hoàn thiện ứng dụng

- Tiếp thu ý kiến, nhận xét của giảng viên

2 12/07/2024 - Giảng viên góp ý các chức năng liên quan

- Hoàn thành các chức năng chính của hệ thống

KHÓ KHĂN

• Flutter là một công nghệ khá mới nên việc tìm kiếm các giải pháp cũng như các lời giải cho các bài toán phát sinh trong quá trình phát triển phần mềm còn gây ít nhiều trở ngại cho nhóm

• Kinh nghiệm và kỹ năng của nhóm còn nhiều thiếu sót và non trẻ cũng dẫn đến không ít khó khăn để giải quyết vấn đề.

HƯỚNG PHÁT TRIỂN

Để dự án có thể phát triển hơn, nhóm đã đưa ra hướng phát triển:

• Cập nhật thêm giao diện để thu hút người dùng

• Nâng cấp để ứng dụng có thể sử dụng ngay cả khi không có Internet

• Phát triển thêm role tác giả để người dùng có thể đăng, bán sách trên ứng dụng

• Phát triển thêm mạng xã hội để người sử dụng ứng dụng có thể đọc, chia sẻ sách với nhau trực tiếp trên ứng dụng

[1] Dart overview, Dart Team, 16/12/2023: Dart overview | Dart

[2] Flutter, 16/12/2023: https://www.javatpoint.com/flutter

[3] Dart, 17/12/2023: https://www.javatpoint.com/dart-features

[4] NodeJs, 15/12/2023: https://nodejs.org/docs/latest/api/

[5] Firebase App Distribution, Firebase, 11/09/2023: Firebase App Distribution (google.com)

[6] Using Firebase Authentication, Firebase, 12/09/2023: Using Firebase

[7] Tham khảo UI, 04/09/2023: https://www.behance.net/search/projects/?searchok+app&sort=recommended

STT Thời gian Công việc Ghi chú

1 01/07/2024 - Báo cáo tiến độ hoàn thiện ứng dụng

- Tiếp thu ý kiến, nhận xét của giảng viên

2 12/07/2024 - Giảng viên góp ý các chức năng liên quan

- Hoàn thành các chức năng chính của hệ thống

Ngày đăng: 19/11/2024, 12:24

HÌNH ẢNH LIÊN QUAN

Hình 3.5 Lược đồ tuần tự đăng ký - Xây dựng app ebook sử dụng nodejs và flutter
Hình 3.5 Lược đồ tuần tự đăng ký (Trang 65)
Hình 3.6 Lược đồ tuần tự tìm kiếm - Xây dựng app ebook sử dụng nodejs và flutter
Hình 3.6 Lược đồ tuần tự tìm kiếm (Trang 66)
Hình 3.12 Lược đồ tuần tự quên mật khẩu - Xây dựng app ebook sử dụng nodejs và flutter
Hình 3.12 Lược đồ tuần tự quên mật khẩu (Trang 69)
Hình 3.24 Lược đồ tuần tự thực hiện nhiệm vụ - Xây dựng app ebook sử dụng nodejs và flutter
Hình 3.24 Lược đồ tuần tự thực hiện nhiệm vụ (Trang 75)
Hình 3.27 Lược đồ tuần tự nạp tiền - Xây dựng app ebook sử dụng nodejs và flutter
Hình 3.27 Lược đồ tuần tự nạp tiền (Trang 77)
Hình 3.28 Lược đồ tuần tự mua sách - Xây dựng app ebook sử dụng nodejs và flutter
Hình 3.28 Lược đồ tuần tự mua sách (Trang 78)
Hình 3.34 Lược đồ tuần tự xóa sách - Xây dựng app ebook sử dụng nodejs và flutter
Hình 3.34 Lược đồ tuần tự xóa sách (Trang 81)
Hình 3.36 Lược đồ tuần tự thêm nhiệm vụ - Xây dựng app ebook sử dụng nodejs và flutter
Hình 3.36 Lược đồ tuần tự thêm nhiệm vụ (Trang 82)
Hình 3.38 Lược đồ tuần tự xóa nhiệm vụ - Xây dựng app ebook sử dụng nodejs và flutter
Hình 3.38 Lược đồ tuần tự xóa nhiệm vụ (Trang 83)
Hình 3.40 Lược đồ cơ sở dữ liệu - Xây dựng app ebook sử dụng nodejs và flutter
Hình 3.40 Lược đồ cơ sở dữ liệu (Trang 84)
Hình 4.83 Màn hình quản lý sách - Xây dựng app ebook sử dụng nodejs và flutter
Hình 4.83 Màn hình quản lý sách (Trang 121)
Bảng 5.7 Test case nạp tiền - Xây dựng app ebook sử dụng nodejs và flutter
Bảng 5.7 Test case nạp tiền (Trang 136)
Bảng 5.9 Test case thực hiện nhiệm vụ xem sách - Xây dựng app ebook sử dụng nodejs và flutter
Bảng 5.9 Test case thực hiện nhiệm vụ xem sách (Trang 138)
Bảng 5.10 Test case thực hiện nhiệm vụ bình luận sách - Xây dựng app ebook sử dụng nodejs và flutter
Bảng 5.10 Test case thực hiện nhiệm vụ bình luận sách (Trang 139)
Bảng 5.13 Test case chặn người dùng - Xây dựng app ebook sử dụng nodejs và flutter
Bảng 5.13 Test case chặn người dùng (Trang 143)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w