1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo đồ án tốt nghiệp xây dựng ứng dụng và website bán hàng

98 9 0

Đ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 Ứng Dụng Và Website Bán Hàng
Tác giả Lê Anh Tuấn
Người hướng dẫn Ths. Nguyễn Hải Dương
Trường học Đại học Xây Dựng Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 98
Dung lượng 5,34 MB

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

Nội dung

Báo cáo đồ án tốt nghiệp xây dựng ứng dụng và website bán hàng Báo cáo đồ án tốt nghiệp xây dựng ứng dụng và website bán hàng Báo cáo đồ án tốt nghiệp xây dựng ứng dụng và website bán hàng Báo cáo đồ án tốt nghiệp xây dựng ứng dụng và website bán hàng Báo cáo đồ án tốt nghiệp xây dựng ứng dụng và website bán hàng

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

Giảng viên hướng dẫn: Ths Nguyễn Hải Dương

HÀ NỘI 12/2022

Trang 2

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

1 Thông tin về sinh viên:

Họ và tên sinh viên: Lê Anh Tuấn

Điện thoại liên lạc: 0328866625 Email: tuan223463@nuce.edu.vnLớp: 63IT3 Hệ đào tạo: Đại học Năm tốt nghiệp: 2023

Đồ án tốt nghiệp được thực hiện tại: Đại học Xây Dựng Hà Nội

Thời gian làm ĐATN: Từ ngày 19/09/2022 đến 31/12/2022

2 Mục đích nội dung của ĐATN:

- Xây dựng ứng dụng trên hệ điều hành Android và website, cho phép người dùng mua hàng online

3 Các nhiệm vụ cụ thể của ĐATN:

- Tìm hiểu các yêu cầu của một ứng dụng, website bán hàng ; đưa ra các tính năng cần thiết

- Tìm hiểu Android Jetpack

- Tìm hiểu Restful API trong laravel

- Phân tích yêu cầu

- Thực hiện yêu cầu

- Cài đặt hệ thống

4 Lời cam đoan của sinh viên:

Tôi – Lê Anh Tuấn – cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới

sự hướng dẫn của Ths.Nguyễn Hải Dương.

Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép của bất kỳ côngtrình nào khác

Hà Nội, ngày 26 tháng 12 năm 2022

Tác giả ĐATN

Lê Anh Tuấn

Trang 3

5 Xác nhận của giảng viên hướng dẫn về mức độ hoàn thành ĐATN và cho phép bảo vệ:

Hà Nội, ngày…tháng…năm 202…

Giảng viên hướng dẫn

Ths Nguyễn Hải Dương

Trang 4

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP

I Nội dung đồ án:

1 Tìm hiểu bài toán xây dựng ứng dụng, website bán hàng:

- Tìm hiểu xu hướng và lợi thế của việc mua hàng online thông qua ứng dụng

và website

- Lưu trữ các thông tin mua hàng trên server theo từng tài khoản người dùng

2 Tìm hiểu về bộ thư viện Jetpack trong Android

3 Tìm hiểu về Restful Api trong Laravel

4 Phân tích và thiết kế toàn bộ hệ thống ứng dụng, website bán hàng:

- Khảo sát, phân tích và xây dựng tài liệu đặc tả yêu cầu của toàn bộ hệ thống

II Nội dung các chương trình bày trong báo cáo:

- Chương 1: Đặt vấn đề và định hướng giải pháp

- Chương 2: Tìm hiểu hệ điều hành Android và bộ thư viện Jetpack

- Chương 3: Tìm hiểu về Restful Api trong Laravel

- Chương 4: Tìm hiểu về TypeScript với React

- Chương 5: Phân tích thiết kế và cài đặt hệ thống

- Chương 6: Kết luận và định hướng phát triển

III Từ khóa tìm kiếm:

1 Android Jetpack

2 TypeScript

3 API

Trang 5

ABSTRACT OF THESIS

I Content of thesis:

1 Learn the problem of building a sales website and application:

- Learn the trends and advantages of buying online through apps and websites

- Store purchase information on the server according to each user account

2 Learn about Jetpack libraries in Android

3 Learn about Restful Api in Laravel

4 Analyze and design the entire application system, sales website:

- Investigate, analyze and develop requirements specification documents of theentire system

II Content of the chapters presented in the report:

- Chapter 1: Problem setting and solution orientation

- Chapter 2: Learn the Android operating system and the Jetpack library

- Chapter 3: Learn about Laravel

- Chapter 4: Learn about TypeScript with React

- Chapter 5: System analysis and design

- Chapter 6: Conclusion and development direction

III Search keywords:

1 Android Jetpack

2 TypeScript

3 API

Trang 6

LỜI CẢM ƠN

Để đề tài đồ án tốt nghiệp này đạt kết quả tốt đẹp, em đã nhận được sự hỗ trợ, giúp đỡ rất nhiều của các tổ chức, cá nhân Với tình cảm sâu sắc, chân thành, cho phép em xin được bày tỏ lòng biết ơn đến tất cả các cá nhân và tổ chức đã tạo điều kiện giúp đỡ trong quá trình học tập và nghiên cứu đề tài.

Trước hết, em xin gửi tới các thầy cô của khoa Công nghệ thông tin nói riêng

và các thầy cô trường Đại học Xây Dựng Hà Nội nói chung lời cảm ơn sâu sắc nhất Với sự quan tâm, dạy dỗ, chỉ bảo tận tình, chu đáo của các thầy cô trong suốt 4 năm đại học, đến nay em đã có thể hoàn thành đồ án tốt nghiệp với đề tài:

“Xây dựng ứng dụng và website bán hàng”.

Đặc biệt, em xin gửi lời cảm ơn chân thành nhất tới thầy giáo – Ths Nguyễn Hải Dương đã tận tình hướng dẫn em thực hiện và hoàn thành tốt đồ án này Trong thời gian được làm việc với thầy, em đã được học hỏi thêm nhiều kiến thức và kinh nghiệm làm việc Những kinh nghiệm này chắc chắn sẽ có ích cho bản thân em sau khi ra trường

Sau cùng là lời cảm ơn tới các bạn cùng lớp 63IT đã gắn bó và giúp đỡ em trong suốt những năm học tại trường cũng như trong quá trình làm và hoàn thiện

đề tài đồ án tốt nghiệp này

Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của một sinh viên,

đồ án này không thể tránh khỏi những thiếu sót Em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các thầy cô để em có điều kiện bổ sung, nâng cao ý thức cũng như phát triển bản thân, phục vụ tốt cho công tác thực tế sau này.

Em xin chân thành cảm ơn!

Hà Nội, ngày 30 tháng 12 năm 2022

Sinh viên thực hiện đồ án

Lê Anh Tuấn

Trang 7

MỤC LỤC

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 1

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 3

ABSTRACT OF THESIS 4

LỜI CẢM ƠN 5

MỤC LỤC 6

DANH MỤC HÌNH ẢNH 12

CHƯƠNG 1 – ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP 14

I Giới thiệu bài toán 14

II Mục tiêu đề tài 14

III Các vấn đề cần giải quyết 14

1 Nội dung đồ án 14

2 Công nghệ sử dụng 15

CHƯƠNG 2 – TÌM HIỂU VỀ HỆ ĐIỀU HÀNH ANDROID VÀ BỘ THƯ VIỆN JETPACK 16

I Tổng quan về hệ điều hành Android 16

1 Hệ điều hành 16

2 Hệ điều hành Android 16

3 Kiến trúc của hệ điều hành Android 17

4 Giao diện Android 18

5 Ứng dụng Android 18

6 Ưu, nhược điểm của hệ điều hành Android 18

II Bộ thư viện Jetpack 19

1 Một số components trong Jetpack 19

1.1 Data Binding 19

1.2 ViewModel 20

1.3 LiveData 22

1.4 Paging 23

Trang 8

1.5 WorkManager 23

2 Ưu điểm của Android Jetpack 24

2.1 Tính “mở” 24

2.2 Tính tương thích ngược 24

2.3 Dễ dàng testing 24

2.4 Các component độc lập với nhau 24

CHƯƠNG 3-TÌM HIỂU VỀ RESTFUL API TRONG LARAVEL 25

I Các method trong http 25

II URL Trong Restful API 26

III Các status code http cần biết 26

CHƯƠNG 4-TÌM HIỂU VỀ TYPESCRIPT TRONG REACT 28

I Tổng quan về TypeScript 28

II Ưu nhược điểm của TypeScript 28

1 Ưu điểm: 28

2 Nhược điểm: 28

III Cài đặt 29

CHƯƠNG 5- PHÂN TÍCH THIẾT KẾ VÀ CÀI ĐẶT HỆ THỐNG 30

I Phân tích chức năng hệ thống 30

1 Biểu đồ Use Case tổng quát 30

2 Biểu đồ Use Case chi tiết 30

2.1 Xem danh sách sản phẩm nổi bật 30

2.1.1 Biểu đồ 30

2.1.2 Đặc tả 30

2.2 Tìm kiếm sản phẩm 31

2.2.1 Biểu đồ 31

2.2.2 Đặc tả 31

2.3 Xem chi tiết sản phẩm 32

2.3.1 Biểu đồ 32

Trang 9

2.3.2 Đặc tả 32

2.4 Đăng ký 32

2.4.1 Biểu đồ 32

2.4.2 Đặc tả 33

2.5 Đăng nhập, Đăng xuất 33

2.5.1 Biểu đồ 33

2.5.2 Đặc tả 34

2.6 Quản lý hồ sơ cá nhân 35

2.6.1 Biểu đồ 35

2.6.2 Đặc tả 35

2.7 Quản lý giỏ hàng 36

2.7.1 Biểu đồ 36

2.7.2 Đặc tả 36

2.8 Quản lý đơn hàng 37

2.8.1 Biểu đồ 37

2.8.2 Đặc tả 37

2.9 Quản lý đơn hàng (Bên quản lý) 38

2.9.1 Biểu đồ 38

2.9.2 Đặc tả 38

2.10 Quản lý sản phẩm 39

2.10.1 Biểu đồ 39

2.10.2 Đặc tả 40

2.11 Quản lý tài khoản 40

2.11.1 Biểu đồ 40

2.11.2 Đặc tả 41

2.12 Quản lý thống kê 41

2.12.1 Biểu đồ 41

2.12.2 Đặc tả 41

Trang 10

3 Sequence Diagram 42

3.1 Quản lý sản phẩm 42

3.2 Thêm tài khoản 43

3.3 Giỏ hàng 43

3.4 Sủa thông tin cá nhân 44

3.5 Thêm giỏ hàng 44

3.6 Xem danh sách sản phẩm nổi bật 45

3.7 Tìm kiếm sản phẩm 45

3.8 Xem chi tiết sản phẩm 46

3.9 Xem thông tin cá nhân 46

3.10 Đăng nhập 47

3.11 Đăng ký 47

4 Biểu đồ lớp 48

4.1 Biểu đồ lớp của hệ thống 48

4.2 Biểu đồ lớp thực thể của hệ thống 49

5 Biểu đồ hoạt động 50

5.1 Đăng nhập 50

5.2 Đăng ký 51

5.3 Đăng xuất 52

5.4 Tìm kiếm sản phẩm 53

5.5 Xem chi tiết sản phẩm 54

5.6 Quản lý hồ sơ cá nhân 55

5.7 Quản lý đơn hàng 56

5.8 Quản lý giỏ hàng 57

5.9 Quản lý sản phẩm 58

5.10 Quản lý tài khoản 59

5.11 Quản lý đơn hàng (bên quản lý) 60

5.12 Quản lý thống kê 61

Trang 11

II Xây dựng cơ sở dữ liệu 61

1 Bảng Users 62

2 Bảng Role 62

3 Bảng Access_Token 63

4 Bảng Products 63

5 Bảng Brands 64

6 Bảng Product_Type 64

7 Bảng Cart 64

8 Bảng Orders 65

9 Bảng Order_Product 65

10 Sơ đồ quan hệ giữa các bảng 66

III Giao diện ứng dụng 67

1 Giao diện màn hình Trang chủ 67

2 Giao diện màn hình Menu 68

3 Giao diện màn hình Chi tiết sản phẩm 70

4 Giao diện màn hình Giỏ hàng 71

5 Giao diện màn hình Tìm kiếm 74

6 Giao diện màn hình Thông tin cá nhân 77

7 Giao diện màn hình Đơn hàng 85

8 Giao diện màn hình Đăng nhập 88

9 Giao diện màn hình Đăng ký 89

IV Giao diện website 90

1 Giao diện của người dùng 90

1.1 Giao diện màn hình Trang chủ 90

1.2 Giao diện màn hình Chi tiết sản phẩm 90

1.3 Giao diện màn hình Giỏ hàng 91

1.4 Giao diện màn hình Tìm kiếm 91

1.5 Giao diện màn hình Thông tin cá nhân 92

Trang 12

1.6 Giao diện màn hình Đăng nhập 93

1.7 Giao diện màn hình Đăng ký 93

2 Giao diện của admin 94

2.1 Giao diện Trang chủ 94

2.2 Giao diện Quản lý đơn hang 94

2.3 Giao diện Quản lý sản phẩm 95

CHƯƠNG 6 – KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 96

I Kết quả thực hiện 96

II Định hướng phát triển 96

TÀI LIỆU THAM KHẢO 97

Trang 13

DANH MỤC HÌNH ẢNH

Hình 1 Android là gì? 16

Hình 2 Kiến trúc của hệ điều hành Android 17

Hình 3 Ứng dụng của DataBinding 20

Hình 4 Mối liên hệ giữa View và ViewModel 21

Hình 5 Ứng dụng của LiveData trong mô hình MVVM 22

Hình 6 Sơ đồ mô tả hoạt động của Rest Api 25

Hình 7.Sơ đồ mô tả gửi Request và nhận Response qua http method 26

Hình 8 Biểu đồ Use case tổng quát 30

Hình 9 Biểu đồ Use case cho chức năng Xem sản phẩm nổi bật 30

Hình 10 Biểu đồ Use case cho chức năng Tìm kiếm sản phẩm 31

Hình 11 Biểu đồ Use case cho chức năng Xem chi tiết sản phẩm 32

Hình 12 Biểu đồ Use case cho chức năng Đăng ký 32

Hình 13 Biểu đồ Use case cho chức năng Đăng nhập 33

Hình 14 Biểu đồ Use case cho chức năng Đăng xuất 34

Hình 15 Biểu đồ Use case cho chức năng Quản lý hồ sơ cá nhân 35

Hình 16 Biểu đồ Use case cho chức năng Quản lý giỏ hàng 36

Hình 17 Biểu đồ Use case cho chức năng Quản lý đơn hàng 37

Hình 18 Biểu đồ Use case cho chức năng Quản lý đơn hàng (admin) 38

Hình 19 Biểu đồ Use case cho chức năng Quản lý sản phẩm 39

Hình 20 Biểu đồ Use case cho chức năng Quản lý tài khoản 40

Hình 21 Biểu đồ Use case cho chức năng Thống kê 41

Hình 22 Biểu đồ Sequence cho chức năng Quản lý sản phẩm 42

Hình 23 Biểu đồ Sequence cho chức năng Đăng ký 43

Hình 24 Biểu đồ Sequence cho chức năng Quản lý giỏ hàng 43

Hình 25 Biểu đồ Sequence cho chức năng Sửa thông tin cá nhân 44

Hình 26 Biểu đồ Sequence cho chức năng Thêm giỏ hàng 44

Hình 27 Biểu đồ Sequence cho chức năng Xem danh sách sản phẩm nổi bật 45

Hình 28 Biểu đồ Sequence cho chức năng Tìm kiếm sản phẩm 45

Hình 29 Biểu đồ Sequence cho chức năng Xem chi tiết sản phẩm 46

Hình 30 Biểu đồ Sequence cho chức năng Xem thông tin cá nhân 46

Hình 31 Biểu đồ Sequence cho chức năng Đăng nhập 47

Hình 32 Biểu đồ Sequence cho chức năng Đăng ký 47

Hình 33 Biểu đồ Class của hệ thống 48

Hình 34 Biểu đồ Class thực thể của hệ thống 49

Hình 35 Biểu đồ Activity cho chức năng Đăng nhập 50

Hình 36 Biểu đồ Activity cho chức năng Đăng ký 51

Hình 37 Biểu đồ Activity cho chức năng Đăng xuất 52

Hình 38 Biểu đồ Activity cho chức năng Tìm kiểm sản phẩm 53

Hình 39 Biểu đồ Activity cho chức năng Xem chi tiết sản phẩm 54

Hình 40 Biểu đồ Activity cho chức năng Quản lý hồ sơ cá nhân 55

Hình 41 Biểu đồ Activity cho chức năng Quản lý đơn hàng 56

Hình 42 Biểu đồ Activity cho chức năng Quản lý giỏ hàng 57

Hình 43 Biểu đồ Activity cho chức năng Quản lý sản phẩm 58

Hình 44 Biểu đồ Activity cho chức năng Quản lý tài khoản 59

Hình 46 Biểu đồ Activity cho chức năng Quản lý đơn hàng (admin) 60

Hình 47 Biểu đồ Activity cho chức năng Quản lý thống kê 61

Trang 14

Hình 48 Code tạo bảng User 62

Hình 49 Code tạo bảng Role 62

Hình 50 Code tạo bảng Access_Token 63

Hình 51 Code tạo bảng Products 63

Hình 52 Code tạo bảng Brands 64

Hình 53 Code tạo bảng Product_Type 64

Hình 54 Code tạo bảng Cart 64

Hình 55 Code tạo bảng Orders 65

Hình 56 Code tạo bảng Order_Product 65

Hình 57 Sơ đồ liên kết giữa các bảng 66

Hình 58 Giao diện Trang chủ 67

Hình 59 Giao diện Menu khi chưa login 68

Hình 60 Giao diện Menu khi đã login 69

Hình 61 Giao diện Chi tiết sản phẩm 70

Hình 62 Giao diện Giỏ hàng 71

Hình 63 Giao diện Giỏ hàng khi không có sản phẩm 72

Hình 64 Giao diện Giỏ hàng khi lỗi kết nối 73

Hình 65 Giao diện Tìm kiếm 74

Hình 66 Giao diện hiển thị kết quả tìm kiếm 75

Hình 67 Giao diện hiển thị không có kết quả tìm kiếm 76

Hình 68 Giao diện Thông tin cá nhân 77

Hình 69 Giao diện chỉnh sửa tên 78

Hình 70 Giao diện Thay đổi mật khẩu 79

Hình 71 Giao diện Chỉnh sửa giới thiệu bản thân 80

Hình 72 Giao diện Thêm số điện thoại 81

Hình 73 Giao diện Chỉnh sửa số điện thoại 82

Hình 74 Giao diện Chỉnh sửa địa chỉ liên hệ 83

Hình 75 Giao diện Chỉnh sửa ngày sinh, giới tính 84

Hình 76 Giao diện Đơn hàng 85

Hình 77 Giao diện Chi tiết đơn hàng 86

Hình 78 Giao diện không có đơn hàng 87

Hình 79 Giao diện Đăng nhập 88

Hình 80 Giao diện Đăng ký 89

Hình 81 Giao diện Trang chủ 90

Hình 82 Giao diện Chi tiết sản phẩm 90

Hình 83 Giao diện Giỏ hàng 91

Hình 84 Giao diện Tìm kiếm 91

Hình 85 Giao diện Thông tin cá nhân 92

Hình 86 Giao diện Thông tin tài khoản 92

Hình 87 Giao diện Đăng nhập 93

Hình 88 Giao diện Đăng ký 93

Hình 89 Giao diện Trang chủ 94

Hình 90 Giao diện Quản lý đơn hàng 94

Hình 91 Giao diện thông tin đơn hàng 94

Hình 92 Giao diện Quản lý sản phẩm 95

Hình 93 Giao diện Chỉnh sửa sản phẩm 95

Trang 15

CHƯƠNG 1 – ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI

PHÁP

I Giới thiệu bài toán

- Hàng ngày, ai trong mỗi chúng ta cũng có những nhu cầu thiết yếu như : ăn uống, mua sắm,giải trí, thư giãn, … và để đáp ứng những nhu cầu đó, chúng ta cần phải trực tiếp tới các trungtâm cung cấp những nhu cầu đó

- Thế giới ngày càng hiện đại cùng với đó là sự phát triển của internet ở khắp nơi trên thế giới,vậy nên việc có một chiếc điện thoại thông minh hay một chiếc laptop cá nhân là vô cùng cầnthiết đối với mỗi người để phục vụ những nhu cầu cá nhân một cách đơn giản, tiện lợi vànhanh chóng

- Nắm bắt được điều đó Tech Shop ra đời để đem những sản phẩm điện thoại thông minh củacác hãng nổi tiếng thế giới như iphone, samsung, nokia, dell, asus, hp, mac….tiếp cận tớingười dùng

- Ngày nay, việc mua sắm online dường như đã trở thành thói quen và sở thích của mỗi người

vì sự tiện lợi của nó Vậy nên việc bán hàng qua mạng chính là xu thế tất yếu và là lựa chọnbắt buộc với cá nhân hay doanh nghiệp Đó là lí do app và website của Tech Shop ra đời Mụctiêu của việc xây dựng ứng dụng và trang web này là giúp cho khách hàng có thể dễ dàng muasản phẩm từ xa thông qua internet Ở bất kì đâu, chỉ cần có internet là khách hàng đã có thểchọn cho mình sản phẩm ưng ý phù hợp với nhu cầu sử dụng của mình Với hệ thống tìm kiếm

dễ dàng, giao diện thân thiện với người dùng, thông tin sản phẩm đầy đủ, chính xác Kháchhàng ghé qua có thể thoải mái xem sản phẩm, khi mua hàng thì cần phải có tài khoản để thựchiện việc thanh toán

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

Mục tiêu đề tài nhằm xây dựng ứng dụng và website bán hàng đơn giản Đây là hệ thống cho phép trợ những người quan tâm sản phẩm công nghệ có thể tham khảo và mua sắm các thiết bị công nghệ như máy tính, điện thoại Ứng dụng chạy trên nền tảng Android với việc cài đặt hoàn toàn dễ dàng Người dùng có thể sử dụng các chức năng ngay sau khi cài đặt

mà không cần yêu cầu gì thêm Ứng dụng và website với giao diện đẹp và dễ hiểu giúp khách hàng có thể dễ dàng sử dụng

III Các vấn đề cần giải quyết

1 Nội dung đồ án

Sau khi nắm được xu hướng mua sắm online cũng như việc tìm hiểu bài toán, ứng dụng vàwebsite tôi muốn xây dựng gồm các nội dung chính sau:

Trang 16

- Người dùng có thể đăng ký tài khoản để được mua sắm và hưởng các ưu đãi , thông tin

sẽ được lưu vào quản lý người dùng, và đăng nhập khi cần sử dụng tải khoản

- Có thể tìm kiểm các món đồ mình quan tâm

- Xem chi tiết các sản phẩm đang quan tâm

- Thêm sản phẩm vào giỏ hàng , có thể thêm số lượng và lưu lại ở giỏ hàng sản phẩm

- Quản lý thông tin các đơn hàng của người dùng

- Ở trang quản lý sẽ quản lý sản phẩm, xử lý các đơn hàng đã được gửi về từ hệ thống

2 Công nghệ sử dụng

a Phần mềm hỗ trợ phân tích thiết kế hệ thống:

- Microsoft Word : Viết tài liệu đặc tả hệ thống

- Visual Paradigm : Vẽ các biểu đồ Use case, Sequence, Class và Activity

b Công cụ xây dựng hệ thống:

- Android Studio: Viết source code và chạy ứng dụng

- Php Storm : Viết source code , chạy website và chạy api

Trang 17

CHƯƠNG 2 – TÌM HIỂU VỀ HỆ ĐIỀU HÀNH

ANDROID VÀ BỘ THƯ VIỆN JETPACK

I Tổng quan về hệ điều hành Android

1 Hệ điều hành

Hệ điều hành là một phần mềm dùng để điều hành, quản lý các thiết bị phần cứng và các tài nguyên phần mềm Hệ điều hành đóng vai trò trung gian trong việc giao tiếp giữa người sử dụng và phần cứng của máy, cung cấp một môi trường cho phép người sử dụng phát triển và thực hiện các ứng dụng của họ một cách dễ dàng.

2 Hệ điều hành Android

Hình 1 Android là gì?

Hệ điều hành Android được khai sinh bởi Android Inc, một công ty phần mềm tại Thung lũng Silicon trước khi Google mua lại nó vào năm 2005 Các nhà phân tích và đầu tư điện tử đã đưa ra nhiều hoài nghi về ý định gia nhập vào thị trường điện thoại của Google sau thương vụ mua bán này Bất chấp những nghi vấn đó, vào năm 2007, Google công bố triển

khai thiết bị Android đầu tiên trên thị trường và ra chính thức ra mắt sản phẩm vào năm 2008.

Trang 18

Kể từ đó, Android đã mở đường cho các nhà phát triển phần mềm và ứng dụng sử

dụng công nghệ Android để phát triển các ứng dụng di động, được phân phối qua các cửa

hàng ứng dụng như Google Play Do được phát triển dưới trướng Google, người dùng Android

có cơ hội kết nối các thiết bị di động của họ với các sản phẩm khác của Google như bộ nhớ đám mây, các nền tảng email và các dịch vụ video. 

Là một hệ điều hành với mã nguồn mở, Android tạo điều kiện cho các nhà phát triển ứng dụng thiết bị, mạng di động và các lập trình viên được thỏa sức điều chỉnh và phân phối Android một cách tự do, không ràng buộc Đây chính là một trong những lý do giúp hệ điều hành này chiếm lĩnh thị phần hệ điều hành điện thoại di động trên toàn thế giới

3 Kiến trúc của hệ điều hành Android

Hình 2 Kiến trúc của hệ điều hành Android

Linux kernel: Đây là nhân nền tảng mà hệ điều hành Android dựa vào nó để phát

triển Đâu là lớp chứa tất cả các thiết bị giao tiếp ở mức thấp dùng để điều khiển các phần cứng khác trên thiết bị Android

Libraries: Chứa tất cả các mã - cái mà cung cấp cấp những tính năng chính của hệ

điều hành Android, đôi với ví dụ này thì SQLite là thư viện cung cấp việc hộ trợ làm việc với database dùng để chứa dữ liệu Hoặc Webkit là thư viện cung cấp những tính năng cho trình duyệt Web

Trang 19

Android runtime: Trong Android Runtime, có các thư viện lõi và DVM (Máy ảo

Dalvik) chịu trách nhiệm chạy ứng dụng Android DVM giống như JVM nhưng nó được tối

ưu hóa cho các thiết bị di động Nó tiêu thụ ít bộ nhớ hơn và cung cấp hiệu suất nhanh

Android framework: Là phần thể hiện các khả năng khác nhau của Android(kết nối,

thông báo, truy xuất dữ liệu) cho nhà phát triển ứng dụng, chúng có thể được tạo ra để sử dụngtrong các ứng dụng của họ

Applications: Tầng ứng dụng là tầng bạn có thể tìm thấy các ứng dụng thiết bị

Android như Contact, trình duyệt…Và mọi ứng dụng bạn viết đều nằm trên tầng này

4 Giao diện Android

Khi người dùng khởi động thiết bị, hệ điều hành Android sẽ hiển thị một màn hình chính bao gồm các biểu tượng ứng dụng (app) và các tiện ích (Widget) Các tiện ích là các màn hình thông tin tự cập nhập nội dung như thời tiết hoặc tin tức Màn hình chính có thể khác nhau dựa trên sản xuất của mỗi thiết bị. 

Người dùng cũng có thể thay đổi giao diện, chủ đề mặc định trên màn hình chính thông qua các ứng dụng của bên thứ ba trên Google Play Thanh trạng thái phía trên màn hình chính hiển thị các thông tin về thiết bị và khả năng kết nối của nó, chẳng hạn như mạng Wifi, Bluetooth, đèn pin, Người dùng có thể kéo thanh trạng thái xuống bằng một cú vuốt ngón tay để xem màn hình  thông báo

5 Ứng dụng Android

Do có thêm ứng dụng từ các bên thứ ba, kho ứng dụng của Android ngày càng trở nên phong phú và tiện lợi cho người dùng Với 2,9 triệu ứng dụng trên hệ điều hành này, người dùng có thể thoải mái lựa chọn các ứng dụng phù hợp với nhu cầu sử dụng của mình.  

Hiện nay, người dùng có thể lựa chọn giữa các ứng dụng trả phí và miễn phí Tuy nhiên, số lượng các ứng dụng trả phí trên hệ điều hành Android không nhiều

6 Ưu, nhược điểm của hệ điều hành Android

Về ưu điểm, người dùng hệ điều hành Android có khả năng tùy chỉnh và thay thế tất cả mọi thứ mà không bị giới hạn bởi Google Với các nhà phát triển ứng dụng và các lập trình viên, họ có thể dễ dàng điều chỉnh và phân phối ứng dụng trên Android Chi phí hiệu quả, giá thành phải chăng, có thể dễ dàng truy cập và thân thiện với người dùng cũng là những điểm sáng của hệ điều hành này.

Về nhược điểm, hệ điều hành với mã nguồn mở là “con dao hai lưỡi” cho người sử dụng Android, các ứng dụng giả mạo, bảo mật thấp, dễ bị lấy cắp thông tin là những nguy cơ mà người dùng phải đối mặt khi sử dụng Android Đồng thời, khả năng cập nhập hệ điều hành chậm chạp, do vậy không phải thiết bị nào của Android cũng có thể sử dụng hoặc nâng cấp hệ điều hành mới nhất Nếu

Trang 20

người dùng muốn trải nghiệm hệ điều hành Android mới nhất, cách duy nhất họ

có thể làm là đổi qua các thiết bị khác.

II Bộ thư viện Jetpack

Jetpack là một tập hợp các software components Android giúp bạn phát triển các ứng dụng Android tuyệt vời dễ dàng hơn Các thành phần này giúp bạn thực hiện theo các phương pháp hay nhất, giải phóng bạn khỏi viết mã soạn sẵn và đơn giản hóa các tác vụ phức tạp, vì vậy bạn có thể tập trung vào mã mà bạn quan tâm

Jetpack bao gồm các thư viện gói androidx *, Không được gộp vào các API platforms Điều này có nghĩa là nó cung cấp khả năng tương thích ngược và được cập nhật thường xuyên hơn nền tảng Android, đảm bảo bạn luôn có quyền truy cập vào các phiên bản mới nhất và tuyệt vời nhất của các thành phần Jetpack

Có thể phân loại Android Jetpack thành 4 thành phần chính:

-Foumdation components (Ví dụ: ktx, appcompat, multidex, test)

-Architecture components (Ví dụ: Data Binding, Lifecycles, ViewModel, Livedata, Room, Paging, Navigation, WorkManager)

-Behavior components (Ví dụ: Download manager, Media, Notifications, Permissions,

Sharing, Slices)

-UI components (Ví dụ: Animations, Auto, Emoji, Fragment, Layout, Palette, TV, Wear OS )

1 Một số components trong Jetpack

1.1 Data Binding

Data Binding là một thư viện được tích hợp trong gói Android Jetpack

Nó cho phép liên kết giữa dữ liệu logic với các UI Element ( ví dụ như : TextView,

EditText, ImageView…)

Khác với việc sử dụng findByViewId:

 Data binding tạo ra đối tượng ràng buộc tại thời điểm compile cho tất cả các view trong layout

 findViewByld thì sẽ duyệt qua các view trong thời điểm runtime khi chúng được gọi

 Các view được truy cập thông qua đối tượng Binding sẽ hiệu quả hơn so với việc sửdụng findViewByld

Trang 21

 Với các layout có cấu trúc phức tạp, việc sử dụng Databinding có thể tăng hiệu suấtmột cách đáng kể.

Hình 3 Ứng dụng của DataBinding

1.2 ViewModel

ViewModel  là một class có trách nhiệm chuẩn bị và quản lý dữ liệu cho một UI component (cóthể là Activity hoặc Fragment) Nó cũng cung cấp cách để dễ dàng giao tiếp giữa activity và fragment hoặc giữa các fragment với nhau

ViewModel  luôn được tạo trong cùng một phạm vi (một fragment hoặc một activity) và sẽ được giữ lại cho đến khi phạm vi đó còn "sống" Hay nói cách khác là ViewModel  sẽ không bịdestroyed khi activity hoặc fragment của nó bị destroyed bởi một configuration change (ví dụ như việc xoay màn hình) Instance mới của các owner này sẽ chỉ kết nối lại với ViewModel  hiện có của nó

Trang 22

Hình 4 Mối liên hệ giữa View và ViewModel

Mục đích chính của ViewModel  đó là lấy và giữ thông tin cần thiết cho activity và fragment Bên cạnh đó, activity và fragment có thể quan sát được sự thay đổi trong ViewModel  thông qua việc sử dụng LiveData hoặc DataBinding

ViewModel chỉ có trách nhiệm quản lý data cho UI cho nên nó không bao giờ truy cập vào view hierarchy hoặc giữ tham chiếu đến activity hoặc fragment

Chúng ta sẽ bắt đầu với việc tìm hiểu về lợi ích của việc sử dụng ViewModel

*Lợi ích

1 ViewModel tồn tại khi quay màn hình hoặc các configuration change khác

2 ViewModel vẫn running trong khi activity đang trong back stack

3 ViewModel là lifecycle-aware

4 ViewModel với sự hỗ trợ của LiveData có thể phản ứng lại sự thay đổi của UI Mỗi khidata thay đổi, UI sẽ được cập nhật dựa trên sự quan sát LiveData với data hiện tại trong ViewModel

Trang 23

5 ViewModel dễ dàng hiểu và dễ testing.

1.3 LiveData

LiveData là một lớp lưu giữ dữ liệu có thể quan sát Không như một lớp có thể quan sát thông thường, LiveData có tính năng nhận biết được vòng đời, nghĩa là tính năng này tuân theo vòngđời của các thành phần khác trong ứng dụng, chẳng hạn như các hoạt động, mảnh hoặc dịch

vụ Khả năng nhận biết này đảm bảo rằng LiveData chỉ cập nhật những trình quan sát thành phần của ứng dụng ở trạng thái vòng đời đang hoạt động

Hình 5 Ứng dụng của LiveData trong mô hình MVVM

LiveData có thể được sửa đổi bởi ViewModels (hoặc bất cứ điều gì bạn muốn sử dụng để sửa đổi liveData)

Sau khi cập nhật, nó sẽ thông báo cho tất cả những người quan sát nó (activities, fragment, service v.v.) Tuy nhiên, không giống như bất kỳ cách tiếp cận nào khác (ví dụ: Rxjava), nó không thông báo mù quáng cho tất cả bọn chúng, thay vào đó nó kiểm tra 'trạng thái sống' của bọn chúng trước

Trang 24

Nếu người quan sát đang hoạt động, thì nó có thể được thông báo về sự thay đổi dữ liệu trong LiveData Tuy nhiên, nếu Người quan sát bị Tạm dừng hoặc Bị hủy, thì nó sẽ không được thông báo.

Điều này thật tuyệt, vì chúng ta không còn phải lo lắng về việc hủy đăng ký nó trên onPause hoặc onDestroy

Ngoài ra, một khi Observer được nối lại, nó sẽ được thông báo ngay lập tức về dữ liệu mới nhất

từ LiveData

1.4 Paging

Thư viện Paging giúp bạn tải và hiển thị các trang dữ liệu của một tập dữ liệu lớn hơn từ bộ nhớ cục bộ hoặc qua mạng Phương pháp này cho phép ứng dụng sử dụng cả băng thông mạng

và tài nguyên hệ thống một cách hiệu quả hơn Các thành phần của thư viện Paging được thiết

kế để phù hợp với cấu trúc ứng dụng Android được đề xuất, tích hợp mượt mà với các thành phần khác của Jetpack, và cung cấp khả năng hỗ trợ Kotlin hàng đầu

*Lợi ích của việc sử dụng thư viện Paging

Thư viện Paging bao gồm các tính năng sau:

 Chức năng lưu dữ liệu được phân trang vào bộ nhớ đệm trong bộ nhớ Chức năng này đảm bảo rằng ứng dụng sử dụng tài nguyên hệ thống một cách hiệu quả trong khi làm việc với dữ liệu được phân trang

 Chức năng loại bỏ yêu cầu trùng lặp tích hợp sẵn, đảm bảo rằng ứng dụng sử dụng băng thông mạng và tài nguyên hệ thống một cách hiệu quả

 Các bộ chuyển đổi RecyclerView có thể định cấu hình sẽ tự động yêu cầu dữ liệu khi người dùng cuộn đến cuối dữ liệu đã tải

 Khả năng hỗ trợ hàng đầu cho các coroutine và Flow Kotlin, cũng như LiveData và RxJava

 Tính năng hỗ trợ được tích hợp sẵn để xử lý lỗi, bao gồm khả năng làm mới và thử lại

Trang 25

WorkManager cung cấp một API có khả năng làm việc trên các thiết bị có hoặc không có Google Play Services.

Ngoài ra, WorkManager còn có khả năng tạo biểu đồ công việc và truy vấn trạng thái công việc của bạn

2 Ưu điểm của Android Jetpack

2.1 Tính “mở”

Để hiểu kỹ hơn và trả lời câu hỏi Android Jetpack là gì? thì hãy xem xét: Các Android Jetpack components được cung cấp dưới dạng các thư viện “mở”, không phải là một phần của nền tảng Android cơ bản Điều này có nghĩa là bạn có thể dễ dàng áp dụng từng component

Mỗi khi Android Jetpack có thêm một tính năng mới, bạn có thể dễ dàng thêm nó vào trong ứng dụng của mình, triển khai ứng dụng trên Play Store và cung cấp cho người dùng tất

cả các tính năng mới chỉ trong một ngày Các thư viện mở sẽ được chuyển vào androidx.* namespace mới

2.2 Tính tương thích ngược

Ngoài ra, ứng dụng của bạn có thể chạy mượt mà trên nhiều phiên bản của Android mà không lo lắng về tính tương thích Tại sao ư?

Vì đơn giản là Android Jetpack được xây dựng dựa trên Support Library

Mà các thư viện này được các nhà phát triển Android tạo ra để cung cấp các chức năng độc lập với các phiên Android, và có tính tương thích ngược rất tốt.

Ví dụ như: Ứng dụng của bạn sử dụng Fragment mà lại muốn hỗ trợ Android 3.0 trở xuống? Chính là lúc bạn nghĩ tới Support Library đấy.

2.3 Dễ dàng testing

Hơn nữa, Android Jetpack còn có thiết kế rất tốt cho việc testing Nó tách biệt giữa phần chức năng và phần test Điều này giúp bạn dễ dàng kiểm tra, nâng cao chất lượng ứng dụng.

2.4 Các component độc lập với nhau

Mặc dù các components của Android Jetpack được xây dựng để hoạt động cùng nhau

Ví dụ: lifecycle awareness và live data

Tuy nhiên, bạn không phải bắt buộc phải sử dụng tất cả chúng Bạn có thể tích hợp từng phần của Android Jetpack để giải quyết một vấn đề của bạn Điều này giúp cho ứng dụngtrở nên nhẹ nhàng

Trang 26

CHƯƠNG 3-TÌM HIỂU VỀ RESTFUL API TRONG

Method GET: được dùng để diễn tả hành động muốn xem chi tiết 1 tài nguyên hoặc lấy danh sách tài nguyên trên server

Method POST: được dùng để diễn tả hành động muốn thêm 1 tài nguyên mới trên server.Method PUT: được dùng để diễn tả hành động muốn cập nhật 1 tài nguyên đang có trên server

Method DELETE: được dùng để diễn tả hành động muốn xóa 1 tài nguyên đang có trên server

Trang 27

Hình 7.Sơ đồ mô tả gửi Request và nhận Response qua http method

II URL Trong Restful API

Restful API quản lý tài nguyên thông qua các URL (địa chỉ web) Bạn xem ví dụ sau để rõ hơn:

Lấy resource từ server, URL sử dụng như sau:

GET http://n19hieu.com/api/products => trả về danh sách các product

GET http://n19hieu.com/products/1 => trả về product có id là 1

Khi cần tạo mới một resource trên server, sử dụng URL như sau:

Ở trên, products là tài nguyên cần quản lý còn 1 là id của tài nguyên

III Các status code http cần biết

Khi request đến một API server, Bạn sẽ nhận được status code trả về, giá trị của status cho biếtkết quả của request Sau đây là một số giá trị status thường gặp:

200 OK – thành công, dùng cho các phương thức GET, PUT, PATCH, DELETE

201 Created – Trả về khi resouce được tạo thành công

204 No Content – Trả về khi resource xoá thành công

304 Not Modified – Client có thể sử dụng dữ liệu cache

Trang 28

400 Bad Request – Request không hợp lệ

401 Unauthorized – Request cần phải có auth

403 Forbidden – bị từ chối không cho phép

404 Not Found – Không tìm thấy resource từ URI

405 Method Not Allowed – Phương thức bị cấm với user hiện tại

429 Too Many Requests – Request bị từ chối do bị giới hạn

Trang 29

CHƯƠNG 4-TÌM HIỂU VỀ TYPESCRIPT TRONG

REACT

I Tổng quan về TypeScript

TypeScript là một dự án mã nguồn mở được phát triển bởi Microsoft, nó có thể được coi là một phiên bản nâng cao của Javascript bởi việc bổ sung tùy chọn kiểu tĩnh và lớp hướngđối tượng mà điều này không có ở Javascript TypeScript có thể sử dụng để phát triển các ứng dụng chạy ở client-side (Angular2) và server-side (NodeJS)

TypeScript sử dụng tất cả các tính năng của của ECMAScript 2015 (ES6) như classes, modules Không dừng lại ở đó nếu như ECMAScript 2017 ra đời thì mình tin chắc rằng TypeScript cũng sẽ nâng cấp phiên bản của mình lên để sử dụng mọi kỹ thuật mới nhất từ ECMAScript Thực ra TypeScript không phải ra đời đầu tiên mà trước đây cũng có một số thưviện như CoffeScript và Dart được phát triển bởi Google, tuy nhiên điểm yếu là hai thư viện này sư dụng cú pháp mới hoàn toàn, điều này khác hoàn toàn với TypeScript, vì vậy tuy ra đờisau nhưng TypeScript vẫn đang nhận được sự đón nhận từ các lập trình viên

II Ưu nhược điểm của TypeScript

1 Ưu điểm:

Là mã nguồn mở: TypeScript là dự án mã nguồn mở nên bạn có thể sử dụng hoàn miễnphí, ngoài ra còn được cộng đồng hỗ trợ

Dễ dàng phát triển dự án lớn: TypeScript được thiết kế để phát triển các dự án lớn

Hỗ trợ các tính năng mới nhất của JavaScript: Bản chất của TypeScript là biên dịch tạo

ra các đoạn mã JavaScript, nên nó đảm bảo sử dụng đầy đủ các kỹ thuật, tính năng mới nhấtcủa JavaScript

Hỗ trợ OOP mạnh: Về cơ bản JavaScript có hỗ trợ hướng đối tượng, nhưng khi ápdụng thì rất khó khăn do cách triển khai code không hề đơn giản như các ngôn ngữ bậc cao

Cách tổ chức code rõ ràng: Code TypeScript trông gọn gàng và dễ nhìn hơn do được

hỗ trợ các kỹ thuật mới nhất và lập trình hướng đối tượng

Nhiều Framework lựa chọn: Nhiều JavaScript Framework đã dần khuyến khích sửdụng TypeScript để phát triển, ví dụ như AngularJS 2.0 và Ionic 2.0

Trang 30

Thêm bước bổ sung – biên dịch: TypeScript không thể chạy trực tiếp trong chươngtrình, mà phải được biên dịch qua JavaScript

Không phải ngôn ngữ gõ tĩnh thực sự: Mặc dù phải xác định kiểu cho tất cả dữ liệu khikhai báo, nhưng TypeScript không phải ngôn ngữ gõ tĩnh thực sự bởi nó không chạy trực tiếptrong chương trình, khi được biên dịch sang JavaScript sẽ luôn có nguy cơ chuyển đổi thànhmột kiểu lạ.

III Cài đặt

TypeScript không thể chạy trực tiếp ngay trong trình duyệt mà chúng được biên dịch qua JavaScript bởi trình biên dịch thông qua npm Vì vậy để làm việc với TypeScript, bạn phảicài đặt node.js và npm

Chạy lệnh sau để cài đặt:

npm install -g typescript

Để tạo file js từ file ts:

tsc fileName.ts

Trang 31

CHƯƠNG 5- PHÂN TÍCH THIẾT KẾ VÀ CÀI ĐẶT HỆ

THỐNG

I Phân tích chức năng hệ thống

1 Biểu đồ Use Case tổng quát

Hình 8 Biểu đồ Use case tổng quát

2 Biểu đồ Use Case chi tiết

2.1 Xem danh sách sản phẩm nổi bật

Trang 32

Use Case Name Xem danh sách sản phẩm nổi bật

Description Người dùng muốn xem sản phẩm nổi bật

2.Chọn phương thức xem sản phẩm nổi bật3.Người dùng chọn sản phẩm đang sale hoặc sản phẩm bán chạy

4.Hệ thống sẽ hiển thị các sản phẩm người dùng đang quan tâm

Use Case ID UC-1.2

Use Case Name Tìm kiếm sản phẩm

Description Người dùng muốn tìm kiếm sản phẩm

Trigger Người dùng click chức năng tìm kiếm sản phẩm

Pre-Condition Thiết bị người dùng được kết nối Internet

Post-Condition Hệ thống cho phép người dùng tìm kiếm sản phẩm theo yêu

cầuBasic Flow 1.Người dùng truy cập vào website

2.Chọn phương thức tìm kiếm sản phẩm3.Chọn phương thức tìm kiếm theo yêu cầu 4.Hệ thống xuất hiện sản phẩm cần tìm kiếm

Trang 33

Alternative Flow

Exception Flow Sản phẩm không tồn tại

Kiểm tra lại kết nối Internet

2.3 Xem chi tiết sản phẩm

2.3.1 Biểu đồ

Hình 11 Biểu đồ Use case cho chức năng Xem chi tiết sản phẩm

2.3.2 Đặc tả

Use Case ID UC-1.3

Use Case Name Xem chi tiết sản phẩm

Description Người dùng muốn xem chi tiết sản phẩm

Trigger Người dùng click vào sản phẩm

Pre-Condition Thiết bị người dùng được kết nối Internet

Post-Condition Hệ thống hiện ra chi tiết sản phẩm người dùng đang xem Basic Flow 1.Người dùng truy cập vào website

2.Chọn sản phẩm quan tâm3.Hệ thống hiện ra chi tiết sản phẩm Alternative Flow

Exception Flow Kiểm tra kết nối Internet

2.4 Đăng ký

2.4.1 Biểu đồ

Hình 12 Biểu đồ Use case cho chức năng Đăng ký

Trang 34

2.4.2 Đặc tả

Use Case ID UC-1.4

Use Case Name Đăng Ký

Description Người dùng muốn tạo tài khoản mới

Actor Khách hàng, Quản lý

Pre-Condition Thiết bị người dùng được kết nối Internet

Tên tài khoản chưa tồn tạiNhập đầy đủ thông tinPost-Condition Người dùng đăng ký tài khoản thành công

Hệ thống ghi nhận tạo tài khoản mới thành côngBasic Flow 1.Người dùng truy cập vào website

2.Chọn phương thức đăng ký3.Người dùng nhập tên tài khoản, mật khẩu và thông tin cá nhân

4.Nhấn nút đăng ký5.Hệ thống xác thực thông tin tài khoản 6.Hệ thống ghi nhận đăng ký thành côngAlternative Flow

Exception Flow 5a Hệ thống xác thực thông tin tài khoản không hợp lệ và

hiển thị thông báo5a1 Người dùng chọn lệnh quay lại Use Case dừng lại5a2 Người dùng nhập lại thông tin Quay lại bước 5a

2.5 Đăng nhập, Đăng xuất

2.5.1 Biểu đồ

Hình 13 Biểu đồ Use case cho chức năng Đăng nhập

Trang 35

2.5.2 Đặc tả

Đăng nhập

Use Case ID UC-1.5

Use Case Name Đăng Nhập

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

Actor Khách hàng, Quản lý

Pre-Condition Thiết bị người dùng được kết nối Internet

Tài khoản đã được tạoPost-Condition Người dùng đăng nhập thành công

Hệ thống ghi nhận đăng nhập thành công thành côngBasic Flow 1.Người dùng truy cập vào website

2.Chọn phương thức đăng nhập3.Người dùng nhập tên tài khoản, mật khẩu 4.Nhấn nút đăng nhập

5.Hệ thống xác thực thông tin tài khoản 6.Hệ thống ghi nhận đăng nhập thành côngAlternative Flow

Exception Flow 5a Hệ thống xác thực thông tin tài khoản không hợp lệ và

hiển thị thông báo5a1 Người dùng chọn lệnh quay lại Use Case dừng lại5a2 Người dùng nhập lại thông tin Quay lại bước 5a.5a3 Người dùng chọn quên mật khẩu Tiếp tục UC-1.3.Đăng xuất

Hình 14 Biểu đồ Use case cho chức năng Đăng xuất

Đặc tả

Use Case ID UC-1.6

Use Case Name Quên mật khẩu

Description Người dùng quên mật khẩu muốn tạo mật khẩu mớiActor Khách hàng, Quản lý

Pre-Condition Thiết bị người dùng được kết nối Internet

Trang 36

Tài khoản đã được tạo

Có gmail dùng để tạo tài khoảnPost-Condition Hiển thị trang tạo lại mật khẩu

Hệ thống xác nhận tạo lại mật khẩu thành côngBasic Flow 1.Người dùng truy cập vào website

2.Chọn phương thức đăng nhập3.Chọn chức năng quên mật khẩu4.Nhập tên tài khoản

5.Hệ thống xác thực thông tin tài khoản 6.Hệ thống gửi mail chứa đường dẫn tạo lại mật khẩu tới gmail đã được sử dụng để đăng ký tài khoản

7.Click vào đường dẫn trong mail8.Nhập lại mật khẩu muốn tạo mới

9 Hệ thống xác nhận việc tạo mới mật khẩu thành côngAlternative Flow

Exception Flow 5a Hệ thống xác thực thông tin tài khoản không tồn tại

5a1 Chọn Hủy Use Case dừng lại

2.6 Quản lý hồ sơ cá nhân

2.6.1 Biểu đồ

Hình 15 Biểu đồ Use case cho chức năng Quản lý hồ sơ cá nhân

2.6.2 Đặc tả

Use Case ID UC-1.7

Use Case Name Quản lý hồ sơ cá nhân

Description Người dùng muốn xem hoặc chỉnh sửa thông tin cá nhânActor Khách hàng, Quản lý

Pre-Condition Thiết bị người dùng được kết nối Internet

Trang 37

Post-Condition Người dùng xem được thông tin cá nhân

Hệ thống ghi nhận hồ sơ cá nhân được chỉnh sửa thành công

Basic Flow 1.Người dùng truy cập vào website

2.Người dùng đăng nhập vào hệ thống3.Người dùng click vào hồ sơ cá nhân4.Hệ thống sẽ hiện thị lên thông tin cá nhân của người dùng5.Người dùng click vào chỉnh sửa thông tin các nhân6.Nhập lại thông tin cần chỉnh sửa và bấm Lưu7.Hệ thống lưu lại thông tin các nhân mới của người dùngAlternative Flow

Exception Flow Mất kết nối Internet

2.7 Quản lý giỏ hàng

2.7.1 Biểu đồ

Hình 16 Biểu đồ Use case cho chức năng Quản lý giỏ hàng

2.7.2 Đặc tả

Use Case ID UC-1.8

Use Case Name Quản lý giỏ hàng

Description Quản lý giỏ hàng của người dùng

Trang 38

Trigger Người dùng click vào giỏ hàng

Pre-Condition Thiết bị người dùng được kết nối Internet

Người dùng đã có tài khoản trên hệ thốngPost-Condition Hệ thống hiển thị giỏ hàng của người dùng

Basic Flow 1.Người dùng truy cập vào website

2.Đăng nhập vào hệ thống3.Người dùng click vào giỏ hàng4.Hệ thống trả về giỏ hàng với những sản phẩm của người dùng đã chọn

Use Case ID UC-1.9

Use Case Name Quản lý đơn hàng

Description Quản lý đơn hàng của người dùng

Trang 39

Actor Khách hàng

Trigger Người dùng click vào đơn hàng

Pre-Condition Thiết bị người dùng được kết nối Internet

Người dùng đã có tài khoản trên hệ thốngPost-Condition Hệ thống hiển thị thông tin đơn hàng và khách hàng có thể

đánh giá đơn hàng khi nhận hàngBasic Flow 1.Người dùng truy cập vào website

2.Đăng nhập vào hệ thống3.Người dùng click vào đơn hàng4.Hệ thống trả về những đơn hàng đã được thanh toán và chi tiết đơn hàng

Alternative Flow

Exception Flow Kiểm tra kết nối Internet

2.9 Quản lý đơn hàng (Bên quản lý)

2.9.1 Biểu đồ

Hình 18 Biểu đồ Use case cho chức năng Quản lý đơn hàng (admin)

2.9.2 Đặc tả

Use Case ID UC-1.10

Use Case Name Quản lý đơn đặt hàng (Quản lý)

Description Người dùng muốn xác nhận hoặc hủy đơn hàng

Trang 40

Actor Quản lý

Pre-Condition Thiết bị người dùng được kết nối Internet

Tài khoản của người dùng đã được tạo sẵn Tải khoản của người dùng phải là tải quản quản lýPost-Condition Đơn hàng của khách hàng được xác nhận hoặc hủy

Basic Flow 1.Người dùng truy cập vào website

2.Người dùng đăng nhập vào hệ thống3.Người dùng click vào quản lý đơn hàng4.Hệ thống sẽ hiện thị lên thông tin đơn hàng5.Người dùng click vào xác nhận hoặc hủy đơn đặt hàng của khách

6.Hệ thống xác nhận đơn hàng được đặt thành công hoặc bị hủy

Alternative Flow

Exception Flow 1a.Mất kết nối Internet

2a.Tài khoản của người dùng không phải là tài khoản quản lý

2.10 Quản lý sản phẩm

2.10.1 Biểu đồ

Hình 19 Biểu đồ Use case cho chức năng Quản lý sản phẩm

Ngày đăng: 16/05/2023, 11:31

HÌNH ẢNH LIÊN QUAN

Hình 1. Android là gì? - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 1. Android là gì? (Trang 17)
Hình 2. Kiến trúc của hệ điều hành Android - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 2. Kiến trúc của hệ điều hành Android (Trang 18)
Hình 4. Mối liên hệ giữa View và ViewModel - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 4. Mối liên hệ giữa View và ViewModel (Trang 22)
Hình 5. Ứng dụng của LiveData trong mô hình MVVM - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 5. Ứng dụng của LiveData trong mô hình MVVM (Trang 23)
Hình 25. Biểu đồ Sequence cho chức năng Sửa thông tin cá nhân - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 25. Biểu đồ Sequence cho chức năng Sửa thông tin cá nhân (Trang 45)
Hình 26. Biểu đồ Sequence cho chức năng Thêm giỏ hàng - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 26. Biểu đồ Sequence cho chức năng Thêm giỏ hàng (Trang 45)
Hình 28. Biểu đồ Sequence cho chức năng Tìm kiếm sản phẩm - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 28. Biểu đồ Sequence cho chức năng Tìm kiếm sản phẩm (Trang 46)
Hình 29. Biểu đồ Sequence cho chức năng Xem chi tiết sản phẩm - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 29. Biểu đồ Sequence cho chức năng Xem chi tiết sản phẩm (Trang 47)
Hình 35. Biểu đồ Activity cho chức năng Đăng nhập - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 35. Biểu đồ Activity cho chức năng Đăng nhập (Trang 51)
Hình 36. Biểu đồ Activity cho chức năng Đăng ký - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 36. Biểu đồ Activity cho chức năng Đăng ký (Trang 52)
Hình 37. Biểu đồ Activity cho chức năng Đăng xuất - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 37. Biểu đồ Activity cho chức năng Đăng xuất (Trang 53)
Hình 38. Biểu đồ Activity cho chức năng Tìm kiểm sản phẩm - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 38. Biểu đồ Activity cho chức năng Tìm kiểm sản phẩm (Trang 54)
Hình 39. Biểu đồ Activity cho chức năng Xem chi tiết sản phẩm - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 39. Biểu đồ Activity cho chức năng Xem chi tiết sản phẩm (Trang 55)
Hình 40. Biểu đồ Activity cho chức năng Quản lý hồ sơ cá nhân - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 40. Biểu đồ Activity cho chức năng Quản lý hồ sơ cá nhân (Trang 56)
Hình 43. Biểu đồ Activity cho chức năng Quản lý sản phẩm - Báo cáo đồ án tốt nghiệp  xây dựng ứng dụng và website bán hàng
Hình 43. Biểu đồ Activity cho chức năng Quản lý sản phẩm (Trang 59)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w