Professional Documents
Culture Documents
==================================
MÔN HỌC
ĐỀ TÀI:
2. Vũ Trung An – N19DCCN003
1
LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời tri ân sâu sắc đến thầy trường Học Viện
Công Nghệ Bưu Chính Viễn thông cơ sở tại TP.HCM đã tận tình
dẫn dắt và truyền đạt cho em rất nhiều kiến thức quý báu trong các
học kỳ vừa qua.
Đặc biệt, em xin gửi lời cảm ơn chân thành đến cô Dương Thanh
Thảo. Cô đã hướng dẫn tận tình, truyền đạt kiến thức, chỉ bảo cho
em trong suốt thời gian học tập và thực hiện đề tài. Kính chúc cô và
gia đình nhiều sức khoẻ và thành công trong cuộc sống.
Và xin chân thành cảm ơn tất cả các bạn đã luôn sát cánh, giúp đỡ,
động viên mình trong những thời điểm khó khăn, tiếp thêm động
lực và ý chí giúp vượt qua khó khăn trong suốt quá trình học tập tại
trường.
Tuy nhiên, vì thời gian và kiến thức chuyên môn còn hạn chế cùng
nhiều yếu tố khách quan khác nên trong quá trình thực hiện đề tài
không tránh khỏi những sai sót. Kính mong được lời nhận xét và
góp ý của cô, để em có thể hoàn thiện bản thân mình hơn.
2
NỘI DUNG CHỈNH SỬA
Phần 1:
● Bổ sung sơ đồ use case tổng quát.
● Sửa include ( đăng nhập ) thành extend ở sơ đồ use case
Phần 2:
● Biểu đồ lớp tổng quát, sửa lại các biểu đồ lớp chi tiết hợp lý
● Bổ sung, chỉnh sửa biểu đồ trạng thái.
Phần 3:
3
Mục lục
PHẦN I: XÁC ĐỊNH YÊU CẦU HỆ THỐNG 1
1. 1 Vẽ sơ đồ mô hình hoạt động, workflow của hệ thống 1
1.1.1 Mô hình sơ đồ hoạt động 1
1.1.2 Workflow 2
1. 2 Mô tả yêu cầu hệ thống 2
1.2.1 Yêu cầu nghiệp vụ 2
1.2.2 Yêu cầu hệ thống 4
1.3 Biểu đồ Use-case 5
1.3.1 Đăng ký tài khoản 6
1.3.2. Đăng nhập 8
1.3.3 Đặt phòng 10
1.3.4 Quản lý đơn phòng cá nhân 11
1.3.5 Quản lý khách sạn 13
1.3.6 Quản lý phòng 15
1.3.7 Quản lý đơn đặt phòng 17
1.3.8 Quản lý khách hàng 19
1.3.9 Quản lý người dùng 21
1.3.10 Quản lý chủ khách sạn 23
1.4. Biểu đồ hoạt động 25
1.4.1. Biểu đồ hoạt động đặt phòng 25
1.4.2. Biểu đồ hoạt động hủy phòng 25
1.4.3. Biểu đồ hoạt động đổi phòng 26
1.4.4. Biểu đồ hoạt động tạo khách sạn 26
1.4.5. Biểu đồ hoạt động tạo phòng 27
1.5. Biểu đồ tuần tự 27
1.5.1. Biểu đồ tuần tự tìm kiếm khách sạn 27
4
1.5.2. Biểu đồ tuần tự tạo khách sạn 28
1.5.3. Biểu đồ tuần tự đặt phòng 28
1.5.4. Biểu đồ tuần tự hủy phòng 29
1.5.5. Biểu đồ tuần tự đổi phòng 29
PHẦN II: PHÂN TÍCH HỆ THỐNG 30
2.1 Mô tả phân tích hệ thống 30
2.2 Vẽ biểu đồ các lớp tương ứng 35
2.2.1 Lớp vai trò 35
2.2.2 Lớp người dùng 35
2.2.4 Lớp người dùng 36
2.2.3 Lớp khách sạn 36
2.2.4 Lớp phòng 37
2.2.5 Lớp đánh giá 37
2.2.6 Lớp hình ảnh 37
2.2.7 Lớp tài khoản thanh toán 38
2.2.8 Lớp quản lý người dùng 38
2.2.9 Lớp quản lý đơn đặt phòng 39
2.2.10 Lớp loại giảm giá 39
2.2.11 Lớp giảm giá 40
2.2.12 Lớp phương thức thanh toán 40
2.2.13 Lớp phí dịch vụ khách sạn 40
2.2.14 Lớp quản lý chủ khách sạn 41
2.2.15 Lớp thu phí dịch vụ khách sạn 41
2.2.16 Lớp thanh toán online 42
2.2.17 Lớp phiếu đặt 42
2.2.18 Lớp chi tiết phiếu đặt 43
2.2.19 Lớp quản lý khách hàng 43
2.3 Vẽ các biểu đồ trạng thái tương ứng 44
2.3.1 Biểu đồ trạng thái giảm giá 44
2.3.2 Biểu đồ trạng thái tạo phòng của chủ khách sạn 44
2.3.3 Biểu đồ trạng thái phòng 45
5
2.3.4 Biểu đồ trạng thái đặt phòng 45
2.3.5 Biểu đồ trạng thái phiếu đặt 46
PHẦN III. THIẾT KẾ HỆ THỐNG 46
3.1 Thiết kế kiến trúc hệ thống: 46
3.1.1 Lựa chọn công nghệ mạng - kiến trúc hạ tầng 46
3.2 Lựa chọn CSDL, các công nghệ ứng dụng trong hệ thống. Có giải thích
lý do lựa chọn 47
3.2.1 Hệ quản trị cơ sở dữ liệu: MySQL 47
3.2.2 Công cụ lập trình: 48
3.2.3 Công nghệ lập trình phía server 50
3.2.4 Công nghệ lập trình phía client 52
3.2.5 Công nghệ quản lý source code 53
3.3 Vẽ biểu đồ thiết kế cơ sở dữ liệu 54
3.4 Thiết kế một số giao diện người dùng 55
3.4.1. Giao diện tìm kiếm 55
3.4.2. Giao diện xem khách sạn 55
3.4.3 Giao diện xem đơn phòng cá nhân 56
6
Danh mục hình ảnh
Hình 1. Sơ đồ ngữ cảnh 1
Hình 2. Hình workflow đặt phòng 2
Hình 3. Đăng ký tài khoảng 5
Hình 4. Đăng nhập 7
Hình 5. Đặt phòng 9
Hình 6. Quản lý đơn phòng cá nhân 11
Hình 7. Quản lý khách sạn 13
Hình 8. Quản lý phòng 15
Hình 9. Quản lý đơn đặt phòng 17
Hình 10. Quản lý khách hàng 19
Hình 11. Quản lý người dùng 21
Hình 12. Quản lý chủ khách sạn 23
Hình 13. Biểu đồ hoạt động đặt phòng 25
Hình 14. Biểu đồ hoạt động hủy phòng 25
Hình 15. Biểu đồ hoạt động đổi phòng 26
Hình 16. Biểu đồ hoạt động tạo khách sạn 26
Hình 17. Biểu đồ hoạt động tạo phòng 27
Hình 18. Biểu đồ tuần tự tìm kiếm khách sạn 27
Hình 19. Biểu đồ tuần tự tạo khách sạn 28
Hình 20. Biểu đồ tuần tự đặt phòng 28
Hình 21. Biểu đồ tuần tự hủy phòng 29
Hình 22. Biểu đồ tuần tự đổi phòng 29
Hình 23. Hoạt động tìm phòng 42
Hình 24. Hoạt động tạo phòng của chủ khách sạn 43
Hình 25. Hoạt động quản trị chủ khách sạn và khách hàng 44
Hình 26. Hoạt động thanh toán 45
7
Hình 27. Giao diện tìm kiếm 54
Hình 28. Giao diện xem khách sạn 54
Hình 29, Giao diện xem đơn phòng cá nhân 55
8
PHẦN I: XÁC ĐỊNH YÊU CẦU HỆ THỐNG
1
1.1.2 Workflow
Khi truy cập vào hệ thống website quản lý đặt phòng khách sạn, hệ thống
cho phép tìm kiếm, xem chi tiết khách sạn mà không cần đăng nhập. Nếu
muốn sử dụng các chức năng khác của hệ thống dựa theo phân quyền của tài
khoản thì yêu cầu người dùng phải đăng nhập vào hệ thống trước, nếu không
thì phải đăng ký tài khoản.
Hệ thống gồm 3 site: site khách hàng, site chủ khách sạn và site người
quản trị
● Khách hàng gồm khách đã đăng ký tài khoản hoặc chưa đăng ký tài
2
● Khách hàng đã đăng ký tài khoản có thêm chức năng:
o Khi đặt phòng được chọn hình thức thanh toán online hoặc trực tiếp
o Xem đơn phòng đang đặt, lịch sử đơn phòng đã đặt, đã hủy, đã đổi
o Xem thống kê
● Chủ khách sạn đã đăng ký tài khoản có các chức năng sau:
3
▪ Phản hồi, trả lời bình luận của khách hàng
▪ Gửi thông báo cho khách hàng khi có sự kiện, giảm giá
▪ Xác nhận đơn phòng (đơn đặt, đơn hủy, đơn đổi)
4
● Quản lý website:
Hệ thống website quản lý đặt phòng khách sạn được xây dựng nhằm giải
quyết các vấn đề sau:
1. Người dùng được đăng ký tài khoản, đăng nhập, quản lý thông tin cá nhân
2. Giúp khách hàng xem, tìm kiếm khách sạn theo nhu cầu
5. Hỗ trợ chủ khách sạn quản lý khách hàng, quản lý khách sạn
6
Điều kiện kích hoạt Chọn chức năng đăng ký ở hệ thống
Hậu điều kiện - Nếu thành công: Hệ thống hiển thị giao diện đăng ký
thành công. Actor có thể đăng nhập vào hệ thống
2. Hệ thống đóng
7
1.3.2. Đăng nhập
Điều kiện kích hoạt Chọn chức năng đăng nhập ở hệ thống
Tiền điều kiện Tác nhân chưa đăng nhập vào hệ thống
Hậu điều kiện - Nếu thành công: Hệ thống hiển thị giao diện chính.
Actor có thể thực hiện chức năng theo đúng quyền hạn
của mình
- Nếu thất bại: Hệ thống đưa ra thông báo “Sai thông tin
8
đăng nhập” và yêu cầu đăng nhập lại.
Luồng sự kiện chính 1. Hệ thống hiển thị giao diện đăng nhập
2. Hệ thống đóng
9
1.3.3 Đặt phòng
Điều kiện kích hoạt Chọn chức năng đặt phòng ở giao diện xem khách sạn
Hậu điều kiện - Nếu thành công: Đơn đặt phòng được tạo
10
Luồng sự kiện phụ - Dòng sự kiện phụ 1
2. Hệ thống đóng
11
Mô tả Actor sử dụng Use-case này để thực hiện quản lý với đơn
đặt phòng của mình như: hủy phòng, đổi phòng
Điều kiện kích hoạt Chọn chức năng đơn phòng cá nhân
Hậu điều kiện - Nếu thành công: Đơn phòng được cập nhập thành công
vào hệ thống
Luồng sự kiện chính 1. Actor chọn chức năng đơn phòng cá nhân
2. Hệ thống đóng
12
3. Kết thúc Use case
Điều kiện kích hoạt Chọn chức năng quản lý khách sạn
13
- Đối với sửa, xóa khách sạn thì không được có đơn đặt
phòng ở khách sạn đó
Hậu điều kiện - Nếu thành công: Khách sạn được cập nhập thông tin
2. Hệ thống đóng
14
1.3.6 Quản lý phòng
Điều kiện kích hoạt Chọn chức năng phòng ở trong khách sạn
- Đối với sửa, xóa phòng thì không được có đơn đặt phòng
Hậu điều kiện - Nếu thành công: Phòng được cập nhập thông tin
15
4. Hệ thống lưu thông tin vào cơ sở dữ liệu
2. Hệ thống đóng
16
Tên Use-Case Quản lý đơn đặt phòng
Hậu điều kiện - Nếu thành công: Xem được thống kê, đơn đã đặt, đã hủy,
đang đặt và xác nhận được đơn
Luồng sự kiện chính 1. Actor chọn mục quản lý đơn đặt phòng
2. Hệ thống đóng
17
1. Actor thực hiện thao tác
Điều kiện kích hoạt Chọn chức năng quản lý khách hàng
18
Hậu điều kiện - Nếu thành công: xem thống kê, xem điểm tích lũy, xem
KH đang bị phạt, đã bị phạt và xử phạt khách hàng
2. Hệ thống đóng
19
1.3.9 Quản lý người dùng
Điều kiện kích hoạt Chọn chức năng quản lý người dùng
Hậu điều kiện - Nếu thành công: xem thống kê, xem điểm tích lũy, xem
ND đang bị phạt, đã bị phạt và xử phạt khách hàng
20
3. Hệ thống kiểm tra hợp lệ
2. Hệ thống đóng
21
Hình 12. Quản lý chủ khách sạn
Điều kiện kích hoạt Chọn chức năng quản lý chủ khách sạn
Hậu điều kiện - Nếu thành công: xem thống kê, xem điểm tích lũy, xem
CKS đang bị phạt, đã bị phạt và xử phạt khách hàng
Luồng sự kiện chính 1. Actor chọn mục quản lý chủ khách sạn
2. Hệ thống đóng
22
- Dòng sự kiện phụ 2
23
1.4.2. Biểu đồ hoạt động hủy phòng
24
1.4.4. Biểu đồ hoạt động tạo khách sạn
25
1.5. Biểu đồ tuần tự
26
1.5.3. Biểu đồ tuần tự đặt phòng
27
1.5.5. Biểu đồ tuần tự đổi phòng
STT Các đối tượng tham Các hoạt động, tương tác của các đối tượng
gia vào hệ thống tham gia vào hệ thống
1 Người dùng
28
● Chủ khách sạn
● Thống kê về tình hình kinh doanh.
29
đăng nhập, đăng ký và quản lý thông tin cá
nhân
2 Vai trò ● Chứa quyền hạn của tài khoản người dùng
30
5 Đánh giá ● Khách hàng đánh giá, nhận xét về khách
sạn đã thuê
9 Hóa đơn ● Chứa các thông tin cơ bản của hóa đơn
10 Chi tiết hóa đơn ● Chứa tất cả các thông tin liên quan của hóa
đơn
31
● Tính tiền thuê dịch vụ web
15 Hệ thống quản lý
● Do người quản trị điều hành
người dùng
32
● Quản lý thông tin người dùng
17 Giảm giá
● Dùng điểm tích lũy để quy đổi giảm giá
33
2.2 Vẽ biểu đồ các lớp tương ứng
34
2.2.4 Lớp người dùng
35
2.2.4 Lớp phòng
36
2.2.7 Lớp tài khoản thanh toán
37
2.2.9 Lớp quản lý đơn đặt phòng
38
2.2.11 Lớp giảm giá
39
2.2.14 Lớp quản lý chủ khách sạn
40
2.2.16 Lớp thanh toán online
41
2.2.18 Lớp chi tiết phiếu đặt
42
2.3 Vẽ các biểu đồ trạng thái tương ứng
2.3.2 Biểu đồ trạng thái tạo phòng của chủ khách sạn
Hình 24. Trạng thái tạo phòng của chủ khách sạn
43
2.3.3 Biểu đồ trạng thái phòng
44
2.3.5 Biểu đồ trạng thái phiếu đặt
Lý do chọn mô hình:
45
● Giúp khách hàng có thể sử dụng được dịch vụ bằng bất kỳ thiết bị nào
có hỗ trợ giao thức truyền thông. Ví dụ có thể đặt phòng bằng điện
thoại, laptop, máy tính bảng…
● Dễ dàng bảo trì code vì có phân chia trách nhiệm cho máy chủ, máy
khách rõ ràng.
3.2 Lựa chọn CSDL, các công nghệ ứng dụng trong hệ thống.
Có giải thích lý do lựa chọn
-Lý do chọn:
46
● Dễ sử dụng: MySQL là cơ sở dữ liệu tốc độ cao, ổn định, dễ sử dụng và
hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm
tiện ích rất mạnh.
● Độ bảo mật cao: MySQL rất thích hợp cho các ứng dụng có truy cập
CSDL trên Internet khi sở hữu nhiều nhiều tính năng bảo mật thậm chí
là ở cấp cao.
● Đa tính năng: MySQL hỗ trợ rất nhiều chức năng SQL được mong chờ
từ một hệ quản trị cơ sở dữ liệu quan hệ cả trực tiếp lẫn gián tiếp.
● Khả năng mở rộng và mạnh mẽ: MySQL có thể xử lý rất nhiều dữ liệu
● Nhanh chóng: Việc đưa ra một số tiêu chuẩn cho phép MySQL để làm
việc rất hiệu quả và tiết kiệm chi phí, do đó nó làm tăng tốc độ thực thi.
47
Visual Studio Code là một công cụ soạn thảo mã nguồn do Microsoft phát
triển, được giới thiệu lần đầu năm 2015 và chính thức phát hành năm 2016.
VSCode có thể cài đặt và sử dụng trên cả Windows, MacOS và Linux.
VSCode là mã nguồn mở và nó hoàn toàn miễn phí.
Lý do chọn:
● Phát triển mạnh mẽ trên 3 hệ điều hành phổ biến của thế giới.
● Thiết kế giao diện thân thiện và gần gũi với người dùng.
● Quá trình mã hóa, gỡ lỗi được tối ưu nhất. Visual Studio Code giúp bạn
tiết kiệm thời gian bởi nó được thiết kế các phím tắt mở ra chức năng
hay thêm dòng lệnh… để tránh gây cản trở khi đang code.
● Kiến trúc ưu việt và có thể khai thác mở rộng. Visual Studio Code được
xây dựng phát triển dựa trên Electron kết hợp với các hệ thống ngôn
ngữ công nghệ thông minh như: JavaScript, Node.js cùng khả năng vận
hành vô cùng mạnh mẽ của chính nó.
48
-Các lợi ích khi dùng PyCharm:
● Điều hướng mã, lập trình viên có thể điều hướng đến một hàm, lớp
hoặc tệp
● Django – cũng như những công cụ lập trình sử dụng ngôn ngữ Python –
được đánh giá rất dễ làm quen, dễ sử dụng. Ngôn ngữ Python cũng
được đa số các trường đại học, cao đẳng lựa chọn để đào tạo. Do vậy,
49
việc lập trình web bằng Django khá đơn giản và chỉ mất một thời gian
ngắn để làm quen.
● Django được lập trình với mô hình xác thực người dùng tối ưu, phù hợp
với các dự án cần có độ bảo mật cao. Đặc biệt, Django có nguồn
Document tốt, tuân theo nguyên tắc DRY và hỗ trợ ORM (Object
Relational Mapping). Đây được coi là các đặc điểm nổi trội của Django
so với các Framework lập trình web khác.
Ưu điểm:
● ● Đơn giản, tiết kiệm thời gian: Django được viết bằng ngôn ngữ
Python. Do đó người dùng có thể học Django sử dụng khá dễ dàng.
Django cũng cung cấp cho bạn code ngắn và đơn giản hơn, với thư viện
dữ liệu lớn hơn. Nó có khả năng tự động loại bỏ các đoạn mã trùng lặp
không cần thiết, từ đó giúp người dùng tiết kiệm thời gian đáng kể.
● Độ bảo mật cao: Django được đánh giá là một trong những web
framework có hệ thống bảo mật cao nhất hiện nay. Nó cung cấp cho
người dùng tên tài khoản, mật khẩu, từ đó tránh các lỗi cơ bản khi setup
tài khoản như để thông tin session lên cookie, mã hóa password thay
50
cho lưu thẳng,… Ngoài ra, Django cũng rất tích cực trong việc xử lý
các lỗ hổng bảo mật cho người dùng.
● Có khả năng mở rộng: Django có thể đáp ứng nhu cầu truy cập lớn cho
đến rất lớn, nhờ đó nó phù hợp với các web app khổng lồ như Dropbox,
Mozilla, Youtube,… Django cho phép người dùng mở rộng dự án,
chẳng hạn như chạy các máy chủ riêng biệt trên cùng cơ sở dữ liệu.
● Đa nền tảng: Người dùng có thể thao tác với dự án ở bất kỳ quy mô
nào, từ hệ điều hành Mac, Linux cho đến Windows. Django cũng cho
phép sử dụng nhiều cơ sở dữ liệu cùng một lúc, đem đến sự tiện lợi
cao.
● Cộng đồng người dùng lớn mạnh: Django là một framework miễn phí
có sẵn, cộng đồng người dùng lớn mạnh với hơn 2000 người sử dụng.
Sẽ rất dễ để bạn tìm kiếm các tài liệu về Django như cách sử dụng
Django, cách xử lý lỗi trong Django. Ngoài ra, nó có một hệ thống big
user cộng đồng, được hỗ trợ trên nhiều diễn đàn và các website lớn.
51
Lý do chọn:
● Tiết kiệm thời gian hơn: Các lớp tiện ích (utility classes) của Tailwind
giúp bạn khỏi đau đầu khi viết và duy trì hàng đống code CSS khổng lồ
từ đầu.
● Các Lớp Tiện ích Tuân theo Nguyên tắc Trách nhiệm Đơn lẻ
Lý do chọn:
● Là công cụ giúp quản lý source code tổ chức theo dạng dữ liệu phân
tán.
● Hỗ trợ các thao tác kiểm tra source code trong quá trình làm việc (diff,
check modifications, show history, merge source)
53
3.3 Vẽ biểu đồ thiết kế cơ sở dữ liệu
54
Hình 28. Giao diện xem khách sạn
55