- Đảm bảo an toàn và bảo mật thông tin: Áp dụng các giải pháp bảo mật như mã hóa mật khẩu, hệ thống xác thực vi Refresh Token, và bảo vệ dữ liệu người dùng để đảm bảo an toàn thông tin
Trang 1TRƯNG ĐẠI HỌC SƯ PHẠM TP HỒ CHÍ MINH KHOA CÔNG NGHÊ THÔNG TIN
-□□ -ĐỒ ÁN MÔN HỌC TIỂU LUẬN TỐT NGHIỆP
XÂY DỰNG WEBSITE STUDENT BOOKING
Gi*o viên hư1ng d4n : GV Lương Trần Ngọc Khiết
SV thực hiện : 47.01.104.181 – Lê Thanh Quỳnh
47.01.104.211 – Huỳnh Thanh Tiến
TP HCM, 16 th*ng 09 năm 2024
Trang 2TRƯNG ĐẠI HỌC SƯ PHẠM TP.HCM
KHOA CÔNG NGHÊ THÔNG TIN
-□□ -ĐỒ ÁN MÔN HỌC TIỂU LUẬN TỐT NGHIỆP XÂY DỰNG WEBSITE STUDENT BOOKING
TP HCM, 16 tháng 04 năm 2024
Giáo viên hưng dn : GV Lương Trần Ngọc Khiết
SV thực hiện : 47.01.104.181 – Lê Thanh Quỳnh
47.01.104.211 – Huỳnh Thanh Tiến
Trang 3LI CẢM ƠN
Trong suốt quá trình học tập và làm đồ án tiểu luận vừa qua, em xin gửi lời cảm ơn chân thành đến thầy Lương Trần Ngọc Khiết về sự hưng dn và hỗ trợ quýbáu trong quá trình thực hiện đồ án tiểu luận của chúng em Đây là một dịp để chúng em bày tỏ lòng biết ơn sâu sắc về sự đóng góp và sự cống hiến của thầy đã giúp chúng em hoàn thành dự án này thành công Được thầy làm người hưng dn của chúng em, chúng em đã học được rất nhiều điều quý giá
Thầy đã không chỉ chia sẻ kiến thức chuyên môn sâu rộng mà còn tạo điều kiện để chúng em áp dụng những kiến thức đó vào thực tế Nhờ có thầy, chúng em
đã có cơ hội trải nghiệm và rèn luyện kỹ năng thực tiễn, từ việc nghiên cứu, thiết kế,phân tích, cho đến việc giải quyết vấn đề và trình bày kết quả Chúng em cũng muốn bày tỏ lòng biết ơn đến cô về thái độ hưng dn và động viên tích cực trong suốt quá trình làm việc Những lời khuyên và nhận xét của thầy đã giúp chúng em nhìn nhận các khía cạnh mi, nâng cao chất lượng của dự án và khám phá tiềm năngbản thân Sự cổ vũ và tin tưởng từ thầy đã truyền động lực cho chúng em vượt qua những khó khăn và hoàn thành đồ án vi tinh thần tự tin
Cuối cùng, chúng em xin bày tỏ lòng biết ơn chân thành đến thầy về sự đánh giá cao và công nhận về thành tựu mà chúng em đã đạt được thông qua đồ án này Điều này không chỉ tạo động lực cho chúng em mà còn khẳng định giá trị và tiềm năng của công trình này Chúng em rất biết ơn sự quan tâm và thời gian quý báu màthầy đã dành cho chúng em
Chúng em xin chân thành cảm ơn!
Trang 4NHẬN XÉT
Trang 5
MỤC LỤC
LI CẢM ƠN i
NHẬN XÉT ii
MỤC LỤC iii
DANH MỤC HÌNH ẢNH v
DANH MỤC BẢNG BIỂU vi
DANH MỤC VIẾT TẮT vii
LI MỞ ĐẦU viii
CHƯƠNG 1 TỔNG QUAN 1
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu của đề tài 2
1.3 Hiện trạng doanh nghiệp 3
1.4 Phương pháp nghiên cứu 4
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 6
2.1 Gii thiệu về nền tảng chia sẽ chuyến đi 6
2.2 Các chức năng và thành phần chính của nền tảng chia sẻ chuyến đi 6
2.3 Khảo sát hệ thống tương tự 9
2.4 Công nghệ sử dụng 12
CHƯƠNG 3 PHÂN TÍCH HỆ THỐNG 16
3.1 Phân tích yêu cầu 16
3.2 Đặc tả hệ thống 19
CHƯƠNG 4 THIẾT KẾ HỆ THỐNG 24
4.1 Sơ đồ phân rã chức năng 24
4.2 Sơ đồ Use Case 26
4.3 Sơ đồ tuần tự 34
4.4 Thiết kế cơ sở dữ liệu 40
4.5 Thiết kế giao diện người dùng 49
CHƯƠNG 5 TRIỂN KHAI VÀ PHÁT TRIỂN 57
CHƯƠNG 6 KIỂM THỬ HỆ THỐNG 58
CHƯƠNG 7 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59
TÀI LIỆU THAM KHẢO 60
Trang 7DANH MỤC HÌNH ẢNH
Trang 8DANH MỤC BẢNG BIỂU
Trang 9DANH MỤC VIẾT TẮT
Trang 10LI MỞ ĐẦU
Việc di chuyển hàng ngày là một phần không thể thiếu trong cuộc sống của sinh viên Tuy nhiên, việc tìm kiếm một phương tiện di chuyển phù hợp, vừa tiết kiệm chi phí vừa đảm bảo sự thoải mái luôn là một bài toán khó Đặc biệt, trong điều kiện giao thông công cộng còn nhiều hạn chế như hiện nay, nhu cầu đi chung
xe của sinh viên ngày càng tăng cao
Vi sự phát triển mạnh mẽ của công nghệ thông tin, việc kết nối mọi người trở nên dễ dàng hơn bao giờ hết Nhận thấy nhu cầu đi chung xe của sinh viên, chúng tôi đã xây dựng nên một nền tảng quá giang trực tuyến, giúp kết nối các sinh viên có cùng lộ trình, từ đó tạo ra những chuyến đi tiết kiệm và hiệu quả
Đề tài "Xây dựng website Student Booking" ra đời nhằm đáp ứng nhu cầu thực tế của các bạn sinh viên hiện nay Việc xây dựng một nền tảng trực tuyến giúp các bạn sinh viên không chỉ dễ dàng tìm kiếm và đặt các chuyến xe mà còn chia sẻ chi phí đi lại Thông qua đó, kết nối các bạn sinh viên lại vi nhau giúp tạo mối quan hệ lành mạnh giúp đỡ ln nhau trong cuộc sống
Trong tiểu luận này, em sẽ trình bày các bưc nghiên cứu và phát triển trang web, từ khâu phân tích yêu cầu đến thiết kế và triển khai Qua đó, hy vọng sẽ mang lại giải pháp tối ưu cho vấn đề đi lại của sinh viên và góp phần xây dựng một cộng đồng chia sẻ thông minh
Chương 1: Gii thiệu
Chương 2: Cơ sở lý thuyết
Chương 3: Phân tích hệ thống
Chương 4: Thiết kế hệ thống
Chương 5: Công nghệ và công cụ sử dụng
Chương 6: Triển khai và phát triển hệ thống
Chương 7: Kiểm thử hệ thống
Trang 11Chương 8: Kết luận và hưng phát triển
Trang 12CHƯƠNG 1 TỔNG QUAN
1.1 Lý do chọn đề tài.
Sinh viên thường có nhu cầu di chuyển giữa các địa điểm như trường học, ký túc xá, và nhà riêng Tuy nhiên, không phải ai cũng có phương tiện cá nhân hoặc đủ điều kiện sử dụng các dịch vụ công cộng một cách thuận tiện Trong bối cảnh công nghệ thông tin và internet phát triển mạnh mẽ, việc kết nối và chia sẽ dễ dàng hơn Đặc biệt, việc tận dụng công nghệ để cải thiện chất lượng cuộc sống và hỗ trợ cộng đồng đang là xu hưng được khuyến khích Xuất phát từ nhu cầu di chuyển thường xuyên và tiết kiệm chi phí của sinh viên, cùng mong muốn xây dựng một cộng đồng chia sẻ thân thiện và bền vững, nhóm chúng em đã chọn đề tài phát triển ứng dụng web Student Book dành cho sinh viên
Đây không chỉ là giải pháp hỗ trợ việc đi lại mà còn là cầu nối để thúc đẩy sự gắn kết, tạo cơ hội để các sinh viên kết nối, chia sẻ phương tiện và xây dựng mối quan
hệ tốt đẹp vi nhau Điều này không chỉ mang lại lợi ích thiết thực mà còn tạo ra một môi trường gắn kết và hỗ trợ ln nhau trong trường học
Ngoài ra, ứng dụng góp phần quan trọng trong việc bảo vệ môi trường Việc chia sẻ phương tiện giúp giảm số lượng xe lưu thông trên đường, từ đó hạn chế lượng khí thải và giảm thiểu tình trạng tắc nghẽn giao thông Điều này không chỉ có lợi cho người dùng mà còn góp phần xây dựng ý thức bảo vệ môi trường trong cộng đồng.Ứng dụng cũng mang lại lợi ích trong việc nâng cao ý thức và trách nhiệm cộngđồng Người dùng có thể đánh giá và phản hồi về các chuyến đi, từ đó xây dựng một
hệ thống dịch vụ an toàn và đáng tin cậy Điều này khuyến khích sinh viên tuân thủ các quy định và tạo ra một môi trường sử dụng ứng dụng lành mạnh
Vì những lý do trên, đề tài "Xây dựng web Student Booking" được lựa chọn nhằm mang lại một giải pháp toàn diện và thuận tiện cho cộng đồng sinh viên Websitekhông chỉ góp phần giải quyết những khó khăn trong việc di chuyển hiện tại mà còn thúc đẩy sự gắn kết, hỗ trợ ln nhau giữa các sinh viên Đồng thời, hệ thống này còn
Trang 13mở ra cơ hội phát triển và mở rộng trong tương lai, đáp ứng nhu cầu của các cộng đồng khác.
1.2 Mục tiêu của đề tài.
Mục tiêu chính của đề tài "Xây dựng website Student Booking" là phát triển một nền tảng trực tuyến giúp sinh viên dễ dàng kết nối để chia sẻ phương tiện di chuyển Hệ thống này không chỉ hỗ trợ sinh viên trong việc di chuyển hàng ngày mà còn góp phần xây dựng một cộng đồng đoàn kết, an toàn, và tiết kiệm Cụ thể, các mụctiêu bao gồm:
- Xây dựng hệ thống quản lý chuyến đi: Phát triển một giao diện trực quan,
dễ sử dụng, cho phép sinh viên tạo và tìm kiếm các chuyến đi phù hợp Hệ thống cần hỗ trợ việc đặt chỗ, quản lý chi tiết chuyến đi như thời gian, điểm
đi, điểm đến và chi phí chia sẻ
- Tích hợp hệ thống đ*nh gi* người dùng: Cung cấp chức năng để sinh viên
đánh giá ln nhau vi hai mục riêng biệt: đánh giá khi làm tài xế và khi làm hành khách Điều này giúp tăng cường tính minh bạch và đáng tin cậy cho
hệ thống
- Ph*t triển hệ thống quản lý người dùng: Cho phép sinh viên quản lý thông tin cá nhân, xem lịch sử các chuyến đi đã tham gia, và chỉnh sửa thông tin cá nhân Quản trị viên sẽ có khả năng giám sát, quản lý các chuyến
đi và tài khoản để đảm bảo chất lượng dịch vụ
- Đảm bảo an toàn và bảo mật thông tin: Áp dụng các giải pháp bảo mật
như mã hóa mật khẩu, hệ thống xác thực vi Refresh Token, và bảo vệ dữ liệu người dùng để đảm bảo an toàn thông tin cá nhân
- Ph*t triển hệ thống nhắn tin giữa người dùng: Cung cấp tính năng nhắn
tin trực tuyến để sinh viên có thể trao đổi thông tin về chuyến đi, xác nhận điểm đón, hoặc giải đáp các thắc mắc một cách nhanh chóng và thuận tiện
Hệ thống nhắn tin cần đảm bảo an toàn, bảo mật và dễ sử dụng
Trang 14- Tối ưu hóa trải nghiệm người dùng: Thiết kế giao diện thân thiện, hoạt
động mượt mà trên cả máy tính và thiết bị di động, đảm bảo sinh viên dễ dàng truy cập và sử dụng
1.3 Hiện trạng doanh nghiệp.
Phạm vi nghiên cứu của đề tài "Xây dựng website Student Booking" bao gồm:
- Đối tượng nghiên cứu:
o Xây dựng hệ thống website cho phép sinh viên tìm kiếm và đăng ký các chuyến đi chung, đáp ứng nhu cầu di chuyển hàng ngày
o Hỗ trợ người dùng tìm kiếm thông tin chi tiết về chuyến đi, tài xế, hoặc hành khách tiềm năng
o Người dùng có thể quản lý thông tin cá nhân, lịch sử các chuyến đi
đã tham gia và đánh giá trải nghiệm
- Phạm vi tính năng:
o Quản lý chuyến đi: Cho phép sinh viên tạo, tìm kiếm, và tham gia cácchuyến đi, bao gồm quản lý thông tin điểm đi/đến, thời gian, và chi phí chia sẻ
o Tính năng đánh giá người dùng: Tích hợp hệ thống đánh giá, cho phép sinh viên đánh giá tài xế hoặc hành khách để tăng tính minh bạch và đáng tin cậy
o Quản lý người dùng: Cho phép đăng nhập và thay đổi mật khẩu tài khoản cá nhân Hệ thống quản trị viên sẽ có khả năng giám sát và quản lý các chuyến đi, tài khoản, cũng như nội dung đánh giá
o Thông báo và nhắc nhở: Hỗ trợ gửi thông báo về các chuyến đi đã đặthoặc thay đổi, cùng vi gợi ý các chuyến đi tiềm năng
Trang 15o Cơ sở dữ liệu: Sử dụng MongoDB để lưu trữ thông tin về người dùng, thú cưng, sản phẩm và các dịch vụ.
o Bảo mật: Đảm bảo bảo mật thông tin người dùng và thanh toán qua các phương thức bảo mật cơ bản như mã hóa mật khẩu, token đăng nhập
- Phạm vi triển khai:
o Hệ thống được triển khai trên nền tảng đám mây để hỗ trợ việc truy cập từ nhiều thiết bị, đảm bảo khả năng mở rộng và tính ổn định
1.4 Phương ph*p nghiên cứu.
Để hoàn thành đề tài "Xây dựng website đặt lịch, bán thú cưng và đồ chăm sóc thú cưng," các phương pháp nghiên cứu chính được áp dụng như sau:
- Phương pháp nghiên cứu tài liệu:
o Thu thập và nghiên cứu các tài liệu, bài viết liên quan đến việc xây dựng và phát triển hệ thống thương mại điện tử
o Tham khảo các mô hình thiết kế website bán hàng, hệ thống quản lý sản phẩm và dịch vụ chăm sóc thú cưng, từ đó chọn lọc các phương pháp phù hợp để áp dụng
o Ngoài ra, nghiên cứu các giải pháp bảo mật và quản lý dữ liệu để đảm bảo tính bảo mật và hiệu quả cho hệ thống
- Phương pháp phân tích hệ thống:
o Phân tích các yêu cầu người dùng thông qua khảo sát và thu thập thông tin, từ đó xây dựng mô hình use case cho các chức năng chính của hệ thống
o Phân tích các thành phần chức năng hệ thống gồm quản lý sản phẩm, giỏ hàng, đặt lịch chăm sóc và quản lý người dùng
- Phương pháp thiết kế và phát triển phần mềm:
o Thiết kế giao diện: Sử dụng các công cụ thiết kế giao diện người dùng (UI) như Figma hoặc Adobe XD để mô phỏng và tối ưu hóa trảinghiệm người dùng (UX)
Trang 16o Phát triển website: Sử dụng các công nghệ web hiện đại như React hoặc Next.js để phát triển giao diện, Node.js và Express để xây dựng backend, và MongoDB làm cơ sở dữ liệu chính.
o Kiểm thử phần mềm: Áp dụng các kỹ thuật kiểm thử đơn vị (unit testing) và kiểm thử tích hợp (integration testing) để đảm bảo hệ thống hoạt động ổn định và đúng chức năng
- Phương pháp thử nghiệm và đánh giá:
o Tiến hành thử nghiệm hệ thống trên các thiết bị và trình duyệt khác nhau để đảm bảo tính tương thích và ổn định
o Thu thập phản hồi từ người dùng thử nghiệm để cải tiến và hoàn thiện hệ thống trưc khi triển khai chính thức
Trang 17CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Gi1i thiệu về nền tảng chia sẽ chuyến đi
Nền tảng chia sẻ chuyến đi trực tuyến, là một mô hình dịch vụ dựa trên ứng dụng
di động hoặc website, cho phép người dùng tìm kiếm, đặt và chia sẻ các chuyến đi giữa các cá nhân Dịch vụ này kết nối tài xế vi hành khách thông qua một ứng dụng trực tuyến, giúp giảm chi phí di chuyển, tối ưu hóa lưu lượng giao thông, và cung cấp dịch vụ vận chuyển linh hoạt, nhanh chóng Các nền tảng này không chỉ phục vụ nhu cầu di chuyển mà còn cung cấp các dịch vụ phụ trợ như giao hàng, gọi xe ôm, và dịch
vụ thanh toán trực tuyến
Lý thuyết về nền tảng chia sẻ chuyến đi có thể chia thành các yếu tố sau:
- Kinh tế chia sẻ: Đây là mô hình kinh tế dựa trên việc chia sẻ tài nguyên chưa được khai thác Xe của các tài xế được chia sẻ vi hành khách có nhu cầu di chuyển
- Nền tảng công nghệ: Nền tảng này thường được phát triển trên các ứng dụng
di động hoặc website, sử dụng các công nghệ như GPS, thanh toán điện tử,
và hệ thống đánh giá để kết nối tài xế và hành khách một cách an toàn và hiệu quả
- Mạng lưi kết nối: Nền tảng chia sẻ chuyến đi sử dụng mạng lưi người dùng, nơi tài xế và hành khách có thể dễ dàng kết nối và tương tác, tạo ra một hệ sinh thái giao thông linh hoạt và tiết kiệm chi phí
Các nền tảng chia sẻ dịch vụ không chỉ giúp tối ưu hóa việc sử dụng tài nguyên
mà còn mang lại những trải nghiệm tiện lợi và linh hoạt cho người dùng Vi sự phát triển không ngừng của công nghệ và các nền tảng trực tuyến, xu hưng chia sẻ dịch vụ
dự kiến sẽ tiếp tục phát triển mạnh mẽ và mở rộng ra nhiều lĩnh vực, mang lại cơ hội mi cho các cộng đồng người dùng
2.2 C*c chức năng và thành phần chính của nền tảng chia sẻ chuyến đi
Nền tảng chia sẽ chuyến đi là nền tảng phần mềm cho phép doanh nghiệp điều hành và kiểm soát các hoạt động đặt xe, từ quản lý người dùng, các chuyến đi, đánh
Trang 18giá của người dung sau các chuyến đi, và thanh toán của khách hàng, thông qua các công cụ trực tuyến.
Một nền tảng chia sẻ chuyến đi thường có những tính năng và thành phần chính sau:
2.2.1 Quản lý tài khoản người dùng
Hệ thống cho phép quản lý toàn bộ thông tin người sử dụng bao gồm:
Đăng ký và x*c thực người dùng: Người dùng (bao gồm tài xế và hành
khách) cần đăng ký tài khoản trên nền tảng và cung cấp các thông tin cá nhân như tên, email, số điện thoại Hệ thống xác thực hai yếu tố giúp bảo vệ thông tin và tài khoản của người dùng.Phân loại sản phẩm:
Thông tin tài khoản và phương tiện: Tài xế cần cung cấp thông tin về phương
tiện (xe) của mình, bao gồm loại xe, biển số, và các thông tin liên quan để hành
khách có thể lựa chọn phù hợp.
2.2.2 Đặt và yêu cầu chuyến đi
Quản lý đơn hàng là một trong những chức năng cốt lõi của hệ thống Các công việcliên quan bao gồm:
Tìm kiếm chuyến đi: Hành khách có thể nhập thông tin về điểm đi, điểm đến
và thời gian cần di chuyển để hệ thống tìm kiếm và hiển thị các tài xế sẵn sàng nhận chuyến
Chấp nhận yêu cầu: Tài xế có thể chấp nhận hoặc từ chối các yêu cầu từ hành
khách dựa trên vị trí và sự phù hợp vi lịch trình của họ
Thời gian thực và định vị GPS: Hệ thống sử dụng công nghệ GPS để theo dõi
vị trí của cả tài xế và hành khách trong thời gian thực, đảm bảo chuyến đi diễn
ra suôn sẻ
Trang 192.2.3 Đánh giá và phản hồi
Hệ thống đ*nh gi*: Sau mỗi chuyến đi, cả tài xế và hành khách đều có thể
đánh giá ln nhau Các tiêu chí đánh giá bao gồm sự an toàn, thái độ phục vụ,
và thời gian đến nơi
Phản hồi và khiếu nại: Hệ thống cũng hỗ trợ các tính năng phản hồi và khiếu
nại nếu có vấn đề xảy ra trong quá trình di chuyển, giúp nâng cao chất lượng dịch vụ
2.2.4 Quản lý thanh toán
Thanh to*n trực tuyến: Hệ thống tích hợp các phương thức thanh toán trực
tuyến như thẻ tín dụng, ví điện tử (Momo, ZaloPay), hoặc thanh toán qua ngân hàng để tạo sự tiện lợi cho người dùng
Hệ thống tính phí: Mỗi chuyến đi được tính phí dựa trên quãng đường di
chuyển, thời gian và các yếu tố khác như tắc đường hoặc nhu cầu cao Các mức phí sẽ được tính toán tự động trong hệ thống
Chính s*ch hoa hồng: Tài xế sẽ nhận được một phần doanh thu từ mỗi chuyến
đi, sau khi trừ đi phí hoa hồng cho nền tảng
2.2.5 Quản lý xe và chuyến đi
Lịch sử chuyến đi: Người dùng có thể xem lại lịch sử chuyến đi của mình, bao
gồm các chuyến đi đã thực hiện và các yêu cầu chuyến đi đang chờ xử lý
Quản lý xe và phương tiện: Tài xế cần cập nhật thông tin phương tiện của
mình, bảo trì và kiểm tra định kỳ để đảm bảo chất lượng chuyến đi
2.2.6 An toàn và bảo mật
X*c thực thông tin tài xế: Trưc khi tài xế có thể nhận chuyến đi, họ phải qua
quá trình xác thực nghiêm ngặt, bao gồm kiểm tra lý lịch và giấy tờ xe để đảm bảo an toàn cho hành khách
Trang 20 Gi*m s*t chuyến đi: Nền tảng cung cấp tính năng giám sát chuyến đi trong
thời gian thực, cho phép hành khách và người thân theo dõi hành trình, giúp đảm bảo an toàn
2.3 Khảo s*t hệ thống tương tự.
Để xây dựng một website nền tảng chia sẽ chuyến đi tương tự giúp hiểu rõ hơn
về các chức năng, ưu nhược điểm, và từ đó rút ra bài học, cải thiện cho dự án của mình Dưi đây là một số hệ thống tương tự được khảo sát:
1 App Grab ( https://www grab vn )
Trang 22o Dịch vụ gọi xe: Bee cung cấp các dịch vụ gọi xe tương tự Grab, bao gồm xe ô tô (BeeCar), xe máy (BeeBike), và taxi Người dùng có thể
dễ dàng gọi xe di chuyển từ điểm A đến điểm B
o Dịch vụ giao hàng: Bee cũng cung cấp dịch vụ giao hàng
(BeeExpress), cho phép người dùng gửi đồ, giao hàng hoặc nhận hàng từ các cửa hàng, đối tác
o Dịch vụ giao đồ ăn: Vi BeeFood, người dùng có thể đặt món ăn từ các nhà hàng và được giao tận nơi
o Thanh toán điện tử: BeePay giúp người dùng thực hiện thanh toán dễ dàng qua ví điện tử của ứng dụng
o Chương trình ưu đãi: Bee cung cấp nhiều khuyến mãi, giảm giá và chương trình thưởng cho người dùng thân thiết
- Ưu điểm:
o Giao diện thân thiện: App Bee có giao diện dễ sử dụng, đơn giản và trực quan, giúp người dùng dễ dàng thực hiện các thao tác gọi xe, đặt món ăn, giao hàng
o Giá cả hợp lý: Mức giá của dịch vụ trong Bee thường cạnh tranh, giúp thu hút người dùng, đặc biệt là trong các giờ cao điểm
o Thanh toán đa dạng: Bee hỗ trợ nhiều phương thức thanh toán, từ ví điện tử BeePay đến thẻ tín dụng, giúp người dùng có nhiều lựa chọn khi thanh toán
o Chăm sóc khách hàng: Bee cung cấp hỗ trợ khách hàng tận tình, giải đáp thắc mắc và xử lý các vấn đề liên quan đến dịch vụ
- Nhược điểm:
o Chất lượng dịch vụ không đồng đều: Một số người dùng có thể gặp phải tình trạng dịch vụ không ổn định ở một số khu vực, ví dụ như không có đủ xe, xe đến chậm, hoặc chất lượng giao hàng không như mong đợi
Trang 23o Tốc độ tải trang và ứng dụng: Đôi khi, trong giờ cao điểm hoặc khi
có nhiều người dùng truy cập, tốc độ tải của ứng dụng có thể bị chậm, ảnh hưởng đến trải nghiệm người dùng
- Chức năng đa dạng: Hệ thống nên tích hợp các tính năng đa dạng để phục
vụ nhu cầu của người dùng, chẳng hạn như đặt chuyến đi, đánh giá tài xế/hành khách, và hệ thống thanh toán trực tuyến Các tính năng này cần được thiết kế đơn giản nhưng đầy đủ, giúp người dùng dễ dàng tìm thấy những gì họ cần
- Tốc độ: Tối ưu hóa tốc độ tải trang là yếu tố quan trọng để tránh tình trạng người dùng gặp phải độ trễ khi duyệt dịch vụ hoặc thực hiện giao dịch Một
hệ thống nhanh chóng sẽ giúp giữ chân người dùng lâu hơn và tăng tỉ lệ chuyển đổi
- Bảo mật: Đảm bảo an toàn cho thông tin cá nhân và giao dịch thanh toán của khách hàng là yếu tố thiết yếu Cần áp dụng các phương pháp bảo mật tiên tiến như mã hóa dữ liệu, xác thực hai yếu tố (2FA) để bảo vệ người dùng khỏi các rủi ro mất mát dữ liệu hoặc gian lận trực tuyến
Trang 242.4 Công nghệ sử dụng
2.4.1 Ngôn ngữ lập trình.
Front-end:
- React.js: Sử dụng React.js để xây dựng giao diện người dùng React cho phép
phát triển các component tái sử dụng, giúp tối ưu hóa hiệu suất và dễ dàng quản
lý trạng thái của ứng dụng
o Ưu điểm:
Cung cấp cách tiếp cận component-based, giúp dễ dàng tổ chức mã nguồn
Hỗ trợ Virtual DOM, giúp tăng tốc độ render và cải thiện hiệu suất
Có một cộng đồng ln và nhiều thư viện hỗ trợ
- Next.js: Sử dụng Next.js như một framework cho React để xây dựng ứng dụng
web vi khả năng render phía server (SSR) và tạo trang tĩnh (SSG)
o Ưu điểm:
Cải thiện SEO nhờ vào khả năng render trang trưc khi gửi ti client
Hỗ trợ tự động phân chia mã (code splitting), giúp tối ưu hóa tải trang
Cung cấp các tính năng như routing tự động và tích hợp dễ dàng vi API
- MapBox: Sử dụng MapBox kết hợp vi Next.js, một framework cho React, để
xây dựng ứng dụng web vi khả năng render phía server (SSR) và tạo trang tĩnh (SSG)
Trang 25 Routing tự động: Cung cấp routing tự động, giúp tổ chức các trang liên quan đếnbản đồ (ví dụ: hiển thị nhiều địa điểm hoặc tuyến đường) một cách dễ dàng.
Tích hợp API: Dễ dàng kết nối và sử dụng API của MapBox cho các tính năng như tìm kiếm địa điểm, chỉ đường, và lp bản đồ tùy chỉnh
- Material-UI: Sử dụng Material-UI (hiện tại gọi là MUI) để tạo giao diện người
dùng đẹp mắt và thân thiện vi người dùng
- Spring Boot: Là framework mạnh mẽ trong hệ sinh thái Java, được sử dụng để xây
dựng các ứng dụng web và API nhanh chóng và dễ dàng Spring Boot giúp đơn giản hóa việc cấu hình và triển khai ứng dụng, vi các tính năng như cấu hình tự động, hỗ trợtích hợp dễ dàng vi cơ sở dữ liệu và các dịch vụ web
- Spring MVC: Được tích hợp trong Spring Boot, Spring MVC giúp xử lý các yêu cầu
HTTP và hỗ trợ xây dựng các API RESTful Nó cung cấp các công cụ mạnh mẽ để tạo
Trang 26và quản lý các controller, service, và repository, giúp tổ chức mã nguồn một cách rõ ràng và dễ dàng bảo trì.
- RESTful API: Sử dụng kiến trúc REST để thiết kế API, giúp giao tiếp giữa front-end
và back-end một cách hiệu quả API RESTful sử dụng các phương thức HTTP như GET, POST, PUT, DELETE để xử lý các yêu cầu, giúp ứng dụng linh hoạt và dễ dàng
mở rộng
- JPA/Hibernate: Để kết nối và thao tác vi cơ sở dữ liệu, Spring Boot sử dụng JPA
(Java Persistence API) và Hibernate Đây là các công nghệ ORM giúp lưu trữ và truy xuất dữ liệu trong cơ sở dữ liệu quan hệ một cách dễ dàng
- WebSocket: Để xử lý kết nối vi client, gửi dữ liệu thời gian thực đến client, nhận dữ liệu từ client để xử lý hoặc lưu trữ
2.4.2 Cơ sở dữ liệu
- MySQL: Sử dụng MySQL làm cơ sở dữ liệu quan hệ để lưu trữ thông tin
MySQL là một hệ quản trị cơ sở dữ liệu phổ biến và mạnh mẽ, hỗ trợ các ứng dụng web vi khả năng quản lý dữ liệu hiệu quả
o Cấu trúc dữ liệu quan hệ: MySQL sử dụng mô hình dữ liệu quan hệ, trong
đó dữ liệu được lưu trữ trong các bảng vi các mối quan hệ giữa chúng Điều này giúp dễ dàng quản lý và truy vấn dữ liệu có cấu trúc rõ ràng
o Khả năng mở rộng: MySQL có thể mở rộng để xử lý lượng dữ liệu ln thông
qua việc sử dụng các kỹ thuật như phân mảnh cơ sở dữ liệu (sharding) hoặc sao lưu dữ liệu
o Hiệu suất cao: MySQL có khả năng xử lý các truy vấn nhanh chóng nhờ vào
việc tối ưu hóa các chỉ mục và bộ nh đệm, rất phù hợp cho các ứng dụng cần tốc độ truy xuất cao và tính sẵn sàng của dữ liệu
2.4.3 Các công nghệ khác.
- Gửi email thông b*o:
o JavaMail API: Sử dụng JavaMail API để gửi email từ ứng dụng, ví dụ như
email xác nhận đơn hàng, thông báo đặt lịch, hoặc gửi các thông tin liên quan cho người dùng JavaMail là một thư viện mạnh mẽ và linh hoạt, hỗ trợ nhiều
Trang 27giao thức và tùy chỉnh cấu hình, cho phép bạn dễ dàng tích hợp gửi email trong các ứng dụng Java.
- Quản lý mã nguồn:
o Git: Sử dụng Git để quản lý mã nguồn và theo dõi sự thay đổi trong quá trình
phát triển Git giúp làm việc nhóm dễ dàng hơn thông qua việc phân nhánh, quản lý phiên bản, và hợp nhất mã Thường được tích hợp vi các nền tảng như GitHub hoặc GitLab để hỗ trợ quản lý dự án hiệu quả
- Kiểm thử API:
o Postman: Sử dụng Postman để kiểm thử các API Postman cung cấp giao diện
thân thiện để gửi yêu cầu HTTP và kiểm tra phản hồi từ server, giúp đảm bảo rằng API hoạt động đúng như mong đợi trưc khi triển khai thực tế
Trang 28CHƯƠNG 3 PHÂN TÍCH HỆ THỐNG
3.1 Phân tích yêu cầu.
3.1.1 Yêu cầu chức năng.
Trong quá trình phát triển website "Xây dựng website Student Booking" các yêu cầu chức năng chính bao gồm:
- Quản lý tài khoản người dùng:
o Người dùng có thể đăng nhập, đăng xuất
o Chức năng quản lý tài khoản bao gồm chỉnh sửa thông tin cá nhân, đổi mật khẩu, và khôi phục mật khẩu
- Chức năng tìm kiếm, tạo và xem bài đăng chuyến xe :
o Người dùng có thể tìm kiếm bài đăng chuyến xe bao gồm kênh tài xế
- Quản lý bài đăng:
o Người dùng có thể chỉnh sửa bài đăng bao gồm nơi đi, nơi đến, giờ xuất phát, và số tiền cho chuyến xe
o Có thể chấp nhận một trong những yêu cầu gửi ti bài đăng của mìnhbao gồm người gửi, nơi đi, nơi đến, giờ xuất phát, số tiền cho chuyến
xe này
- Đánh giá và phản hồi:
Trang 29o Người dùng có thể để lại đánh giá, bình luận sau chuyến xe.
o Hệ thống quản lý các đánh giá này và hiển thị công khai trên trang cánhân của người được đánh giá
3.1.2 Yêu cầu phi chức năng.
Các yêu cầu phi chức năng (Non-functional Requirements) của hệ thống " Xây dựng website Student Booking " bao gồm:
- Hiệu năng (Performance):
o Thời gian phản hồi khi tải trang không quá 3 giây
o Hệ thống phải có khả năng xử lý đồng thời ít nhất 1000 yêu cầu từ người dùng trong giờ cao điểm mà không gây chậm trễ
o Thời gian xử lý các thao tác hiện thông báo, yêu cầu ti diễn ra trong vòng 5 giây
- Độ tin cậy (Reliability):
o Khả năng phục hồi: Hệ thống phải có khả năng khôi phục nhanh chóng trong trường hợp có sự cố, chẳng hạn như server bị lỗi
o Đảm bảo uptime: Hệ thống phải đảm bảo thời gian hoạt động (uptime) ít nhất 99,9% trong suốt một tháng
o Dự phòng: Dữ liệu của người dùng phải được sao lưu định kỳ để tránh mất mát thông tin quan trọng
- Tính bảo mật (Security):
Trang 30o Xác thực và phân quyền: Hệ thống phải sử dụng các phương pháp bảo mật hiện đại cho xác thực (JWT, OAuth) và phân quyền người dùng.
o Mã hóa dữ liệu: Dữ liệu nhạy cảm (như mật khẩu, thông tin cá nhân) phải được mã hóa trưc khi lưu vào cơ sở dữ liệu
o Bảo vệ khỏi các lỗ hổng bảo mật: Hệ thống phải được bảo vệ khỏi các cuộc tấn công như SQL Injection, Cross-Site Scripting (XSS), và Cross-Site Request Forgery (CSRF)
o Xác thực hai yếu tố (2FA): Có thể yêu cầu xác thực hai yếu tố cho các thao tác quan trọng (ví dụ, thay đổi mật khẩu, thay đổi thông tin tài khoản)
- Khả năng sử dụng (Usability):
o Giao diện người dùng: Giao diện phải thân thiện, dễ sử dụng và phù hợp vi đa dạng người dùng (sinh viên từ nhiều khoa và năm học khác nhau)
o Tính tương thích đa thiết bị: Website cần tương thích vi các thiết bị
di động, máy tính bảng và máy tính để bàn
o Trải nghiệm người dùng (UX): Cần đảm bảo trải nghiệm mượt mà,
dễ hiểu và không có nhiều bưc thao tác phức tạp
- Khả năng bảo trì (Maintainability):
o Quản lý mã nguồn: Mã nguồn phải dễ dàng quản lý và bảo trì, sử dụng các công cụ kiểm soát phiên bản như Git
o Tài liệu hệ thống: Tài liệu về kiến trúc hệ thống, API, và các hưng dn sử dụng phải được cung cấp đầy đủ và dễ hiểu cho đội ngũ phát triển và bảo trì
- Khả năng sử dụng (Usability):
o Giao diện người dùng thân thiện, dễ hiểu, tương thích trên cả máy tính và thiết bị di động (responsive design)
Trang 31o Hỗ trợ đa ngôn ngữ (nếu cần), tối ưu hóa trải nghiệm người dùng để
dễ dàng tìm kiếm và mua sắm sản phẩm, đặt lịch dịch vụ
o Cung cấp hưng dn sử dụng rõ ràng cho người dùng mi
- Tuân thủ pháp lý (Compliance to the law):
o Bảo vệ dữ liệu cá nhân: Cần tuân thủ các quy định về bảo vệ dữ liệu
cá nhân như GDPR (nếu có sinh viên quốc tế)
o Chính sách bảo mật: Cung cấp chính sách bảo mật rõ ràng cho người dùng, bao gồm cách thức thu thập, sử dụng và bảo vệ thông tin cá nhân
3.2 Đặc tả hệ thống
3.2.1 Đặc tả chức năng chính
Dưi đây là các chức năng chính của hệ thống website Student Booking:
- Danh sách bài đăng chuyến xe:
o Hiển thị danh sách bài đăng: Cung cấp danh sách bài đăng chuyến xe bao gồm kênh tài xế và kênh khách hàng
o Chi tiết bài đăng: Bao gồm địa điểm đi, địa điểm ti, thời gian xuất phát và người đăng
- Tạo bài đăng chuyến xe
o Chọn địa điểm và thời gian: Người dùng có thể chọn các địa điểm đi, địa điểm ti và thời gian xuất phát
o Chọn yêu cầu phù hợp: Người dùng có thể chọn yêu cầu được gửi tibài đăng mà người dung thấy phù hợp nhất
- Tài Khoản Người Dùng
o Đăng nhập, đăng xuất và quản lý thông tin cá nhân: Người dùng có thể đăng nhập, đăng xuất và cập nhật thông tin cá nhân khi cần thiết
o Xem lịch sử bài đăng và những đánh giá về mình: Người dùng có thể xem lại lịch sử các bài đăng đã tạo và các đánh giá phản hồi về mình
- Chức năng nhắn tin:
Trang 32o Người dùng có thể nhắn tin trực tiếp cho người gửi yêu cầu ti bài đăng hoặc người tạo bài đăng.
Trang 33- Đánh Giá và Nhận Xét chuyến đi
o Gửi đánh giá: Người dùng có thể để lại đánh giá cho tài xế hoặc khách hàng khi kết thúc chuyến đi
o Xem đánh giá: Hiển thị các đánh giá và nhận xét từ người khác về tài
xế cũng như khách hàng để giúp người dùng có được thông tin hữu ích
- Tìm Kiếm Nâng Cao
o Bộ lọc tìm kiếm: Người dùng có thể sử dụng các bộ lọc để tìm kiếm bài đăng theo giờ
o Tìm kiếm theo từ khóa: Cung cấp chức năng tìm kiếm theo từ khóa
để người dùng dễ dàng tìm bài đăng đúng như mong muốn
3.2.2 Đặc tả phi chức năng
- Hiệu suất (Performance)
o Tốc độ tải trang: Website phải tải nhanh, vi thời gian phản hồi dưi
3 giây cho hầu hết các thao tác, bao gồm gửi yêu cầu, tạo bài đăng vàđánh giá
o Xử lý song song: Hệ thống có khả năng xử lý nhiều yêu cầu cùng lúc
mà không làm giảm hiệu suất, đảm bảo sự mượt mà trong trải nghiệmngười dùng khi có lưu lượng truy cập cao
- Khả năng mở rộng (Scalability)
o Hệ thống phải có khả năng mở rộng theo chiều dọc và chiều ngang đểđáp ứng nhu cầu tăng trưởng về người dùng và dữ liệu mà không ảnhhưởng đến hiệu suất
o Mở rộng cơ sở dữ liệu: Đảm bảo cơ sở dữ liệu có thể mở rộng khi số lượng sản phẩm, người dùng và lịch đặt dịch vụ tăng lên
- Bảo mật (Security)
o Bảo vệ dữ liệu người dùng: Thông tin cá nhân
Trang 34o Xác thực và phân quyền: Đảm bảo hệ thống có cơ chế xác thực mạnh
mẽ (như OAuth, JWT) và phân quyền truy cập rõ ràng, chỉ cho phép người dùng có quyền truy cập vào các tính năng phù hợp
o Chống lại các cuộc tấn công mạng: Hệ thống phải được bảo vệ trưc các mối đe dọa như SQL Injection, XSS (Cross-site scripting), và CSRF (Cross-site request forgery)
- Khả năng chịu lỗi (Fault Tolerance)
o Hệ thống phải có khả năng xử lý lỗi một cách linh hoạt, đảm bảo nếu một phần của hệ thống gặp sự cố, các phần khác vn hoạt động bình thường
o Tự động sao lưu: Cơ chế sao lưu dữ liệu tự động hàng ngày để tránh mất dữ liệu trong trường hợp sự cố xảy ra
- Khả năng tương thích (Compatibility)
o Đa nền tảng: Website phải tương thích vi các trình duyệt phổ biến như Chrome, Firefox, Safari, và Microsoft Edge
o Đa thiết bị: Website phải hiển thị đúng và hoạt động mượt mà trên mọi thiết bị, bao gồm cả máy tính, máy tính bảng và điện thoại di động (đáp ứng đầy đủ các tiêu chí Responsive Web Design)
- Khả năng bảo trì (Maintainability)
o Dễ dàng bảo trì và cập nhật: Hệ thống phải được xây dựng để dễ dàng cập nhật, mở rộng tính năng, và khắc phục lỗi mà không ảnh hưởng đến toàn bộ hệ thống
o Tách biệt các thành phần: Cấu trúc hệ thống phải rõ ràng và các thành phần phải được tách biệt theo mô hình MVC hoặc tương tự, giúp dễ dàng bảo trì
- Khả năng sử dụng (Usability)
o Giao diện thân thiện vi người dùng: Hệ thống cần có giao diện đơn giản, trực quan và dễ sử dụng, vi tạo bài đăng rõ ràng, hạn chế thao tác phức tạp
Trang 35o Tối ưu cho người dùng: Hỗ trợ tính năng tự động hoàn thành, gợi ý sản phẩm, và các chức năng thuận tiện cho người dùng.
- Khả năng đáp ứng (Availability)
o Hệ thống sẵn sàng 24/7: Đảm bảo website hoạt động liên tục, có thời gian downtime tối thiểu để người dùng có thể truy cập và sử dụng dịch vụ bất kỳ lúc nào