1. Trang chủ
  2. » Tất cả

Đồ án 2 tìm hiểu về java spring boot và xây dựng ứng dụng minh họa

107 49 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 đề Đồ án 2 Tìm hiểu về Java Spring Boot và xây dựng ứng dụng minh họa
Tác giả Nguyễn Đức Thành Phát, Lù Xuân Thái
Người hướng dẫn Thái Thụy Hàn Uyển
Trường học Đại Học Công Nghệ Thông Tin, Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Kỹ Thuật Phần Mềm
Thể loại Báo cáo đồ án
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 107
Dung lượng 3,53 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

  • CHƯƠNG 1. TÌM HIỂU VỀ JAVA SPRING BOOT (14)
    • 1.1. Giới thiệu Java spring boot (14)
    • 1.2. Các khái niệm chính trong Java spring boot (15)
    • 1.3. Các thư viện và các gói thường được sử dụng với Java spring boot (15)
    • 1.4. Cách cài đặt Java spring boot (16)
  • CHƯƠNG 2. GIỚI THIỆU ỨNG DỤNG (18)
    • 2.1. Đặt vấn đề (18)
    • 2.2. Mục tiêu đề tài (18)
    • 2.3. Phương pháp nghiên cứu (18)
    • 2.4. Ý nghĩa và kết quả của đề tài (19)
      • 2.4.1. Sản phẩm (19)
      • 2.4.2. Tài liệu (19)
  • CHƯƠNG 3. CƠ SỞ LÝ THUYẾT (20)
    • 3.1. Framework Flutter (20)
      • 3.1.1. Flutter là gì (20)
      • 3.1.2. Tại sao nên sử dụng Flutter (20)
      • 3.1.3. Ngôn ngữ Dart (21)
    • 3.2. Firebase (21)
      • 3.2.1. Ưu điểm (21)
      • 3.2.2. Nhược điểm (22)
  • CHƯƠNG 4. KHẢO SÁT VÀ PHÂN TÍCH ĐẶT TẢ YÊU CẦU (23)
    • 4.1. Khảo sát hiện hiện trạng (23)
      • 4.1.1. Phương pháp khảo sát (23)
    • 4.2. Khảo sát hiện trạng tin học (23)
      • 4.2.1. Hệ thống phần cứng (23)
      • 4.2.2. Hệ thống phần mềm (24)
      • 4.2.3. Con người (26)
    • 4.3. Danh sách các yêu cầu (27)
    • 4.4. Sơ đồ tổng quan tính năng (28)
  • CHƯƠNG 5. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG (29)
    • 5.1. Phân tích thiết kế hệ thống (29)
      • 5.1.1. Công nghệ sử dụng (29)
        • 5.1.1.1. Front end (29)
        • 5.1.1.2. Back end (29)
        • 5.1.1.3. Công cụ khác (29)
      • 5.1.2. Kiến trúc hệ thống (29)
      • 5.1.3. Kiến trúc ứng dụng (30)
        • 5.1.3.1. Front end (30)
        • 5.1.3.2. Back end (30)
      • 5.1.4. Sơ đồ use case (33)
        • 5.1.4.1. Diagrams (33)
        • 5.1.4.2. Danh sách các actor (34)
        • 5.1.4.3. Danh sách các use case (34)
        • 5.1.4.4. Mô tả chi tiết use case (35)
      • 5.1.5. Class diagrams (50)
        • 5.1.5.1. Diagrams (50)
        • 5.1.5.2. Danh sách các bảng (51)
        • 5.1.5.3. Mô tả chi tiết các bảng (51)
      • 5.1.6. Activity diagrams (55)
        • 5.1.6.1. Đăng nhập (55)
        • 5.1.6.2. Đăng ký (56)
        • 5.1.6.3. Quên mật khẩu (57)
        • 5.1.6.4. Thêm sách (58)
        • 5.1.6.5. Chỉnh sửa sách (59)
        • 5.1.6.6. Xoá sách (60)
        • 5.1.6.7. Tạo bài đăng (61)
        • 5.1.6.8. Chỉnh sửa bài đăng (62)
        • 5.1.6.9. Xoá bài đăng (63)
        • 5.1.6.10. Bình luận bài viết (63)
        • 5.1.6.11. Tìm kiếm (64)
        • 5.1.6.12. Xem danh sách sách (65)
        • 5.1.6.13. Thay đổi thông tin tài khoản (66)
        • 5.1.6.14. Đóng góp sách (66)
        • 5.1.6.15. Phê duyệt sách (67)
      • 5.1.7. Sequence diagrams (69)
        • 5.1.7.1. Đăng nhập (69)
        • 5.1.7.2. Quên mật khẩu (70)
        • 5.1.7.3. Đăng ký (71)
        • 5.1.7.4. Xác nhận tài khoản (72)
        • 5.1.7.5. Thêm sách (73)
        • 5.1.7.6. Chỉnh sửa sách (74)
        • 5.1.7.7. Xoá sách (75)
        • 5.1.7.8. Tạo bài đăng (76)
        • 5.1.7.9. Chỉnh sửa bài đăng (77)
        • 5.1.7.10. Xoá bài đăng (78)
        • 5.1.7.11. Bình luận bài đăng (79)
        • 5.1.7.12. Tìm kiếm (80)
        • 5.1.7.13. Xem danh sách sách (81)
        • 5.1.7.14. Thay đổi thông tin tài khoản (82)
        • 5.1.7.15. Đóng góp sách (83)
        • 5.1.7.16. Phê duyệt sách (84)
        • 5.1.7.17. Quét mã tìm sách (85)
    • 5.2. Thiết kế giao diện (86)
      • 5.2.1. Danh sách giao diện (86)
      • 5.2.2. Chi tiết giao diện (87)
        • 5.2.2.1. Màn hình welcome (87)
        • 5.2.2.2. Màn hình đăng nhập (88)
        • 5.2.2.3. Màn hình đăng ký (89)
        • 5.2.2.4. Màn hình quên mật khẩu (90)
        • 5.2.2.5. Màn hình xác thực (91)
        • 5.2.2.6. Màn hình home (92)
        • 5.2.2.7. Màn hình thêm sách (93)
        • 5.2.2.8. Màn hình xem lại sách (94)
        • 5.2.2.9. Màn hình chi tiết sách (95)
        • 5.2.2.10. Màn hình đóng góp sách (96)
        • 5.2.2.11. Màn hình quét barcode (97)
        • 5.2.2.12. Màn hình chỉnh sửa sách (98)
        • 5.2.2.13. Màn hình thông tin cá nhân (99)
        • 5.2.2.14. Màn hình chỉnh sửa thông tin cá nhân (100)
        • 5.2.2.15. Màn hình đổi mật khẩu (101)
        • 5.2.2.16. Màn hình bài đăng (102)
        • 5.2.2.17. Màn hình thêm bài đăng (103)
        • 5.2.2.18. Màn hình chỉnh sửa bài đăng (104)
        • 5.2.2.19. Màn hình bài đăng của tôi (105)
  • CHƯƠNG 6. KẾT LUẬN (106)
    • 6.1. Kết quả đạt được (106)
    • 6.2. Ưu điểm (106)
    • 6.3. Nhược điểm (106)
    • 6.4. Hướng phát triển (106)

Nội dung

Tại sao nên sử dụng Flutter - Phát triển ứng dụng nhanh chóng: Tính năng hot reload giúp bạn nhanh chóng và dễ dàng thử nghiệm, xây dựng giao diện người dùng, thêm tính năng và sửa lỗi

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 3

LỜI CẢM ƠN

Nhóm chúng em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đến cô Thái Thụy Hàn Uyển đã hướng dẫn, tạo điều kiện cho nhóm chúng em tìm hiểu về đề tài xây dựng ứng dụng sách

Trong vòng 15 tuần, qua các buổi học, nhờ sự hướng dẫn nhiệt tình của cô, chúng em đã tiếp thu được những kiến thức quan trọng, bổ ích, hoàn thành đồ án

Mặc dù đã cố gắng hoàn thành báo cáo với tất cả nỗ lực song báo cáo của nhóm chúng

em chắc chắn không tránh khỏi những thiếu sót, chúng em rất mong nhận được sự thông cảm và góp ý chân thành từ cô Nhóm em xin chân thành cảm ơn

Thành phố Hồ Chí Minh, tháng 12 năm 2022

Nguyễn Đức Thành Phát

Lù Xuân Thái

Trang 4

MỤC LỤC

CHƯƠNG 1 TÌM HIỂU VỀ JAVA SPRING BOOT 14

1.1 Giới thiệu Java spring boot 14

1.2 Các khái niệm chính trong Java spring boot 15

1.3 Các thư viện và các gói thường được sử dụng với Java spring boot 15

1.4 Cách cài đặt Java spring boot 16

CHƯƠNG 2 GIỚI THIỆU ỨNG DỤNG 18

2.1 Đặt vấn đề 18

2.2 Mục tiêu đề tài 18

2.3 Phương pháp nghiên cứu 18

2.4 Ý nghĩa và kết quả của đề tài 19

2.4.1 Sản phẩm 19

2.4.2 Tài liệu 19

CHƯƠNG 3 CƠ SỞ LÝ THUYẾT 20

3.1 Framework Flutter 20

3.1.1 Flutter là gì 20

3.1.2 Tại sao nên sử dụng Flutter 20

3.1.3 Ngôn ngữ Dart 21

3.2 Firebase 21

3.2.1 Ưu điểm 21

3.2.2 Nhược điểm 22

CHƯƠNG 4 KHẢO SÁT VÀ PHÂN TÍCH ĐẶT TẢ YÊU CẦU 23

4.1 Khảo sát hiện hiện trạng 23

4.1.1 Phương pháp khảo sát 23

4.2 Khảo sát hiện trạng tin học 23

4.2.1 Hệ thống phần cứng 23

4.2.2 Hệ thống phần mềm 24

4.2.3 Con người 26

Trang 5

4.3 Danh sách các yêu cầu 27

4.4 Sơ đồ tổng quan tính năng 28

CHƯƠNG 5 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 29

5.1 Phân tích thiết kế hệ thống 29

5.1.1 Công nghệ sử dụng 29

5.1.1.1 Front end 29

5.1.1.2 Back end 29

5.1.1.3 Công cụ khác 29

5.1.2 Kiến trúc hệ thống 29

5.1.3 Kiến trúc ứng dụng 30

5.1.3.1 Front end 30

5.1.3.2 Back end 30

5.1.3.2.1 Presentation Layer 31

5.1.3.2.2 Business Layer 31

5.1.3.2.3 Persistence Layer 31

5.1.3.2.4 Database Layer 32

5.1.3.2.5 Luồng đi của Spring boot 32

5.1.4 Sơ đồ use case 33

5.1.4.1 Diagrams 33

5.1.4.2 Danh sách các actor 34

5.1.4.3 Danh sách các use case 34

5.1.4.4 Mô tả chi tiết use case 35

5.1.4.4.1 Đăng nhập 35

5.1.4.4.2 Quên mật khẩu 35

5.1.4.4.3 Đăng ký 36

5.1.4.4.4 Xác nhận tài khoản 37

5.1.4.4.5 Thêm sách 38

5.1.4.4.6 Chỉnh sửa sách 39

5.1.4.4.7 Xoá sách 40

Trang 6

5.1.4.4.8 Tạo bài đăng 41

5.1.4.4.9 Chỉnh sửa bài đăng 41

5.1.4.4.10 Xoá bài đăng 42

5.1.4.4.11 Bình luận bài đăng 43

5.1.4.4.12 Tìm kiếm 44

5.1.4.4.13 Xem danh sách sách 45

5.1.4.4.14 Thay đổi thông tin tài khoản 45

5.1.4.4.15 Đóng góp sách 46

5.1.4.4.16 Phê duyệt sách 47

5.1.4.4.17 Quét mã tìm sách 48

5.1.5 Class diagrams 50

5.1.5.1 Diagrams 50

5.1.5.2 Danh sách các bảng 51

5.1.5.3 Mô tả chi tiết các bảng 51

5.1.5.3.1 Bảng User 51

5.1.5.3.2 Bảng Book 51

5.1.5.3.3 Bảng ContributionBook 52

5.1.5.3.4 Bảng Post 52

5.1.5.3.5 Bảng Comment 53

5.1.5.3.6 Bảng Verification 53

5.1.6 Activity diagrams 55

5.1.6.1 Đăng nhập 55

5.1.6.2 Đăng ký 56

5.1.6.3 Quên mật khẩu 57

5.1.6.4 Thêm sách 58

5.1.6.5 Chỉnh sửa sách 59

5.1.6.6 Xoá sách 60

5.1.6.7 Tạo bài đăng 61

5.1.6.8 Chỉnh sửa bài đăng 62

Trang 7

5.1.6.9 Xoá bài đăng 63

5.1.6.10 Bình luận bài viết 63

5.1.6.11 Tìm kiếm 64

5.1.6.12 Xem danh sách sách 65

5.1.6.13 Thay đổi thông tin tài khoản 66

5.1.6.14 Đóng góp sách 66

5.1.6.15 Phê duyệt sách 67

5.1.7 Sequence diagrams 69

5.1.7.1 Đăng nhập 69

5.1.7.2 Quên mật khẩu 70

5.1.7.3 Đăng ký 71

5.1.7.4 Xác nhận tài khoản 72

5.1.7.5 Thêm sách 73

5.1.7.6 Chỉnh sửa sách 74

5.1.7.7 Xoá sách 75

5.1.7.8 Tạo bài đăng 76

5.1.7.9 Chỉnh sửa bài đăng 77

5.1.7.10 Xoá bài đăng 78

5.1.7.11 Bình luận bài đăng 79

5.1.7.12 Tìm kiếm 80

5.1.7.13 Xem danh sách sách 81

5.1.7.14 Thay đổi thông tin tài khoản 82

5.1.7.15 Đóng góp sách 83

5.1.7.16 Phê duyệt sách 84

5.1.7.17 Quét mã tìm sách 85

5.2 Thiết kế giao diện 86

5.2.1 Danh sách giao diện 86

5.2.2 Chi tiết giao diện 87

5.2.2.1 Màn hình welcome 87

Trang 8

5.2.2.2 Màn hình đăng nhập 88

5.2.2.3 Màn hình đăng ký 89

5.2.2.4 Màn hình quên mật khẩu 90

5.2.2.5 Màn hình xác thực 91

5.2.2.6 Màn hình home 92

5.2.2.7 Màn hình thêm sách 93

5.2.2.8 Màn hình xem lại sách 94

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

5.2.2.10 Màn hình đóng góp sách 96

5.2.2.11 Màn hình quét barcode 97

5.2.2.12 Màn hình chỉnh sửa sách 98

5.2.2.13 Màn hình thông tin cá nhân 99

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

5.2.2.15 Màn hình đổi mật khẩu 101

5.2.2.16 Màn hình bài đăng 102

5.2.2.17 Màn hình thêm bài đăng 103

5.2.2.18 Màn hình chỉnh sửa bài đăng 104

5.2.2.19 Màn hình bài đăng của tôi 105

CHƯƠNG 6 KẾT LUẬN 106

6.1 Kết quả đạt được 106

6.2 Ưu điểm 106

6.3 Nhược điểm 106

6.4 Hướng phát triển 106

Trang 9

DANH MỤC HÌNH

Hình 1 Spring framework runtime 14

Hình 2 Spring initializr 16

Hình 3 Inttellij IDEA 17

Hình 4 Khảo sát hệ điều hành IOS hiện nay 23

Hình 5 Khảo sát hệ điều hành Android hiện nay 24

Hình 6 Website reader.com.vn 24

Hình 7 Website reviewsach.net 25

Hình 8 Ứng dụng review sách hay 25

Hình 9 Ứng dụng book shelf 26

Hình 10 Người dùng của các ứng dụng sách 27

Hình 11 Sơ đồ tổng quan tính năng 28

Hình 12 Kiến trúc hệ thống 30

Hình 13 Kiến trúc ứng dụng android 30

Hình 14 Kiến trúc ứng dụng web service 31

Hình 15 Use case diagrams 33

Hình 16 Class diagram 50

Hình 17 Activity diagram đăng nhập 55

Hình 18 Activity diagram đăng ký 56

Hình 19 Activity diagram quên mật khẩu 57

Hình 20 Activity diagram thêm sách 58

Hình 21 Activity diagram chỉnh sửa sách 59

Hình 22 Activity diagram xoá sách 60

Hình 23 Activity diagram tạo bài đăng 61

Hình 24 Activity diagram chỉnh sửa bài đăng 62

Hình 25 Activity diagram xoá bài đăng 63

Hình 26 Activity diagram bình luận bài đăng 64

Hình 27 Activity diagram tìm kiếm 64

Hình 28 Activity diagram xem danh sách sách 65

Hình 29 Activity diagram thay đổi thông tin tài khoản 66

Hình 30 Activity diagram đóng góp sách 67

Hình 31 Activity diagram phê duyệt sách 68

Hình 32 Sequence diagram đăng nhập 69

Hình 33 Sequence diagram quên mật khẩu 70

Hình 34 Sequence diagram đăng ký 71

Hình 35 Sequence diagram xác nhận tài khoản 72

Hình 36 Sequence diagram thêm sách 73

Trang 10

Hình 37 Sequence diagram chỉnh sửa sách 74

Hình 38 Sequence diagram xoá sách 75

Hình 39 Sequence diagram tạo bài đăng 76

Hình 40 Sequence diagram chỉnh sửa bài đăng 77

Hình 41 Sequence diagram xoá bài đăng 78

Hình 42 Sequence diagram bình luận bài đăng 79

Hình 43 Sequence diagram tìm kiếm 80

Hình 44 Sequence diagram xem danh sách sách 81

Hình 45 Sequence diagram thay đổi thông tin tài khoản 82

Hình 46 Sequence diagram đóng góp sách 83

Hình 47 Sequence diagram phê duyệt sách 84

Hình 48 Sequence diagram quét mã tìm sách 85

Hình 49 Màn hình chào mừng 87

Hình 50 Màn hình đăng nhập 88

Hình 51 Màn hình đăng ký 89

Hình 52 Màn hình quên mật khẩu 90

Hình 53 Màn hình xác thực 91

Hình 54 Màn hình trang chủ 92

Hình 55 Màn hình thêm sách 93

Hình 56 Màn hình xem lại sách 94

Hình 57 Màn hình chi tiết sách 95

Hình 58 Màn hình đóng góp sách 96

Hình 59 Màn hình quét mã 97

Hình 60 Màn hình chỉnh sửa sách 98

Hình 61 Màn hình cá nhân 99

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

Hình 63 Màn hình thay đổi mật khẩu 101

Hình 64 Màn hình bài đăng 102

Hình 65 Màn hình thêm bài đăng 103

Hình 66 Màn hình sửa bài đăng 104

Hình 67 Màn hình bài đăng của tôi 105

Trang 11

DANH MỤC BẢNG

Bảng 1 Danh sách các yêu cầu 28

Bảng 2 Danh sách các actor 34

Bảng 3 Danh sách các use case 34

Bảng 4 Use case đăng nhập 35

Bảng 5 Use case quên mật khẩu 36

Bảng 6 Use case đăng ký 37

Bảng 7 Use case xác nhận tài khoản 38

Bảng 8 Use case thêm sách 39

Bảng 9 Use case chỉnh sửa sách 40

Bảng 10 Use case xoá sách 41

Bảng 11 Use case tạo bài đăng 41

Bảng 12 Use case chỉnh sửa bài đăng 42

Bảng 13 Use case xoá bài đăng 43

Bảng 14 Use case bình luận bài đăng 44

Bảng 15 Use case tìm kiếm 45

Bảng 16 Use case xem danh sách sách 45

Bảng 17 Use case thay đổi thông tin tài khoản 46

Bảng 18 Use case đóng góp sách 47

Bảng 19 Use case phê duyệt sách 48

Bảng 20 Use case quét mã tìm sách 49

Bảng 21 Danh sách các bảng trong class diagrams 51

Bảng 22 Bảng user 51

Bảng 23 Bảng sách 52

Bảng 24 Bảng sách đóng góp 52

Bảng 25 Bảng bài đăng 53

Bảng 26 Bảng bình luận 53

Bảng 27 Bảng xác thực 54

Bảng 28 Bảng danh sách màn hình 86

Bảng 29 Bảng mô tả màn hình chào mừng 87

Bảng 30 Bảng mô tả màn hình đăng nhập 88

Bảng 31 Bảng mô tả màn hình đăng ký 89

Bảng 32 Bảng mô tả màn hình quên mật khẩu 90

Bảng 33 Bảng mô tả màn hình xác thực 91

Bảng 34 Bảng mô tả màn hình trang chủ 92

Bảng 35 Bảng mô tả màn hình sách 93

Bảng 36 Bảng mô tả màn hình xem lại sách 94

Trang 12

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

Bảng 38 Bảng mô tả màn hình đóng góp sách 96

Bảng 39 Bảng mô tả màn hình quét mã 97

Bảng 40 Bảng mô tả màn hình chỉnh sửa sách 98

Bảng 41 Bảng mô tả màn hình cá nhân 100

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

Bảng 43 Bảng mô tả màn hình thay đổi mật khẩu 101

Bảng 44 Bảng mô tả màn hình bài đăng 102

Bảng 45 Bảng mô tả màn hình thêm bài đăng 103

Bảng 46 Bảng mô tả màn hình chỉnh sửa bài đăng 104

Bảng 47 Bảng mô tả màn hình bài đăng của tôi 105

Trang 13

DANH MỤC TỪ VIẾT TẮT

STT Từ viết tắt Mô tả

1 HTTP Hypertext Transfer Protocol

2 UI User interface

3 SDK Software development kit

4 API Application protocol interface

5 CSDL Cơ sở dữ liệu

6 MVVM Model view view model

Trang 14

CHƯƠNG 1 TÌM HIỂU VỀ JAVA SPRING BOOT

1.1 Giới thiệu Java spring boot

Trước tiên về khái niệm Java Spring, Java Spring là một khung phát triển Java mã nguồn mở Spring cung cấp một mô hình lập trình và cấu hình toàn diện để phát triển các ứng dụng Java cấp doanh nghiệp Spring nhằm mục đích đơn giản hóa sự phát triển Java của doanh nghiệp và giúp các nhà phát triển xây dựng các ứng dụng hiệu quả và hiệu quả hơn

Spring tập trung vào một số lĩnh vực phát triển ứng dụng và cung cấp một loạt các tính năng

Hình 1 Spring framework runtime

Spring Boot là một phần mở rộng của Spring, giúp loại bỏ các cấu hình có sẵn cần thiết

để thiết lập một ứng dụng Spring Với các mã mặc định và chú thích dựa trên cấu hình , Spring Boot cho phép hệ sinh thái phát triển nhanh hơn và hiệu quả hơn

Trang 15

Vì Spring Boot được xây dựng dựa trên Spring nên nó cung cấp tất cả các tính năng và lợi ích của Spring Spring Boot nhằm mục đích giảm độ dài mã và cung cấp cho các nhà phát triển cách dễ dàng nhất để xây dựng một ứng dụng

1.2 Các khái niệm chính trong Java spring boot

Một số tính năng của Spring Boot bao gồm:

Embedded server (Tomcat, Jetty và Undertow): hầu hết các nhà phát triển sử dụng

"Started" thích hợp để có được một thể hiện được cấu hình đầy đủ Ví dụ, theo mặc định, máy chủ Tomcat nhúng Spring Boot, lắng nghe các yêu cầu HTTP trên cổng

8080

Cấu hình mặc định tùy ý: chúng ta có thể thay đổi cấu hình của các embedded server

tùy ý, ví dụ như thay đổi cổng

Tự động cấu hình cho các chức năng cho Spring: tự động cấu hình thay cho bạn, chỉ

cần bắt đầu code và chạy là được

Theo dõi tình trạng, số liệu và các báo cáo: Spring boot cung cấp tự động health

indicator (chỉ số sức khỏe) cho các components chuẩn (DataSourceHealthIndicator, MongoHealthIndicator, RedisHealthIndicator, ) Ví dụ, health indicator cung cấp bởi DataSource tạo kết nối tới database và thực hiện các câu query để kiểm tra xem nó có hiện động tốt không

Do Spring Boot là một trình khởi tạo dự án dựa trên Spring, việc sử dụng các tính năng như tự động cấu hình, nó giúp các nhà phát triển không phải viết mã dài dòng Mặc dù

nó làm mất đi một số tính linh hoạt của Spring với cấu hình phù hợp, nhưng nó giúp giảm thời gian phát triển và tránh cấu hình không cần thiết

Embedded server là một hệ thống chip đơn với chuẩn kết nối qua mạng Ethernet Bằng cách nhúng bằng cách nhúng hệ điều hành và giao thức Ethernet vào trong thiết bị, thiết bị đó có khả năng giao tiếp thông qua Ethernet mà không cần phải gián tiếp qua một máy tính độc lập

1.3 Các thư viện và các gói thường được sử dụng với Java spring boot

Spring Boot cung cấp một số phụ thuộc khởi động cho các mô-đun Spring Một số trong những cái phổ biến nhất bao gồm:

Spring-boot-starter-web

Spring-boot-starter-thymeleaf

Trang 17

• Dùng intelliJ IDEA

Hình 3 Inttellij IDEA

Trang 18

CHƯƠNG 2 GIỚI THIỆU ỨNG DỤNG

2.1 Đặt vấn đề

Đọc sách hiện nay đang là vấn đề thu hút sự chú ý, quan tâm của xã hội Đọc sách không những để nâng cao trình độ nhận thức về mọi mặt, bồi dưỡng cho tâm hồn, là nhu cầu chính đáng của mỗi người mà sách còn mang đến nguồn tri thức để người đọc

có thể trải nghiệm, học tập, nghiên cứu, để làm giàu thêm vốn sống của bản thân mỗi người, hướng con người tới những giá trị chân, thiện, mỹ

Với tốc độ tăng trưởng về khoa học và kĩ thuật hiện nay, nhu cầu và hình thức đọc sách của xã hội cũng bị ảnh hưởng theo Các thiết bị điện tử ngày nay được xem là những thiết bị không chỉ hỗ trợ, giúp đỡ cho con người trong nhiều mục đích khác nhau đặc biệt là các thiết bị di động thông minh, con người bắt đầu chuyển qua đọc sách trên thiết bị di động và phát triển hơn nữa là sách nói, chúng ta có thể nghe mọi lúc mọi người

Cho dù là sách giấy hay sách điện tử, đối với những người đọc sách nhiều việc quản lý sách đã đọc và có nhu cầu chia sẻ cảm nghĩ của mình sau khi đọc một cuốn sách nào

đó có lẽ gặp nhiều khó khăn Việc ghi chép trong sách vở hay trên nhưng tài liệu trực tuyến đôi lúc gặp bất tiện Vì vậy, một ứng dụng quản lý và đánh giá sách sẽ là một sự lựa chọn hợp lý bởi trong thời kì công nghệ mới, hầu hết mỗi chúng ta đều sở hữu một thiết bị di động,

2.2 Mục tiêu đề tài

Ứng dụng sách được tạo ra nhằm cho giúp người dùng quản lý được các quyển sách mình đã đọc và chia sẻ cảm nhận sau khi đọc sách cho những người khác

2.3 Phương pháp nghiên cứu

- Tham khảo các tài liệu trực tuyến về các hoạt động trao đổi qua lại giữa người dùng

Trang 19

- Tham khảo một số ý tưởng và ứng dụng review sách qua internet

- Tham khảo tài liệu, video hướng dẫn cách áp dụng ứng dụng các công nghệ

mới vào quá trình xây dựng ứng dụng

2.4 Ý nghĩa và kết quả của đề tài

2.4.1 Sản phẩm

- Tạo ra được ứng dụng quản sách và chia sẻ sách chơi trực tuyến giữa các người dùng

- Đáp ứng được các chức năng đề ra của ứng dụng

2.4.2 Tài liệu

- Kiến thức về các công nghệ đã sử dụng vào đồ án: ngôn ngữ, framework, database,

Trang 20

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

3.1 Framework Flutter

3.1.1 Flutter là gì

Flutter là mobile UI framework của Google để tạo ra các giao diện chất lượng cao trên iOS và Android trong khoảng thời gian ngắn Flutter hoạt động với những code sẵn có được sử dụng bởi các lập trình viên, các tổ chức

Flutter gồm 2 thành phần quan trọng:

- Một SDK (Software Development Kit): Một bộ sưu tập các công cụ sẽ giúp bạn phát triển các ứng dụng của mình Điều này bao gồm các công cụ để biên dịch

mã của bạn thành mã máy gốc (mã cho iOS và Android)

- Một Framework (UI Library based on widgets): Một tập hợp các thành phần giao diện người dùng (UI) có thể tái sử dụng (button, text inputs, slider, ) giúp bạn có thể cá nhân hóa tùy theo nhu cầu của riêng mình

3.1.2 Tại sao nên sử dụng Flutter

- Phát triển ứng dụng nhanh chóng: Tính năng hot reload giúp bạn nhanh chóng và dễ dàng thử nghiệm, xây dựng giao diện người dùng, thêm tính năng và sửa lỗi nhanh hơn Trải nghiệm tải lại lần thứ hai, mà không làm mất trạng thái, trên emulator,

simulator và device cho iOS và Android

- Giao diện người dùng đẹp và thu hút: Thỏa mãn người dùng của bạn với các widget built-in đẹp mắt của Flutter theo Material Design và Cupertino (iOS-flavor), các giao diện lập trình ứng dụng (API) chuyển động phong phú, scroll tự nhiên mượt mà và tự nhận thức được nền tảng

- Framework hiện đại: Dễ dàng tạo giao diện người dùng của bạn với framework hiện đại của Flutter và tập hợp các platform, layout và widget phong phú Giải quyết các

Trang 21

thách thức giao diện người dùng khó khăn của bạn với các API mạnh mẽ và linh hoạt cho 2D, animation, gesture, hiệu ứng và hơn thế nữa

3.1.3 Ngôn ngữ Dart

Dart là ngôn ngữ lập trình mới, được phát triển bởi Google, hiện đã được chấp thuận bởi tổ chức Ecma Dart được sử dụng để xây dựng các loại ứng dụng: web, server, di động (IOS và Android với công cụ Flutter)

Dart là ngôn ngữ hỗ trợ lập trình hướng đối tượng, cú pháp kiểu C, mã code Dart có thể biên dịch thành JavaSript để chạy trên trình duyệt Nó hỗ trợ những khái niệm lập trình hiện đại như giao diện lớp, lớp trừu tượng, …

3.2 Firebase

Firebase là một nền tảng mà Google cung cấp để phát triển các ứng dụng di động

và trang web, hỗ trợ Developer trong việc đơn giản hóa các thao tác với dữ liệu và không

cần tác động tới backend hay server

Trang 22

- Tập trung phát triển chủ yếu về giao diện người dùng: Firebase cho phép lập trình viên tập trung chủ yếu vào phát triển phần giao diện người dùng nhờ kho Backend mẫu phong phú đa dạng

- Không có máy chủ: Điều này giúp Firebase có khả năng tối ưu hóa về hiệu suất làm việc thông qua mở rộng cụm database

- Học máy: Firebase cung cấp học máy cho lập trình viên, hỗ trợ tối đa cho việc phát triển ứng dụng

- Tạo ra lưu lượng truy cập: Với khả năng hỗ trợ tạo lập các chỉ mục, Firebase giúp nâng cao thứ hạng của ứng dụng trên bảng xếp hạng Google, từ đó tăng lượt traffic

- Theo dõi lỗi: Firebase là công cụ phát triển, khắc phục lỗi tuyệt vời

- Sao lưu: Firebase sao lưu thường xuyên, giúp đảm bảo tính sẵn có và bảo mật thông tin cho dữ liệu

3.2.2 Nhược điểm

- Không phải mã nguồn mở

- Chỉ hoạt động trên CSDL NoSQL

- Lập trình viên không được truy cập mã nguồn

- Phạm vi hoạt động bị hạn chế ở một vài quốc gia

- Một vài dịch vụ cần trả phí, chi phí dành cho Firebase tương đối lớn và không ổn

- Chỉ có thể chạy trên Google Cloud

Trang 23

CHƯƠNG 4 KHẢO SÁT VÀ PHÂN TÍCH ĐẶT TẢ YÊU CẦU

4.1 Khảo sát hiện hiện trạng

4.1.1 Phương pháp khảo sát

• Quan sát

• Thu thập thông tin, tài liệu

4.2 Khảo sát hiện trạng tin học

Trang 24

Hình 5 Khảo sát hệ điều hành Android hiện nay

4.2.2 Hệ thống phần mềm

Tham khảo các website và ứng dụng hiện có:

• Webisite reader.com.vn

Hình 6 Website reader.com.vn

Trang 26

Hình 9 Ứng dụng book shelf

Kết luận:

Giao diện phối màu hài hòa, bố cục hợp lý và rõ ràng, dễ dàng sử dụng

Tốc độ xử lý, phản hồi nhanh, độ trễ không đáng kể

Chức năng đa dạng, có hai dạng ứng dụng chủ yếu: thứ nhất đánh giá, tổng hợp nhứng cuốn sách hay, đáng nên đọc Thứ 2 là đọc sách, theo dõi tiến trình đọc, quản lý sách Tương thích tốt với tất cả các thiết bị di động hiện giờ

4.2.3 Con người

Theo quan sát, những ứng dụng sẽ có hai phái tương tác: người sử dụng ứng dụng với mục đích bài đánh giá, đọc sách và người quản lý hệ thống, viết các bài đánh giá Người sử dựng ứng dụng có thể là người mới bắt đầu đọc sách hoặc là những người đam mê đọc sách Họ đều có điểm giống nhau là có một bộ sưu tầm sách của mình

Trang 27

Hình 10 Người dùng của các ứng dụng sách

4.3 Danh sách các yêu cầu

Sau khảo sát hiện trạng về phần cứng, phần mềm và con người, nhóm quyết định đưa

ra các yêu cầu phần mềm như sau

STT Phân loại Tên yêu cầu Mô tả

1 Chức năng Thêm sách vào bộ sưu

tập,

Tính năng quan trọng của ứng dụng Người dùng thêm thông tin sách vào bộ sưu tập của mình

2 Chức năng Viết bài đánh giá sách Người dùng viết bài đánh sách sách

từ những sách đã thêm vào bộ sưu tập

3 Chức năng Chia sẻ sách với người

5 Chức năng Đăng nhập – đăng ký Hệ thống cho phép người dùng

đăng ký tài khoản mới bằng email,

số điện thoại, google, facebook, … Sau khi đăng ký, người dùng đăng nhập bằng tài khoản đã tạo

Trang 28

6 Chức năng Quản lý tài khoản Người dùng có thể chỉnh sửa thông

tin tài khoản, bộ sưu tập, thông báo,

7 Chức năng Tìm kiếm Người dùng có thể tìm kiếm nhanh

Ứng dụng chạy được trên hầu hết các ứng dụng

Bảng 1 Danh sách các yêu cầu

4.4 Sơ đồ tổng quan tính năng

Hình 11 Sơ đồ tổng quan tính năng

Trang 29

CHƯƠNG 5 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Mô hình Client – Server

- Lớp Client: Hiển thị giao diện người dùng, thông qua kết nối Internet để kết nối đến

cơ sở dữ liệu quản lý thư viện Là nơi diễn ra các tương tác của người dùng với chương trình như nhập, các thao tác truy xuất dữ liệu

- Lớp Server: Quản lý và chứa toàn bộ dữ liệu của phần mềm Đồng thời xử lý các

yêu cầu nhập/xuất được gửi xuống từ lớp Client

Trang 31

Hình 14 Kiến trúc ứng dụng web service

Kiến trúc Spring boot bao gồm 4 lớp:

• Chuyển giao xác thực cho Business Layer

Presentation Layer tương đương với Controller Controller xử lý tất cả các yêu cầu API REST đến (nhận, đăng, đặt, xóa, vá) khỏi máy khách

Trang 32

Tầng này chịu trách nhiệm:

• Chứa logic lưu trữ

• Tìm nạp các đối tượng và dịch chúng thành các hàng cơ sở dữ liệu (và ngược lại)

Persistence Layer tương đương với Repository Chúng ta viết các truy vấn cơ sở dữ liệu bên trong này

Persistence Layer là lớp duy nhất giao tiếp với Business Layer và Database Layer

5.1.3.2.5 Luồng đi của Spring boot

• Người dùng thực hiện một yêu cầu HTTP

• Lớp controllernhận được yêu cầu HTTP

• Lớp controller hiểu loại yêu cầu nào sẽ xử lý, và sau đó nó giải quyết xử lý đó

• Nếu cần thiết, nó gọi lớp service

• Lớp service sẽ xử lý business logic Nó thực hiện điều này trên dữ liệu từ cơ sở

dữ liệu Nếu mọi thứ suôn sẻ, chúng tôi trả lại kết quả mong muốn

Trang 33

5.1.4 Sơ đồ use case

5.1.4.1 Diagrams

Hình 15 Use case diagrams

Trang 34

5.1.4.3 Danh sách các use case

STT Tên use case

8 Tạo bài đăng

9 Chỉnh sửa bài đăng

10 Xoá bài đăng

11 Bình luận bài đăng

Trang 35

5.1.4.4 Mô tả chi tiết use case

Điều kiện kích hoạt Người dùng thực hiện tính năng đăng nhập

Luồng chính Hành động của tác nhân Hành động của hệ thống

1 Nhập thông tin đăng nhập, bao gồm email và password

Luồng thay thế Không

Điều kiện tiên quyết • Tính năng đăng nhập hoạt động bình thường

• Người dùng có tài khoản trong hệ thống

• Người dùng đang ở màn hình đăng nhập Điều kiện sau • Đăng nhập thành công: chuyển sang màn hình trang

chủ

• Đăng nhập thất bại: thông báo cho người dùng

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

5.1.4.4.2 Quên mật khẩu

Tên Quên mật khẩu

Trang 36

Mô tả Người dùng không nhớ mật khẩu tài khoản và muốn cài đặt lại

mật khẩu mới Tác nhân Người dùng

Điều kiện kích hoạt Người dùng thực hiện tính năng quên mật khẩu

Luồng chính Hành động của tác nhân Hành động của hệ thống

1 Người dùng điền email của tài khoản đã tạo

2 Nhấn vào nút gửi email

1 Kiểm tra email người dùng

có trong hệ thống hay không

2 Nếu có tiến hành gửi email cài đặt lại mật khẩu Nếu không tiến hành luồng thay thế 1

Luồng thay thế Luồng thay thế 1

1 Hiện lên thông báo cho người dùng: nhập sai email

2 Tiến nhanh cho người dùng nhập lại thông tin

Điều kiện tiên quyết • Tính năng quên mật khẩu hoạt động bình thường

• Ứng dụng đang được chạy

Điều kiện sau • Thành công: chuyển sang màn hình xác nhận

• Đăng ký thất bại: thông báo cho người dùng

Bảng 5 Use case quên mật khẩu

5.1.4.4.3 Đăng ký

Tên Đăng ký

Mô tả Người dùng muốn tạo tài khoản dùng để truy cập ứng dụng Tác nhân Người dùng

Điều kiện kích hoạt Người dùng thực hiện tính năng đăng ký tài khoản

Luồng chính Hành động của tác nhân Hành động của hệ thống

Trang 37

1 Người dùng điền tất cả thông tin

Luồng thay thế Luồng thay thế 1

1 Hiện lên thông báo cho người dùng: sai thông tin hoặc là tạo tài khoản thất bại

2 Tiến nhanh cho người dùng nhập lại thông tin

Điều kiện tiên quyết • Tính đăng ký hoạt động bình thường

• Người dùng đang ở màn hình đăng ký Điều kiện sau • Đăng ký thành công: chuyển sang màn hình đăng nhập

• Đăng ký thất bại: thông báo cho người dùng

Bảng 6 Use case đăng ký

5.1.4.4.4 Xác nhận tài khoản

Tên Xác nhận tài khoản

Mô tả Sau khi người dùng đăng ký cần xác nhận tài khoản người

dùng Tác nhân Người dùng, hệ thống

Điều kiện kích hoạt Người dùng thực hiện tính năng đăng ký tài khoản thành công Luồng chính Hành động của tác nhân Hành động của hệ thống

1 Đăng ký tài khoản thành công

1 Tạo mã xác nhận cho tài khoản đã đăng ký

2 Gửi mã xác nhận đến email của người dùng

Trang 38

2 Sau khi nhận được mã thành công, người dùng nhập

mã xác nhận tài khoản

3 Xác nhận mã xác nhận của người dùng với hệ thống Hợp

lệ trạng thái tài khoản thành

đã xác nhận

Luồng thay thế Không

Điều kiện tiên quyết • Tính đăng ký và xác nhận hoạt động bình thường

• Người dùng đang ở màn hình xác nhận tài khoản Điều kiện sau • Xác nhận thành công: chuyển sang màn hình đăng

nhập

• Xác nhận thất bại: thông báo cho người dùng

Bảng 7 Use case xác nhận tài khoản

5.1.4.4.5 Thêm sách

Tên Thêm sách

Mô tả Người dùng thêm sách vào bộ sưu tập

Tác nhân Người dùng

Điều kiện kích hoạt Người dùng thực tính tính năng thêm sách

Luồng chính Hành động của tác nhân Hành động của hệ thống

1 Người dùng điền tất cả thông tin của sách

2 Nhấn vào nút thêm sách

1 Kiểm tra dữ liệu người dùng nhập vào Nếu không hợp lệ tiến hành luồng thay thế 1

2 Lưu thông tin vào database Thông báo người dùng lưu thành công Nếu không tiến hành luồng thay thế 2

Luồng thay thế Luồng thay thế 1

Trang 39

• Thông báo cho người dùng thông tin sai

• Yêu cầu người dùng nhập lại Luồng thay thế 2

• Thông báo cho người dùng thêm thất bại

Điều kiện tiên quyết • Tính năng thêm sách hoạt động bình thường

• Người dùng đang ở màn hình thêm sách

Điều kiện sau • Thêm sách thành công: chuyển sang màn hình thông

báo thêm sách thành công

• Thêm sách thất bại: thông báo cho người dùng

Bảng 8 Use case thêm sách

5.1.4.4.6 Chỉnh sửa sách

Tên Chỉnh sửa sách

Mô tả Người dùng muốn chỉnh sửa thông tin sách trong bộ sưu tập Tác nhân Người dùng

Điều kiện kích hoạt Người dùng thực tính tính năng chỉnh sửa sách

Luồng chính Hành động của tác nhân Hành động của hệ thống

1 Người dùng chọn sách cần chỉnh sửa thông tin

2 Người dùng điền thông tin cần chỉnh của sách

3 Nhấn vào nút chỉnh sửa

1 Kiểm tra dữ liệu người dùng nhập vào Nếu không hợp lệ tiến hành luồng thay thế 1

2 Lưu thông tin vào database Thông báo người dùng lưu thành công Nếu không tiến hành luồng thay thế 2

Luồng thay thế Luồng thay thế 1

• Thông báo cho người dùng thông tin sai

Trang 40

• Yêu cầu người dùng nhập lại Luồng thay thế 2

• Thông báo cho người dùng thêm thất bại

Điều kiện tiên quyết • Tính năng chỉnh sửa sách hoạt động bình thường

• Người dùng đang ở màn hình chỉnh sửa sách

Điều kiện sau • Chỉnh sửa sách thành công: thông báo chỉnh sửa sách

Điều kiện kích hoạt Người dùng thực tính tính năng xoá sách

Luồng chính Hành động của tác nhân Hành động của hệ thống

1 Người dùng chọn sách cần xoá

2 Nhấn vào nút xoá sách

1 Xoá sách trong database Thông báo người dùng xoá thành công Nếu không tiến hành luồng thay thế 1 Luồng thay thế Luồng thay thế 1

Luồng thay thế 1

• Thông báo cho người dùng xoá thất bại

Điều kiện tiên quyết • Tính năng xoá sách hoạt động bình thường

• Người dùng đang ở màn hình xoá sách

Điều kiện sau • Xoá sách thành công: thông báo xoá sách thành công

• Xoá thất bại: thông báo cho người dùng

Ngày đăng: 01/02/2023, 21:10

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] [Trực tuyến]. Available: https://gs.statcounter.com/android-version-market-share/mobile-tablet/viet-nam Link
[3] [Trực tuyến]. Available: https://gs.statcounter.com/ios-version-market-share/mobile/viet-nam Link
[4] [Trực tuyến]. Available: https://www.tonerbuzz.com/blog/how-many-books-are-published-each-year/#:~:text=The%20latest%20estimate%20is%201.7,that%20number%20may%20be%20higher Link
[5] [Trực tuyến]. Available: https://stackoverflow.com/ Link
[2] [Trực tuyến]. Available: Mobile iOS Version Market Share Viet Nam | Statcounter Global Stats Khác

TỪ KHÓA LIÊN QUAN

w