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

Xây dựng ứng dụng di động kết nối gia sư và học viên

103 0 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 di động kết nối gia sư và học viên
Tác giả Lê Quốc Tuấn
Người hướng dẫn ThS. Nguyễn Thị Hà
Trường học Đại học Đà Nẵng
Chuyên ngành Công nghệ Thông tin
Thể loại Đồ án tốt nghiệp đại học
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 103
Dung lượng 4,69 MB

Nội dung

Tên đề tài: Xây dựng ứng dụng di động kết nối gia sư và học viên Sinh viên thực hiện: Lê Quốc Tuấn Mã SV: 1911505310158 Lớp: 19T1 Nội dung tóm tăt Trong thời đại nay, nhu cầu tìm kiếm gi

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA CÔNG NGHỆ SỐ

ĐỒ ÁN TỐT NGHIỆP

ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI:

KẾT NỐI GIA SƯ VÀ HỌC VIÊN

Sinh viên thực hiện : Lê Quốc Tuấn

Trang 3

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA CÔNG NGHỆ SỐ

ĐỒ ÁN TỐT NGHIỆP

ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN

CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI:

KẾT NỐI GIA SƯ VÀ HỌC VIÊN

Giảng viên hướng dẫn duyệt

Trang 5

Nhận xét của người phản biện

Trang 6

Trang 7

Tên đề tài:

Xây dựng ứng dụng di động kết nối gia sư và học viên

Sinh viên thực hiện: Lê Quốc Tuấn

Mã SV: 1911505310158 Lớp: 19T1

Nội dung tóm tăt

Trong thời đại nay, nhu cầu tìm kiếm gia sư nhằm bổ trợ kiếnthức tại nhà dành cho học sinh ngày càng tăng, các trung tâm gia

sư cũng vì thế mà xuất hiện nhiều Tuy nhiên hiện nay vẫn còntồn tại không ít trung tâm giới thiệu gia sư không đáng tin cậy,gia sư ở nhiều nguồn, nhiều trường khác nhau mà phụ huynhkhông hề biết được năng lực cũng như trình độ của gia sư đó nhưthế nào Mặt khác, có rất nhiều sinh viên cũng như giáo viên cótrình độ đang muốn tìm kiếm cho mình những công việc làmthêm, dạy kèm học sinh hoặc mở lớp dạy thêm cho học sinhngoài giờ Ngoài đi đến các trung tâm gia sư, có thể khiến cácgiáo viên dù mất đi một khoản phụ phí mà chưa chắc có thể tìmđược lớp ưng ý, thì họ không có cách nào để liên hệ, thể hiện mộtcách đầy đủ nhất bản thân với những khách hàng cần thuê gia

Giải pháp hiệu quả trong thời đại công nghệ phát triển hiệnnay chính là “Xây dựng ứng dụng di động kết nối gia sư và họcviên” cho phép người dùng có thể tìm kiếm gia sư một cách dễdàng nhất Thông tin gia sư đưa ra một cách cụ thể và công khai.Giúp người sử dụng hệ thống có thể nắm rõ trình độ cũng như cácthông tin cần thiết về gia sư Người dùng là học viên có thể tìmkiếm gia sư bằng các yêu cầu cụ thể Mặt khác người dùng là gia

sư có thể đăng lịch dạy công khai để tìm học viên với các thông

Trang 8

của 2 bên Và cuối cùng sau mỗi khóa học, học viên có thể để lạiđánh giá của mình dành cho gia sư, giúp ghi lại một cách chínhxác nhất năng lực cũng như kinh nghiệm của từng gia sư.

Trang 9

Ngành: Công nghệ thông tin

1 Tên đề tài đồ án: Xây dựng ứng dụng di động kết nối gia

sư và học viên

2 Các số liệu và dữ liệu ban đầu: Không có

3 Nội dung các phần thuyết minh và tính toán:

Nội dung của thuyết minh gồm:

- Mở đầu: Phần mở đầu của luận văn, giới thiệu đề tài,

tổng quan về đề tài và mục tiêu cần đạt được

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

- Chương 2: Phân tích và thiết kế hệ thống

- Chương 3: Xây dựng chương trình

- Kết luận và hướng phát triển

4 Các sản phẩm dự kiến

- Ứng dụng người dùng và website quản trị hoàn chỉnh

- Báo cáo đồ án tốt nghiệp hoàn chỉnh

5 Họ tên người hướng dẫn: ThS Nguyễn Thị Hà Quyên

6 Ngày giao nhiệm vụ đồ án: 06/02/2023.

7 Ngày hoàn thành đồ án: 07/06/2023.

Đà Nẵng, ngày tháng năm 2023

Trang 10

Lời đầu tiên, em xin chân thành cảm ơn Trường Đại Học Sư phạm

Kỹ thuật – Đại học Đà Nẵng đã tạo điều kiện cho em có được môitrường học tập và những sự hỗ trợ tốt nhất để em có thể hoàn thành

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

Em xin cảm ơn quý Thầy cô trong khoa Công Nghệ Số đã giảngdạy và trang bị cho em những kiến thức về công nghệ thông tintrong thời gian học tập tại trường

Em cũng xin gửi lời cảm ơn đặc biệt đến giáo viên hướng dẫn củamình – ThS Nguyễn Thị Hà Quyên - đã tận tình hướng dẫn, cho emnhiều lời khuyên và truyền đạt những kinh nghiệm trong quá trìnhhoàn thành đồ án

Dù đã cố gắng hết sức hoàn thành với toàn bộ kiến thức và sựhiểu biết nhưng do thời gian thực hiện còn hạn chế, kết quả sẽ khôngtránh khỏi những thiếu sót không mong muốn Em rất mong nhậnđược sự thông cảm và góp ý của quý Thầy cô

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

i

Trang 11

Em xin cam đoan:

● Những nội dung trong luận văn này do em thực hiện dưới sựhướng dẫn của cô Nguyễn Thị Hà Quyên

● Mọi sự tham khảo trong luận văn đều được trích dẫn rõ ràngtác giả, tên công trình, thời gian địa điểm công bố

● Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo haygian trá, em xin chịu hoàn toàn trách nhiệm

Sinh viên thực hiện

Lê Quốc Tuấn

Trang 12

LỜI NÓI ĐẦU i

CAM ĐOAN ii

MỤC LỤC iii

DANH MỤC BẢNG BIỂU vi

DANH MỤC HÌNH VẼ viii

DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH xi

MỞ ĐẦU 1

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

2 Đối tượng nghiên cứu và phạm vi nghiên cứu 1

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

4 Cấu trúc đồ án 2

5 Giải pháp công nghệ 2

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

1.1 Hệ quản trị cơ sở dữ liệu PosgreSQL 4

1.1.1 PostgreSQL là gì? 4

1.1.2 Vai trò chính của PosgreSQL 4

1.1.3 Một vài tính năng cơ bản của PostgreSQL 4

1.2 Tổng quan về Express.js 5

1.2.1 Định nghĩa Express.js 5

1.2.2 Tại sao nên sử dụng ExpressJS trong lập trình backend? 5

1.2.3 Phân biệt Node.js và Express.js 6

1.3 Mô hình MVVM trong việc phát triển ứng dụng Android 7

1.3.1 Mô hình MVVM là gì? 7

iii

Trang 13

1.3.3 Cấu trúc thư mục trong MVVM 8

1.3.4 Ưu nhược điểm của MVVM: Model – View – ViewModel.9 CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 11

2.1 Khảo sát yêu cầu 11

2.1.1 Người dùng hệ thống 11

2.1.2 Hoạt động nghiệp vụ 11

2.1.3 Sơ đồ hoạt động nghiệp vụ 12

2.1.4 Liệt kê người dùng và yêu cầu 13

2.2 Phân tích thiết kế hệ thống 14

2.2.1 Liệt kê Actor và Usecase 14

2.2.2 Sơ đồ usecase 15

2.2.3 Kịch bản 16

2.2.4 Sơ đồ hoạt động 25

2.2.5 Sơ đồ Robustness 30

2.2.6 Phác thảo giao diện 32

2.2.7 Thiết kế các bảng dữ liệu 32

2.2.8 Thiết kế ERD 36

2.2.9 Sơ đồ lớp 37

2.2.10 Sơ đồ tuần tự 37

CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH 40

3.1 Giao diện chương trình 40

3.1.1 Giao diện người dùng 40

3.1.2 Giao diện gia sư 44

3.1.3 Giao diện học viên 48

Trang 14

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59 TÀI LIỆU THAM KHẢO 60

v

Trang 15

Bảng 1.1.Phân biệt Express.js và Node.js 6

Bảng 2.1.Kịch bản cho usecase “Đăng ký tài khoản” 17

Bảng 2.2 Kịch bản cho usecase “Đăng nhập” 16

Bảng 2.3 Kịch bản cho usecase “Đăng ký buổi dạy” 16

Bảng 2.4.Kịch bản cho usecase “Duyệt học viên đăng ký buổi dạy” 17 Bảng 2.5.Kịch bản cho usecase “Xóa buổi dạy” 18

Bảng 2.6 Kịch bản cho usecase “Xem hồ sơ cá nhân” 19

Bảng 2.7 Kịch bản cho usecase “Xem thông tin cá nhân” 20

Bảng 2.8 Kịch bản cho usecase “Quản lý lịch học” 20

Bảng 2.9 Kịch bản cho usecase “Tìm kiếm theo tên gia sư” 21

Bảng 2.10 Kịch bản cho usecase “Xem hồ sơ gia sư” 22

Bảng 2.11 Kịch bản cho usecase “Xét duyệt đăng ký học viên” 23

Bảng 2.12 Kịch bản cho usecase “Xét duyệt đăng ký gia sư” 23

Bảng 2.13 Thông tin bảng “District” 31

Bảng 2.14 Thông tin bảng “Ward” 31

Bảng 2.15 Thông tin bảng “Role” 31

Bảng 2.16 Thông tin bảng “Account” 31

Bảng 2.17 Thông tin bảng “Admin” 32

Bảng 2.18 Thông tin bảng “Teacher” 32

Bảng 2.19 Thông tin bảng “Student” 32

Bảng 2.20 Thông tin bảng “Class” 33

Bảng 2.21 Thông tin bảng “Subject” 33

Bảng 2.22 Thông tin bảng “SubjectOfTeacher” 33

Trang 16

Bảng 2.25 Thông tin bảng “Rating” 35

vii

Trang 17

Hình 1.1: Mô hình MVVM 7

Hình 1.2: Cấu trúc thư mục trong MVVM 8

Hình 2.1: Sơ đồ hoạt động nghiệp vụ 11

Hình 2.2: Sơ đồ Usecase 14

Hình 2.3: Sơ đồ hoạt động usecase “Quản lý lịch học” 24

Hình 2.4: Sơ đồ hoạt động usecase “Quản lý lịch dạy” 25

Hình 2.5: Sơ đồ hoạt động usecase “Tìm kiếm gia sư theo tên” 26

Hình 2.6: Sơ đồ hoạt động usecase “Xem hồ sơ gia sư” 27

Hình 2.7: Sơ đồ hoạt động usecase “Đăng ký tài khoản” 28

Hình 2.8: Robustness diagram cho usecase “Đăng ký tài khoản” .29 Hình 2.9: Robustness diagram cho usecase “Quản lý lịch dạy” 29

Hình 2.10: Robustness diagram cho usecase “Quản lý lịch học” 30

Hình 2.11: Robustness diagram cho usecase “Xem hồ sơ gia sư” .30 Hình 2.12: Giao diện phác thảo chức năng đăng nhập 31

Hình 2.13: Giao diện phác thảo chức năng “Đăng ký” 31

Hình 2.14: Giao diện phác thảo chức năng “Xem lịch dạy” 32

Hình 2.15: Giao diện phác thảo chức năng “Đăng ký buổi dạy” 32

Hình 2.16: Giao diện phác thảo chức năng “Xem lịch học” 33

Hình 2.17: Giao diện phác thảo chức năng “Đăng ký học” 33

Hình 2.18: Giao diện phác thảo chức năng “Đánh giá gia sư” 34

Hình 2.19: Phác thảo giao diện chức năng “Tìm kiếm gia sư” 34

Hình 2.20: Sơ đồ ERD 35

Hình 2.21: Sơ đồ lớp 35

Hình 2.22: Sequence diagram cho usecase “Đăng ký tài khoản” 36

Trang 18

Hình 2.24: Sequence diagram cho usecase “Duyệt học viên đăng

ký buổi dạy” 37

Hình 2.25: Sequence diagram cho usecase “Quản lý lịch học” 37

Hình 2.26: Sequence diagram cho usecase “Xem hồ sơ gia sư” 38

Hình 3.1: Giao diện đăng ký tài khoản 39

Hình 3.2: Giao diện cập nhật thông tin tài khoản gia sư 40

Hình 3.3: Giao diện cập nhật thông tin tài khoản học viên 41

Hình 3.4: Giao diện đăng nhập 42

Hình 3.5: Giao diện trang chủ tài khoản gia sư 43

Hình 3.6: Giao diện chức năng quản lý lịch dạy 44

Hình 3.7: Giao diện chức năng đăng ký giờ dạy 45

Hình 3.8: Giao diện chức năng duyệt học viên đăng ký buổi học 45

Hình 3.9: Giao diện chức năng xem hồ sơ cá nhân 46

Hình 3.10: Giao diện trang chủ tài khoản học viên 47

Hình 3.11: Giao diện chức năng quản lý lịch học 48

Hình 3.12: Giao diện chức năng đánh giá gia sư 49

Hình 3.13: Giao diện chức năng tìm kiếm gia sư 50

Hình 3.14: Giao diện chức năng xem hồ sơ gia sư 51

Hình 3.15: Giao diện xem các đánh giá của học viên dành cho gia sư 52

Hình 3.16: Giao diện đăng ký buổi học của gia sư 52

Hình 3.17: Giao diện xem hồ sơ học viên 53

Hình 3.18: Giao diện đăng nhập trang quản trị 54

Hình 3.19: Giao diện danh sách gia sư đã duyệt 54

ix

Trang 19

của gia sư 55

Hình 3.21: Giao diện danh sách gia sư chưa duyệt 55

Hình 3.22: Giao diện danh sách gia sư chưa cập nhật thông tin 56

Hình 3.23: Giao diện danh sách học viên đã được duyệt 56

Hình 3.24: Giao diện danh sách học viên đang chờ duyệt 57 Hình 3.25: Giao diện danh sách học viên chưa cập nhật thông tin.57

Trang 20

Một chuỗi mã hóa mà gốcgác ban đầu của nó là 1chuỗi JSON

-Controller

Mô hình phát triển phầnmềm

5 XAML Extensible Application

Markup Language

Ngôn ngữ đánh dấu ứngdụng mở rộng

Kit

Bộ công cụ phát triển phầnmềm

Trang 21

MỞ ĐẦU

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

Trong thời đại nay, nhu cầu tìm kiếm gia sư cũng như các lớp họcthêm là rất lớn, phổ biến ở mọi loại đối tượng Tuy nhiên việc quản lýchất lượng gia sư và học viên cũng như quản lý chất lượng dạy vàhọc hiện nay ở các trung tâm gia sư còn nhiều hạn chế, tồn tại nhiềubất cập, dẫn đến tình trạng lộn xộn trong việc cung cấp gia sư đảmbảo cho học viên Để giải quyết những vấn đề trên, mục đích chínhcủa đề tài là xây dựng một ứng dụng giúp kết nối người có nhu cầumuốn làm gia sư và người muốn tìm gia sư trên nền tảng trực tuyến.Trong đó, cần đạt được những mục tiêu cụ thể sau:

 Cho phép người dùng hệ thống đăng ký tài khoản thànhviên

 Người dùng thành viên là học viên có thể tìm kiếm gia sưqua các tiêu chí: môn học, lớp, quận/huyện sinh sống củagiảng viên

 Người dùng thành viên là gia sư có thể tạo các buổi dạydựa theo các khoảng thời gian trong ngày, khoảng thờigian của các buổi dạy không được trùng nhau

 Cho phép người dùng thành viên là học viên có thể đăng kýcác buổi dạy của gia sư

 Cho phép quản lý lịch dạy và học của gia sư và học viên

 Quản lý trình độ, chất lượng cũng như các thông tin cầnthiết khác về gia sư và học viên

 Tạo ra môi trường liên lạc, trao đổi giữa gia sư và học viên

 Cho phép học viên để lại đánh giá về gia sư sau khi họcxong khóa học

2 Đối tượng nghiên cứu và phạm vi nghiên cứu

Trang 22

 Người dạy: là những đối tượng có nhu cầu chia sẻ kiến thứcchuyên môn, có nhu cầu tìm lớp dạy, tìm người học trênnền tảng.

 Người học: là những đối tượng có nhu cầu tìm người dạytrên nền tảng

 Phụ huynh: là các bậc cha mẹ có liên quan, kết nối thôngtin với người học

 Trung tâm gia sư hiện tại : www.trungtamdaykem.com,

b Phạm vi nghiên cứu

 Đề tài chỉ nghiên cứu áp dụng trên địa bàn thành phố ĐàNẵng

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

 Khảo sát nhu cầu thực tế của những người có nhu cầu tìmgia sư cho học sinh cấp một, cấp hai, cấp ba, những sinhviên hoặc giáo viên có nhu cầu làm thêm ngoài giờ vớicông việc gia sư dạy kèm

 Tham khảo, trải nghiệm các website tìm gia sư trực tuyến

4 Cấu trúc đồ án

Ngoài phần các kí hiệu và chữ viết tắt, danh mục các bảng, danhmục các hình vẽ, danh mục tài liệu tham khảo, nội dung đồ án gồm:

Mở đầu

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

Chương này trình bày các thông tin, khái niệm của các kiến thứcchuyên môn, giải thích các thuật ngữ, chú thích xuất hiện trongxuyên suốt đồ án

Chương 2 Phân tích thiết kế hệ thống

Chương này trình bày tổng quan và mục đích chính của đề tài.Ngoài ra còn phân tích về quy trình tìm lớp dạy và tìm kiếm gia sư,

Trang 23

đưa ra các giải pháp công nghệ sử dụng, cơ sở dữ liệu và ngôn ngữlập trình.

Chương 3 Xây dựng chương trình

Chương này phân tích các chức năng của hệ thống, đưa ra một

số giao diện chính của ứng dụng Cuối cùng là đưa ra yêu cầu phầncứng và phần mềm của hệ thống, dữ liệu thử nghiệm và đưa ra bộtiêu chí đánh giá

Kết luận và hướng phát triển

5 Giải pháp công nghệ

 Công cụ thiết kế giao diện: Figma.com

 Programing tools: Android studio, Visual studio code,Dbeaver, Postman

 Công nghệ ứng dụng di động: Kotlin Android native,Dagger-Hilt, Retrofit, Room, Kotlin Coroutine, mô hìnhMVVM

 Công nghệ backend: NodeJs, ExpressJs, JWT

 Hệ quản trị cơ sở dữ liệu: PostgreSQL

Trang 24

CHƯƠNG 1

CƠ SỞ LÝ THUYẾT

1.1 Hệ quản trị cơ sở dữ liệu PosgreSQL

1.1.1 PostgreSQL là gì?

PostgreSQL được biết đến là một hệ cơ sở quản trị dữ liệu mở Hệ

cơ sở dữ liệu này giữ vai trò tiền phong mở đường cho khái niệm hệquản trị dữ liệu thương mại ra đời sau này

Thời kỳ đầu, PostgreSQL hoạt động của giống như nền tảng điềuhành Unix Về sau, PostgreSQL dần thay đổi để trở nên linh hoạt và

có thể khởi chạy trên một số nền tảng như Windows, Solaris, Mac OS.Đồng thời, tích hợp thêm nhiều tính năng vượt trội khác

Về mặt kỹ thuật, PostgreSQL chính là một mã nguồn mở hoàntoàn miễn phí, xây dựng theo quy chuẩn SQL99 Nhờ đó, tất cả ngườidùng đều có quyền sử dụng, tham gia chỉnh sửa

Khác với phần lớn cơ sở dữ liệu khác, PostgreSQL hoạt động rất

ổn định không yêu cầu bảo trì cầu kỳ Nó dễ dàng để triển khai trênnhiều ứng dụng khác nhau với phí đầu tư hợp lý

1.1.2 Vai trò chính của PosgreSQL

PostgreSQL hoạt động như một hệ quản trị dữ liệu mang tính mở,phù hợp để mọi doanh nghiệp khai thác Đây là một hệ quản trịtương thích với hầu hết các nền tảng, ứng dụng đa ngôn ngữ, phầnmềm phổ biến

Ngày nay, PostgreSQL là một phần quan trọng của ngành dữ liệuGIS cho tổ chức chính phủ, ngành ngân hàng, thương mại, công nghệweb, PostgreSQL hoàn toàn không bị quản lý bởi bất kỳ tổ chứcnào Tuy vậy, việc không bị quản lý bởi bất kỳ tổ chức nào đôi khi lại

là yếu điểm của PostgreSQL

Trang 25

1.1.3 Một vài tính năng cơ bản của PostgreSQL

1.1.3.1 Cung cấp nhiều kiểu dữ liệu

PostgreSQL cung cấp đa dạng kiểu dữ liệu như nguyên hàm, cấutrúc, hình học,

1.1.3.2 Bảo đảm toàn vẹn dữ liệu

Dữ liệu trong PostgreSQL luôn được đảm bảo tính toàn vẹn

1.1.3.3 Tính năng thiết lập linh hoạt

PostgreSQL cho phép người dùng thiết lập danh mục từ cơ bảnđến nâng cao, tối ưu ưu hóa tốc độ truy cập, hỗ trợ thống kê trênnhiều cột, Cùng với đó là vô số thiết lập khác

1.1.3.6 Chức năng tìm kiếm văn bản

PostgreSQL cung cấp tính năng tìm kiếm văn bản đầy đủ, hệthống hóa ký tự theo cách khoa học

1.2 Tổng quan về Express.js

1.2.1 Định nghĩa Express.js

Expressjs hay còn được viết là Express js, Express.js Đây là mộtframework mã nguồn mở miễn phí cho Node.js Express.js được sửdụng trong thiết kế và xây dựng các ứng dụng web một cách đơngiản và nhanh chóng

Trang 26

1.2.2 Tại sao nên sử dụng ExpressJS trong lập trình backend?

1.2.2.1 Sự phổ biến của Javascript

Javascript là một ngôn ngữ lập trình được sử dụng rộng rãi hiệnnay, dễ đọc và được hỗ trợ ở mọi nơi Mà Expressjs lại hỗ trợJavascript, do đó nếu bạn đã biết đến Javascript thì chắc chắn việclập trình bằng Express.js là vô cùng đơn giản Ngay cả những ngườimới bắt đầu tham gia vào lĩnh vực phát triển phần mềm cũng có thể

sử dụng Expressjs

1.2.2.2 Hỗ trợ xây dựng website một cách nhanh chóng

Thời gian chính là tài sản quý giá của bất kỳ doanh nghiệp nào.Hơn thế, nhiều lập trình viên còn phải chịu áp lực xây dựng các ứngdụng một cách hiệu quả trong thời gian ngắn Nhưng để thực hiệntốt công việc này cần rất nhiều thời gian và Express.js chính là công

cụ cứu cánh cho các nhà lập trình

Express.js có thể giúp làm giảm một nửa thời gian viết mã màvẫn xây dựng lên các ứng dụng web hiệu quả Không chỉ trợ giúp vềmặt thời gian Expressjs còn làm giảm những áp lực cần thiết để xâydựng với sự trợ giúp của các tính năng khác nhau của nó Express.jscòn cung cấp một phần mềm trung gian đảm nhận nhiệm vụ đưa racác quyết định để phản hồi chính xác những yêu cầu của kháchhàng

1.2.2.3 Express.js hoàn toàn miễn phí

Một trong những yếu tố để tổ chức, doanh nghiệp nên sử dụngcông cụ, ứng dụng nào chính là chi phí Với một ứng dụng với nhiềutính năng tuyệt vời như vậy mà lại không tốn một chút kinh phí nàothì không có lý do gì để không sử dụng nó

1.2.3 Phân biệt Node.js và Express.js

Bảng 1.2.3.1.1.1.1 Phân biệt Express.js và Node.js

Trang 27

Được viết bằng một ngôn

ngữ lập trình duy nhất là

Javascript.,

Được viết bằng nhiềungôn ngữ lập trình khácnhau như C/C++,

Là một framework Không phải là framework

Để sử dụng Expressjs các

lập trình viên cần cài đặt

Express.js cùng Node.js

Các lập trình viên chỉ cầncài đặt Node.js trên thiết

bị của mình để có thể sửdụng

1.3 Mô hình MVVM trong việc phát triển ứng dụng Android

1.3.1 Mô hình MVVM là gì?

MVVM không phải là framework hay thư viện, api… nó chỉ đơnthuần là hướng dẫn bạn định nghĩa cấu trúc ứng dụng của bạn.MVVM được phát triển dựa trên kiến trúc MVP

Mô hình mvvm cho phép tách biệt dữ liệu (Model), mã thực thi(logic hay ViewModel) và giao diện người dùng (View)

Trong các mô hình truyền thống, chúng ta thường xử lý sự kiệnClick và viết mã thực thi trực tiếp ở trên một Button nhưng với môhình MVVM không cho phép làm điều này

Trong mô hình MVVM, các điều khiển(control) như Button,ListView, SearchBar, v.v không thể kết buộc trực tiếp đến dữ liệu màphải thông qua thuộc tính Command – là một thuộc tính kiểuICommand

Trang 28

1.3.2.2 Model

Cũng tương tự như trong mô hình MVC Model là các đối tượnggiúp truy xuất và thao tác trên dữ liệu thực sự

1.3.2.3 ViewModel

Lớp trung gian giữa View và Model ViewModel có thể được xem

là thành phần thay thế cho Controller trong mô hình MVC Nó chứacác mã lệnh cần thiết để thực hiện data binding, command

1.3.3 Cấu trúc thư mục trong MVVM

Thông thường khi sử dụng với MVVM chúng ta nên tạo 3 thư mụcchính chứa các file code liên quan

Trang 29

Hình 1.3.3.1.1.1: Cấu trúc thư mục trong MVVM

1.3.3.2 Views

Trong thư mục Views chứ các file giao diện Và mỗi file giao diệnđều có class code-behind đi kèm Đặc biệt file code-behind ta sẽkhông sử dụng đến, mọi điều cần làm sẽ chuyển xuống classViewModel Tất nhiên là bạn có thể code trong file code-behind củaXAML nhưng điều đó sẽ phá vỡ quy ước MVVM Bạn có thể khai báothuộc tính datacontext hoặc vài thiết lập khác nhưng nên hạn chế tốithiểu code ở đây Views được sử dụng để kết hợp với các mô hìnhMVVM… Nó dùng để cung cấp một sự chia tách gọn gàng của kháiniệm giữa UI và presentation logic và data

1.3.3.3 Models

Trong thư mục Models trong đó tạo các class chứa data và bất kỳliên kết validation, logic nghiệp vụ để chắc chắc tính toàn vẹn củadata, bạn có thể tách ra thư mục Repositories khác Chúng đượcdùng như một phần của mô hình MVVM

1.3.3.4 ViewModels

Tương tự ta cũng tạo một thư mục ViewModels Thông thườngmột file giao diện thì ta tạo một class ViewModels tương ứng (có đôi

Trang 30

lúc ta tạo nhiều class phụ giúp tinh giản file code và gọi chúng trongclass ViewModels chính).

ViewModels sẽ sử dụng các model nếu cần định nghĩa dữ liệu Sựliên kết giữa View-ViewModel giúp chúng gửi và nhận dữ liệu, để hiểu

rõ ta cần tìm hiểu các khái niệm về Binding, DataContext, BehaviorsSDK Nhờ đó ta tách code-behind của View và đưa xuống ViewModel

Ngoài ra một lớp ViewModels chứa presentation logic và statecủa ứng dụng ViewModels cần chứa các chức năng của ứng dụng.ViewModels định nghĩa properties, commands, và events, để chuyểnđổi controls trong view cần data-bind

1.3.4 Ưu nhược điểm của MVVM: Model – View – ViewModel

1.3.4.1 Ưu điểm

● Thực hiện Unit testing bây giờ sẽ rất dễ dàng, vì bạn thực

sự không phụ thuộc vào view

● MVVM sẽ tạo sự tương tác hiệu quả giữa designer vàdeveloper

● Tăng khả năng sử dụng lại các thành phần hay việc thayđổi giao diện chương trình mà không cần phải viết lại codequá nhiều

● Phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp, bảo trì…

1.3.4.2 Nhược điểm

● Khả năng duy trì khi view có thể gán cả biến và biểu thức,các logic không liên quan sẽ tăng dần theo thời gian, ảnhhưởng đến việc thêm code vào XML

● Đối với dự án nhỏ việc áp dụng mô hình MVVM gây cồngkềnh, tốn thời gian trong quá trình phát triển

● Đối với dự án lớn hơn, nó gây khó khăn và mất thời gian đểthiết kế các ViewModel

Trang 31

● Việc liên kết dữ liệu cho tất cả các thành phần gây khókhăn trong việc debug khi cơ sở dữ liệu phức tạp.

Trang 32

● Đăng ký thành viên hệ thống: Đăng ký làm gia sư hoặc đăng ký làm học

viên, sau khi đăng ký người dùng tiến hành cập nhật thông tin cá nhân

● Quản lý lịch dạy: Xem lịch dạy, đăng ký buổi dạy, xét duyệt học viên

đăng ký học, kết thúc khóa học và chờ nhận xét của học viên, xóa buổi dạy

● Quản lý lịch học: Xem lịch học, đăng ký buổi dạy sau khi xem lịch dạy

của gia sư, hủy buổi dạy nếu như gia sư chưa duyệt đăng ký, đánh giá gia

sư sau khi gia sư kết thúc khóa học

● Tìm kiếm gia sư: Học viên tìm kiếm gia sư theo nhu cầu, chọn xem hồ sơ

và lịch dạy của gia sư muốn đăng ký học

● Xét duyệt thành viên: Duyệt thông tin đăng ký tài khoản gia sư, duyệt

thông tin đăng ký tài khoản học viênSơ đồ hoạt động nghiệp vụ

Trang 33

2.1.3 Sơ đồ hoạt động nghiệp vụ

Hình 2.1.3.1.1.1: Sơ đồ hoạt động nghiệp vụ

Trang 34

2.1.4 Liệt kê người dùng và yêu cầu

2.1.4.1 Người dùng chung

Cho phép đăng ký tài khoản người dùng (tài khoản gia sư hoặctài khoản học viên)

2.1.4.2 Gia sư

Đăng nhập tài khoản với quyền Gia sư

2.1.4.2.1 Cho phép đăng ký các buổi dạy hiển thị công khai trong lịch dạy

cá nhân để học viên đăng ký học, buổi dạy gồm các thông tin: thời gian bắt đầu, thời lượng buổi học, số lượng học sinh, …

2.1.4.2.2 Cho phép chấp nhận hoặc từ chối đăng ký buổi dạy của học viên

sau khi xem thông tin học viên

2.1.4.2.3 Trước khi buổi dạy có học viên đăng ký, gia sư có thể xóa buổi dạy

đã đăng ký

2.1.4.2.4 Sau khi buổi dạy có học viên đăng ký đã được chấp nhận, gia sư có

thể xem địa chỉ, số điện thoại của học viên Khi chương trình học đã xong, gia sư có thể kết thúc buổi dạy

2.1.4.2.5 Cho phép gia sư xem thông tin cá nhân đã đăng ký của mình cũng

như tất cả các đánh giá của học viên

2.1.4.3 Học viên

Đăng nhập tài khoản với quyền Học viên

2.1.4.3.1 Cho phép học viên đăng ký buổi dạy của gia sư Trong thời gian

chờ gia sư phản hồi, học viên có thể hủy đăng ký

2.1.4.3.2 Cho phép xem lịch học trong tuần của mình

2.1.4.3.3 Học viên có thể xem địa chỉ, số điện thoại của giảng viên sau khi

được gia sư chấp nhận đăng ký Khi chương trình học đã xong, học viên có thể đánh giá gia sư

2.1.4.3.4 Cho phép học viên cập nhật thông tin hồ sơ của mình (trường, lớp,

học lực, …)

2.1.4.3.5 Cho phép xem các thông báo về các hoạt động trong hệ thống

Trang 36

2.1.4.4 Admin

Đăng nhập tài khoản với quyền Admin

2.1.4.4.1 Cho phép xem danh sách, thông tin chi tiết của tất cả các tài

khoản học viên và gia sư

2.1.4.4.2 Cho phép xét duyệt hay không duyệt đối với tài khoản học viên và

gia sư mới đăng ký

2.2.1.2.1 Đăng nhập tài khoản

2.2.1.2.2 Đăng ký buổi dạy

2.2.1.2.3 Duyệt học viên đăng ký buổi dạy

2.2.1.2.4 Quản lý lịch dạy

2.2.1.2.5 Xem hồ sơ cá nhân

2.2.1.3 Học viên

2.2.1.3.1 Đăng nhập tài khoản

2.2.1.3.2 Xem hồ sơ gia sư

2.2.1.3.3 Đăng ký học

2.2.1.3.4 Quản lý lịch học

2.2.1.3.5 Xem thông tin cá nhân

2.2.1.3.6 Tìm kiếm gia sư theo tên

2.2.1.3.7 Đánh giá gia sư

2.2.1.4 Admin

2.2.1.4.1 Xét duyệt đăng ký tài khoản học viên

Trang 37

2.2.1.4.2 Xét duyệt đăng ký tài khoản gia sư

Trang 38

2.2.2 Sơ đồ usecase

Trang 40

Hình 2.2.2.1.1.1: Sơ đồ Usecase

2.2.3 Kịch bản

2.2.3.1 Usecase “Đăng ký tài khoản”

Bảng 2.2.3.1.1.1.1 Kịch bản cho usecase “Đăng ký tài khoản”

Usecase

Name Đăng ký tài khoản

Description Actor đăng ký tài khoản để trở thành thành viên

 Thông tin gia sư (nếu đăng ký tài khoản gia sư):

họ tên, số điện thoại, địa chỉ, trình độ, kinh nghiệm,

 Thông tin học viên (nếu đăng ký tài khoản học viên):

họ tên, số điện thoại, địa chỉ, trường, lớp, học lực, …

Output Tài khoản học viên mới hoặc tài khoản gia sư mới

được cập nhật trên hệ thống

Basic Flow 1 Actor khởi chạy ứng dụng – Bắt đầu usecase

2 Actor nhấn “Đăng ký”

3 Ứng dụng hiển thị form đăng ký tài khoản

4 Actor nhập số điện thoại, mật khẩu

5 Actor chọn tài khoản gia sư

6 Actor nhấn “Tiếp tục”

7 Ứng dụng hiển thị form cập nhật thông tingia sư

8 Actor nhập thông tin cá nhân

9 Actor đăng ký các môn dạy

Ngày đăng: 07/03/2024, 15:38

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

TÀI LIỆU LIÊN QUAN

w