You are on page 1of 63

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ THÀNH PHỐ HỒ CHÍ MINH

KHOA CÔNG NGHỆ THÔNG TIN

==================================

MÔN HỌC

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG THÔNG TIN

ĐỀ TÀI:

WEBSITE QUẢN LÝ ĐẶT PHÒNG KHÁCH SẠN

Nhóm 20 – Lớp D19CQCNHT - 01

1. Trần Huy Hoàng – N19DCCN065

2. Vũ Trung An – N19DCCN003

3. Nguyễn Trần Đức Anh – N19DCCN008

4. Nguyễn Hoàng Hảo – N19DCCN050

5. Nguyễn Đức Phúc Đại – N19DCCN034

Giáo viên hướng dẫn: Dương Thanh Thảo

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:

● Sửa quan hệ biểu đồ thiết kế cơ sở dữ liệu

● Thêm table giá phòng

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 Vẽ sơ đồ mô hình hoạt động, workflow của hệ thống

1.1.1 Mô hình sơ đồ hoạt động

Hình 1. Sơ đồ ngữ cảnh

1
1.1.2 Workflow

Hình 2. Hình workflow đặt phòng

1. 2 Mô tả yêu cầu hệ thống

1.2.1 Yêu cầu nghiệp vụ

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ị

Site khách hàng:

● Khách hàng gồm khách đã đăng ký tài khoản hoặc chưa đăng ký tài

khoản đều có thể sử dụng chức năng sau:

o Tìm kiếm, xem danh sách và chi tiết khách sạn

2
● Khách hàng đã đăng ký tài khoản có thêm chức năng:

o Xem, chỉnh sửa thông tin cá nhân

o Đặt phòng, hủy phòng, đổi phòng

o Khi đặt phòng được chọn hình thức thanh toán online hoặc trực tiếp

o Theo dõi trạng thái đơn phòng đã đặt

o Tích điểm sau mỗi lần đặt phòng thành công

o Sử dụng điểm đã tích để giảm giá đơn phòng

o Đánh giá, bình luận, tố cáo khách sạn

o Xem đơn phòng đang đặt, lịch sử đơn phòng đã đặt, đã hủy, đã đổi

o Xem thống kê

Site chủ khách sạn:

● Chủ khách sạn đã đăng ký tài khoản có các chức năng sau:

o Xem, chỉnh sửa thông tin cá nhân

o Quản lý khách sạn:

▪ Thêm, xóa, sửa khách sạn

▪ Thêm, xóa, sửa phòng

▪ Xem thống kê doanh thu, đánh giá, bình luận

3
▪ Phản hồi, trả lời bình luận của khách hàng

o Quản lý khách hàng:

▪ Tích điểm cho khách hàng

▪ Khóa, phạt khách hàng vi phạm

▪ Gửi thông báo cho khách hàng khi có sự kiện, giảm giá

▪ Xem thống kê khách hàng

o Quản lý đơn phòng:

▪ Xác nhận đơn phòng (đơn đặt, đơn hủy, đơn đổi)

▪ Xem thống kê đơn phòng

▪ Xem lịch sử đơn phòng

Site người quản trị:

● Quản lý người dùng:

o Phân quyền cho người dùng

o Tích điểm cho người dùng

o Khóa, phạt tài khoản người dùng vi phạm

4
● Quản lý website:

o Tạo sự kiện, chương trình giảm giá cho người dùng

1.2.2 Yêu cầu hệ thống

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

3. Hỗ trợ khách hàng xem, quản lý đơn phòng cá nhân

4. Giúp chủ khách sạn tạo và chỉnh sửa khách sạn

5. Hỗ trợ chủ khách sạn quản lý khách hàng, quản lý khách sạn

6. Hỗ trợ người quản trị quản lý người dùng

1.2.3 Các yêu cầu phi chức năng:


1. Hệ thống triển khai theo dạng website trên hệ thống mạng toàn cầu
Internet, hỗ trợ truy cập trên nhiều trình duyệt web. Tốc độ truy cập website
nhanh, ổn định, tính bảo mật cao.
2.Xem thông tin thống kê phải đảm bảo tính chính xác, khách quan.
3. Xem, tìm khách sạn nhanh trực quan, nhanh, giao diện dễ sử dụng với tất
cả người dùng.
4. Thời gian đáp ứng yêu cầu < 5s.
5. Phân quyền chức năng theo người dùng.
6. Hệ thống chịu được nhiều tài khoản đăng nhập cùng lúc.

1.3 Biểu đồ Use-case


Biểu đồ Use-case tổng quát
5
1.3.1 Đăng ký tài khoản

Hình 3. Đăng ký tài khoản

Tên Use-Case Đăng ký tài khoản

Actor Khách hàng, chủ khách sạn chưa có tài khoản

Mô tả Actor sử dụng Use-case này để thực hiện đăng ký vào hệ


thống

6
Điều kiện kích hoạt Chọn chức năng đăng ký ở hệ thống

Tiền điều kiện Actor chưa đă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

- Nếu thất bại: Hệ thống đưa ra thông báo “Đăng ký thất


bại” và yêu cầu đăng ký lại.

Luồng sự kiện chính 1. Hệ thống hiển thị giao diện đăng ký

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

3. Hệ thống kiểm tra và xác nhận đăng ký thành công

4. Hiển thị giao diện chính

5. Kết thúc Use case

Luồng sự kiện phụ - Dòng sự kiện phụ 1

1. Actor hủy đăng ký

2. Hệ thống đóng

3. Kết thúc Use case

- Dòng sự kiện phụ 2

1. Actor nhập sai thông tin

2. Hệ thống báo lỗi

3. Kết thúc Use case

Yêu cầu đặc biệt

7
1.3.2. Đăng nhập

Hình 4. Đăng nhập

Tên Use-Case Đăng nhập

Actor Khách hàng, chủ khách sạn, người quản trị

Mô tả Actor sử dụng Use-case này để thực hiện đăng nhập vào


hệ thống

Đ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. Actor nhập thông tin cá nhân

3. Hệ thống kiểm tra và xác nhận đăng nhập thành công

4. Hiển thị giao diện chính của phần mềm

5. Kết thúc Use case

Luồng sự kiện phụ - Dòng sự kiện phụ 1

1. Actor hủy đăng nhập

2. Hệ thống đóng

3. Kết thúc Use case

- Dòng sự kiện phụ 2

1. Actor nhập sai thông tin

2. Hệ thống báo lỗi

3. Kết thúc Use case

Yêu cầu đặc biệt

9
1.3.3 Đặt phòng

Hình 5. Đặt phòng

Tên Use-Case Đặt phòng

Actor Khách hàng

Mô tả Actor sử dụng Use-case này để thực chức năng đặ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

Tiền điều kiện Actor phải đăng nhập vào hệ thống

Hậu điều kiện - Nếu thành công: Đơn đặt phòng được tạo

- Nếu thất bại: Hệ thống báo không thành công

Luồng sự kiện chính 1. Ở giao diện xem khách sạn

2. Actor chọn chức năng đặt phòng

3. Hệ thống kiểm tra và xác nhận thành công

4. Hệ thống lưu thông tin vào cơ sở dữ liệu

5. Kết thúc Use case

10
Luồng sự kiện phụ - Dòng sự kiện phụ 1

1. Actor hủy thao tác đặt phòng

2. Hệ thống đóng

3. Kết thúc Use case

- Dòng sự kiện phụ 2

1. Actor thực hiện thao tác đặt phòng

2. Hệ thống báo không thành công

3. Kết thúc Use case

Yêu cầu đặc biệt

1.3.4 Quản lý đơn phòng cá nhân

Hình 6. Quản lý đơn phòng cá nhân

Tên Use-Case Quản lý đơn phòng cá nhân

Actor Khách hà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

Tiền điều kiện Actor phải đăng nhập vào hệ thống

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

- Nếu thất bại: Hệ thống báo không thành công

Luồng sự kiện chính 1. Actor chọn chức năng đơn phòng cá nhân

2. Actor chọn 1 trong các chức năng: hủy phòng, đổi


phòng

3. Hệ thống kiểm tra và xác nhận thành công

4. Hệ thống lưu thông tin vào cơ sở dữ liệu

5. Kết thúc Use case

Luồng sự kiện phụ - Dòng sự kiện phụ 1

1. Actor hủy thao tác

2. Hệ thống đóng

3. Kết thúc Use case

- Dòng sự kiện phụ 2

1. Actor thực hiện thao tác

2. Hệ thống báo không thành công

12
3. Kết thúc Use case

Yêu cầu đặc biệt

1.3.5 Quản lý khách sạn

Hình 7. Quản lý khách sạn

Tên Use-Case Quản lý khách sạn

Actor Chủ khách sạn

Mô tả Actor sử dụng Use-case này để thực hiện thao tác quản lý


khách sạn như: tạo, xóa, sửa khách sạn

Điều kiện kích hoạt Chọn chức năng quản lý khách sạn

Tiền điều kiện - Actor phải đăng nhập vào hệ thống

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

- Nếu thất bại: Hệ thống báo không thành công

Luồng sự kiện chính 1. Actor chọn mục quản lý khách sạn

2. Actor chọn 1 trong các chức năng tạo, xóa, sửa

3. Hệ thống kiểm tra và xác nhận thành công

4. Hệ thống lưu thông tin vào cơ sở dữ liệu

5. Kết thúc Use case

Luồng sự kiện phụ - Dòng sự kiện phụ 1

1. Actor hủy thao tác

2. Hệ thống đóng

3. Kết thúc Use case

- Dòng sự kiện phụ 2

1. Actor thực hiện thao tác

2. Hệ thống báo không thành công

3. Kết thúc Use case

Yêu cầu đặc biệt

14
1.3.6 Quản lý phòng

Hình 8. Quản lý phòng

Tên Use-Case Quản lý phòng

Actor Chủ khách sạn

Mô tả Actor sử dụng Use-case này để thực hiện thao tác quản lý


phòng sạn như: thêm, xóa, sửa phòng

Điều kiện kích hoạt Chọn chức năng phòng ở trong khách sạn

Tiền điều kiện - Actor phải đăng nhập vào hệ thống

- Đố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

- Nếu thất bại: Hệ thống báo không thành công

Luồng sự kiện chính 1. Actor chọn chức năng phòng

2. Actor chọn 1 trong các chức năng tạo, xóa, sửa

3. Hệ thống kiểm tra và xác nhận thành công

15
4. Hệ thống lưu thông tin vào cơ sở dữ liệu

5. Kết thúc Use case

Luồng sự kiện phụ - Dòng sự kiện phụ 1

1. Actor hủy thao tác

2. Hệ thống đóng

3. Kết thúc Use case

- Dòng sự kiện phụ 2

1. Actor thực hiện thao tác

2. Hệ thống báo không thành công

3. Kết thúc Use case

Yêu cầu đặc biệt

1.3.7 Quản lý đơn đặt phòng

Hình 9. Quản lý đơn đặt phòng

16
Tên Use-Case Quản lý đơn đặt phòng

Actor Chủ khách sạn

Mô tả Actor sử dụng Use-case này để thực hiện thao tác quản lý


đơn đặt phòng như: xem thống kê, đơn đã đặt, đã hủy,
đang đặt và đơn chờ xác nhận

Điều kiện kích hoạt Chọn chức năng khách sạn

Tiền điều kiện - Actor phải đăng nhập vào hệ thố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

- Nếu thất bại: Hệ thống báo lỗi

Luồng sự kiện chính 1. Actor chọn mục quản lý đơn đặt phòng

2. Actor chọn 1 trong các chức năng

3. Hệ thống kiểm tra hợp lệ

4. Hệ thống đưa ra thông tin

5. Kết thúc Use case

Luồng sự kiện phụ - Dòng sự kiện phụ 1

1. Actor hủy thao tác

2. Hệ thống đóng

3. Kết thúc Use case

- Dòng sự kiện phụ 2

17
1. Actor thực hiện thao tác

2. Hệ thống báo lỗi

3. Kết thúc Use case

Yêu cầu đặc biệt

1.3.8 Quản lý khách hàng

Hình 10. Quản lý khách hàng

Tên Use-Case Quản lý khách hàng

Actor Chủ khách sạn

Mô tả Actor sử dụng Use-case này để thực hiện thao tác quản lý


khách hàng như: xem thống kê, xem điểm tích lũy, xem
KH đang bị phạt, đã bị phạt, chờ bị phạt

Điều kiện kích hoạt Chọn chức năng quản lý khách hàng

Tiền điều kiện - Actor phải đăng nhập vào hệ thố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

- Nếu thất bại: Hệ thống báo lỗi

Luồng sự kiện chính 1. Actor chọn mục quản lý khách hàng

2. Actor chọn 1 trong các chức năng

3. Hệ thống kiểm tra hợp lệ

4. Hệ thống đưa ra thông tin, thông báo

5. Kết thúc Use case

Luồng sự kiện phụ - Dòng sự kiện phụ 1

1. Actor hủy thao tác

2. Hệ thống đóng

3. Kết thúc Use case

- Dòng sự kiện phụ 2

1. Actor thực hiện thao tác

2. Hệ thống báo lỗi

3. Kết thúc Use case

Yêu cầu đặc biệt

19
1.3.9 Quản lý người dùng

Hình 11. Quản lý người dùng

Tên Use-Case Quản lý người dùng

Actor Người quản trị

Mô tả Actor sử dụng Use-case này để thực hiện thao tác quản lý


người dùng như: xem thống kê, xem điểm tích lũy, xem
ND đang bị phạt, đã bị phạt, chờ bị phạt

Điều kiện kích hoạt Chọn chức năng quản lý người dùng

Tiền điều kiện - Actor phải đăng nhập vào hệ thố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

- Nếu thất bại: Hệ thống báo lỗi

Luồng sự kiện chính 1. Actor chọn mục quản lý người dùng

2. Actor chọn 1 trong các chức năng

20
3. Hệ thống kiểm tra hợp lệ

4. Hệ thống đưa ra thông tin, thông báo

5. Kết thúc Use case

Luồng sự kiện phụ - Dòng sự kiện phụ 1

1. Actor hủy thao tác

2. Hệ thống đóng

3. Kết thúc Use case

- Dòng sự kiện phụ 2

1. Actor thực hiện thao tác

2. Hệ thống báo lỗi

3. Kết thúc Use case

Yêu cầu đặc biệt

1.3.10 Quản lý chủ khách sạn

21
Hình 12. Quản lý chủ khách sạn

Tên Use-Case Quản lý chủ khách sạn

Actor Người quản trị

Mô tả Actor sử dụng Use-case này để thực hiện thao tác quản lý


chủ khách sạn như: xem thống kê, xem điểm tích lũy, xem
CKS đang bị phạt, đã bị phạt, chờ bị phạt

Điều kiện kích hoạt Chọn chức năng quản lý chủ khách sạn

Tiền điều kiện - Actor phải đăng nhập vào hệ thố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
CKS đang bị phạt, đã bị phạt và xử phạt khách hàng

- Nếu thất bại: Hệ thống báo lỗi

Luồng sự kiện chính 1. Actor chọn mục quản lý chủ khách sạn

2. Actor chọn 1 trong các chức năng

3. Hệ thống kiểm tra hợp lệ

4. Hệ thống đưa ra thông tin, thông báo

5. Kết thúc Use case

Luồng sự kiện phụ - Dòng sự kiện phụ 1

1. Actor hủy thao tác

2. Hệ thống đóng

3. Kết thúc Use case

22
- Dòng sự kiện phụ 2

1. Actor thực hiện thao tác

2. Hệ thống báo lỗi

3. Kết thúc Use case

Yêu cầu đặc biệt

1.4. Biểu đồ hoạt động

1.4.1. Biểu đồ hoạt động đặt phòng

Hình 13. Biểu đồ hoạt động đặt phòng

23
1.4.2. Biểu đồ hoạt động hủy phòng

Hình 14. Biểu đồ hoạt động hủy phòng

1.4.3. Biểu đồ hoạt động đổi phòng

Hình 15. Biểu đồ hoạt động đổi phòng

24
1.4.4. Biểu đồ hoạt động tạo khách sạn

Hình 16. Biểu đồ hoạt động tạo khách sạn

1.4.5. Biểu đồ hoạt động tạo phòng

Hình 17. Biểu đồ hoạt động tạo phòng

25
1.5. Biểu đồ tuần tự

1.5.1. Biểu đồ tuần tự tìm kiếm khách sạn

Hình 18. Biểu đồ tuần tự tìm kiếm khách sạn

1.5.2. Biểu đồ tuần tự tạo khách sạn

Hình 19. Biểu đồ tuần tự tạo khách sạn

26
1.5.3. Biểu đồ tuần tự đặt phòng

Hình 20. Biểu đồ tuần tự đặt phòng

1.5.4. Biểu đồ tuần tự hủy phòng

Hình 21. Biểu đồ tuần tự hủy phòng

27
1.5.5. Biểu đồ tuần tự đổi phòng

Hình 22. Biểu đồ tuần tự đổi phòng

PHẦN II: PHÂN TÍCH HỆ THỐNG

2.1 Mô tả phân tích hệ thố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

● Người quản trị


● Tạo cơ sở dữ liệu.
hệ thống

● Thiết nhóm quyền cho tài khoản

28
● Chủ khách sạn
● Thống kê về tình hình kinh doanh.

● Phản hồi đánh giá, nhận xét của khách


hàng

● Thiết lập những chiến lược kinh doanh


mới.

● Xem thông tin, quản lý đơn đặt phòng.

● Tạo thông tin về khách sạn

● Tạo danh mục phòng, thông tin phòng

● Theo dõi đơn đặt phòng

● Quản lý thông tin của khách hàng

● Nhận điểm tích lũy khi có nhiều khách


hàng thuê khách sạn

● Tạo điểm tích lũy cho khách hàng khi đặt


phòng của khách sạn nhiều lần
● Khách hàng

● Nhập đầy đủ thông tin cá nhân trong phần

29
đăng nhập, đăng ký và quản lý thông tin cá
nhân

● Được thanh toán theo nhiều hình thức

● Xem hóa đơn, lịch sử thuê khách sạn

● Tìm kiếm khách sạn theo nhu cầu

● Được đánh giá, nhận xét khách sạn đã thuê

● Nhận điểm tích lũy khi thuê khách sạn qua


web nhiều lần

● Nhận điểm tích lũy của riêng khách sạn


khi đặt phòng của khách sạn đó nhiều lần

2 Vai trò ● Chứa quyền hạn của tài khoản người dùng

● Từ quyền hạn đó sẽ thực hiện được cái


nhu cầu, chức năng khác nhau

3 Tài khoản thanh toán


● Tài khoản dùng để thanh toán hóa đơn

bằng hình thức online

4 Khách sạn ● Do chủ khách sạn quản lý

● Chứa thông tin về khách sạn do chủ khách


sạn cung cấp

30
5 Đánh giá ● Khách hàng đánh giá, nhận xét về khách
sạn đã thuê

6 Hình ảnh ● Chứa hình ảnh của khách sạn/ phòng


tương ứng

7 Phòng ● Cung cấp phòng và các thông tin cần thiết


về phòng

8 Phương thức thanh


● Chứa các phương thức thanh toán
toán

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

11 Hệ thống thanh toán ● Nhận hóa đơn đặt phòng


online
● Xác nhận thanh toán

● Xuất hóa đơn cho khách hàng

12 Hệ thống quản lý chủ ● Do người quản trị điều hành


khách sạn
● Tính tiền hoa hồng khi có khách đặt phòng

31
● Tính tiền thuê dịch vụ web

● Cảnh cáo/khóa tài khoản chủ khách sạn vi


phạm quy tắc

13 Hệ thống quản lý ● Do chủ khách sạn điều hành


khách hàng
● Quản lý thông tin khách hàng

● Gửi mail thông báo khi khách sạn có ưu


đãi…

● Tích điểm cho khách hàng

● Cảnh cáo/ khóa tài khoản khách hàng vi


phạm quy tắc

14 Hệ thống quản lý đơn ● Do chủ khách sạn điều hành


đặt phòng
● Quản lý đơn đặt phòng

● Gửi mail xác nhận đặt phòng

● Gửi mail xác nhận hình thức thanh toán

● Ưu đãi, giảm giá cho khách hàng thân thiết

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

● Tích điểm cho người dùng

● Khóa/phạt tài khoản vi phạm

16 Loại giảm giá


● Chứa hình thức giảm giá

17 Giảm giá
● Dùng điểm tích lũy để quy đổi giảm giá

● Nhận giảm giá từ các sự kiện mà chủ

khách sạn hoặc người quản trị tạo

18 Phí dịch vụ khách sạn


● Loại phí dịch vụ mà chủ khách sạn phải trả

19 Thu phí dịch vụ khách


● Chứa thời gian thu phí, số tiền và các
sạn
thông tin khác

33
2.2 Vẽ biểu đồ các lớp tương ứng

2.2.1 Lớp vai trò

2.2.2 Lớp người dùng

34
2.2.4 Lớp người dùng

2.2.3 Lớp khách sạn

35
2.2.4 Lớp phòng

2.2.5 Lớp đánh giá

2.2.6 Lớp hình ảnh

36
2.2.7 Lớp tài khoản thanh toán

2.2.8 Lớp quản lý người dùng

37
2.2.9 Lớp quản lý đơn đặt phòng

2.2.10 Lớp loại giảm giá

38
2.2.11 Lớp giảm giá

2.2.12 Lớp phương thức thanh toán

2.2.13 Lớp phí dịch vụ khách sạn

39
2.2.14 Lớp quản lý chủ khách sạn

2.2.15 Lớp thu phí dịch vụ khách sạn

40
2.2.16 Lớp thanh toán online

2.2.17 Lớp phiếu đặt

41
2.2.18 Lớp chi tiết phiếu đặt

2.2.19 Lớp quản lý khách hàng

2.2.20 Lớp hình ảnh phòng

42
2.3 Vẽ các biểu đồ trạng thái tương ứng

2.3.1 Biểu đồ trạng thái giảm giá

Hình 23. Trạng thái giảm giá

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

Hình 25. Biểu đồ trạng thái phòng

2.3.4 Biểu đồ trạng thái đặt phòng

Hình 26. Biểu đồ trạng thái đặt phòng

44
2.3.5 Biểu đồ trạng thái phiếu đặt

Hình 27. Biểu đồ trạng thái phiếu đặt

PHẦN III. THIẾT KẾ HỆ THỐNG

3.1 Thiết kế kiến trúc hệ thống:

3.1.1 Lựa chọn công nghệ mạng - kiến trúc hạ tầng


Mô hình Client - Server (Máy khách - máy chủ)

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

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


MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (gọi tắt là
RDBMS) hoạt động theo mô hình client-server. Với RDBMS là viết tắt
của Relational Database Management System. MySQL được tích hợp
apache, PHP. MySQL quản lý dữ liệu thông qua các cơ sở dữ liệu. Mỗi cơ sở
dữ liệu có thể có nhiều bảng quan hệ chứa dữ liệu.

-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

và hơn thế nữa nó có thể được mở rộng nếu cần thiết.

● 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.

3.2.2 Công cụ lập trình:


Công cụ lập trình được sử dụng đầu tiên là Visual Studio Code dùng để
lập trình Front-end

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:

● Dung lượng thấp.

● 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ó.

● Cộng đồng hỗ trợ vô cùng lớn.

Công cụ lập trình thứ 2 là PyCharm dùng để lập trình Python

48
-Các lợi ích khi dùng PyCharm:

● Có trình sửa code thông minh

● Đ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

● Tái cấu trúc

● Hỗ trợ cho nhiều công nghệ web khác

● Hỗ trợ cho nhiều framework khác nhau

3.2.3 Công nghệ lập trình phía server


Công nghệ sử dụng: Django là một web framework bậc cao miễn phí,
sử dụng mã nguồn mở được lập trình bằng ngôn ngữ Python. Django cho
phép người dùng kiểm soát chặt chẽ quá trình phát triển website thông qua
một nền tảng duy nhất, có khả năng xử lý các thao tác phức tạp khi lập
trình web.

● 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.

3.2.4 Công nghệ lập trình phía client


Công nghệ sử dụng: HTML, TailWind CSS, Javascript

Tailwind CSS về cơ bản là utility-first CSS framework cung cấp các


class thực thi những chức năng nhỏ trong giao diện như .text-black. p- 4 ... để
xây dựng nhanh chóng các giao diện người dùng tùy chỉnh. Đây là một css
framework cấp thấp, có thể tùy chỉnh cao, cung cấp cho bạn tất cả các công cụ
bạn cần để xây dựng các thiết kế riêng mà không có bất kỳ sự ràng buộc nào.

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ẻ

● Tài liệu của Tailwind là Top-Notch

● Một cộng đồng lớn và đang phát triển

● Không còn Media Queries

● Không tạo các Component

● Loại bỏ các class không sử dụng

● Tránh các quy tắc đặt tên

● Cảm giác như viết CSS

ReactJS là một thư viện chứa nhiều JavaScript mã nguồn mở được


Facebook xây dựng và phát triển. Thư viện này được sử dụng để tạo ra các
ứng dụng trang web hấp dẫn với hiệu quả cao, tốc độ load nhanh và mã tối
thiểu. Mỗi website sử dụng ReactJS phải chạy nhanh, mượt và có khả năng
mở rộng cao, thao tác thực hiện đơn giản.
Lý dó chọn:

● Dễ tạo các ứng dụng di động

● Cải thiện hiệu năng với Virtual DOM


52
● Các component có thể tái sử dụng

● Dễ dàng viết component dễ dàng hơn

● Thân thiện với SEO

3.2.5 Công nghệ quản lý source code

GitHub là một hệ thống quản lý dự án và phiên bản code, hoạt động


giống như một mạng xã hội cho lập trình viên. Các lập trình viên có thể clone
lại mã nguồn từ một repository và Github chính là một dịch vụ máy chủ
repository công cộng, mỗi người có thể tạo tài khoản trên đó để tạo ra các kho
chứa của riêng mình để có thể làm việc.

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.

● Giúp đồng bộ source code của team lên 1 server.

● 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

3.4 Thiết kế một số giao diện người dùng

3.4.1. Giao diện tìm kiếm

Hình 27. Giao diện tìm kiếm

3.4.2. Giao diện xem khách sạn

54
Hình 28. Giao diện xem khách sạn

3.4.3 Giao diện xem đơn phòng cá nhân

Hình 29. Giao diện xem đơn phòng cá nhân

55

You might also like