3.2 .Activity diagram
3.2.7. Quản lý tour du lịch
25
3.2.8. Thống kê
26
3.3. Mơ hình nguồn dữ liệu DFD 3.3.1. Biểu đồ DFD mức ngữ cảnh
27
3.3.2. Biểu đồ DFD cấp 0
28
3.3.3. Mơ hình User case
3.3.3.1. Xác định các Actor
Dựa vào u cầu bài tốn, ta có các actor sau: quản trị viên (Admin), nhân viên(Staff), khách hàng(user).
3.3.3.2. Xác định các User case
Actor Quản trị viên (Admin)
Nhân viên (Staff) Khách hàng (User)
3.3.3.3. Xây dựng biểu đồ User case tổng quát
a. Quản trị viên:
29
b. Khách hàng:
30
3.3.3.4. Đặc tả Use case 3.3.3.4.1. Tour du lịch
Mô tả: Cung cấp chức năng hiển thị thông tin chi tiết các tour du lịch trên website.
Kích hoạt: Người dùng click vào thanh menu “ Tour du lịch”. Quá trình xử lý:
o Khi 1 tour du lịch được chọn, mã tour (id) sẽ được gửi đến trang xem cho tiết tour du lịch để hiển thị chi tiết tour đã được chọn.
o Truy cập vào cơ sở dữ liệu để lấy tour du lịch có mã id đã được người dùng chọn ở trên.
o Hiển thị thông tin tour du lịch lên website.
o Khi bấm chọn “Yêu thích” hoặc “Đặt ngay”, mã tour sẽ được gửi đến trang “Đặt tour du lịch”.
Thông tin đầu ra: Hiển thị chi tiết về tour du lịch giúp khách hàng có thể tìm hiểu rõ thơng tin chi tiết từng tour có thể giúp họ dễ dàng lựa chọn theo đúng yêu cầu của mình.
3.3.3.4.2. Tìm kiếm
Mơ tả: Giúp người dùng nhanh chóng tìm được tour du lịch đang muốn tìm kiếm.
Kích hoạt: Người dùng nhập vào ơ trên menu tìm kiếm theo địa điểm, theo giá….
Quá trình xử lý:
o Yêu cầu người dùng: địa điểm người dùng muốn đi, giá tour phù hợp với người dùng...
o Tìm kiếm trong cơ sở dữ liệu các tour du lịch có tên địa điểm đi giống với yêu cầu người dùng hay khoảng giá mà người dùng yêu cầu đặt ra . Và dựa trên yêu cầu người dùng sẽ lấy được danh sách các tour du lịch phù hợp với u cầu người dùng tìm kiếm.
Thơng tin đầu ra: Hiển thị các tour du lịch phù hợp với u cầu người dùng đã tìm kiếm.
31
3.3.3.4.3. Đăng ký tài khoản
Mơ tả: Cung cấp chức năng đăng ký tài khoản (Nhân viên, khách hàng) giúp người dùng có thể đặt cho mình hay gia đình những chuyến đi du lịch tuyệt vời.
Kích hoạt: Khi người dùng nhấp vào đăng ký. Quá trình xử lý:
o Khi đăng ký, một biểu mẫu thơng tin được hiện ra để người dùng nhập một số thông tin cần thiết cho khởi đầu của một tài khoản.
o Kiểm tra username, email đã tồn tại hay chưa. o Kiểm tra dữ liệu nhập vào ở các ô dữ liệu.
o Khi ấn Sign up, thông tin người dùng nhập sẽ được gửi lên server để kiểm tra, nếu hợp lệ sẽ gửi một email đến email người dùng đã nhập trước đó để xác nhận đăng ký thành công. Khi này người dùng mới có thể đăng nhập được.
Thơng tin đầu ra: Sau khi ấn xác nhận, người dùng sẽ được đưa đến trang đăng nhập để thực hiện đăng nhập vào website.
3.3.3.4.4. Đăng nhập
Mơ tả: Chức năng đăng nhập giúp người dùng có thể vào xem các tour du lịch, có thể tìm kiếm những nơi mà mình thích và có thể u thích và đặt tour du lịch.
Kích hoạt: Khi người dùng click vào chức năng “Đăng nhập”, đặt tour du lịch, yêu thích tour du lịch.
Q trình xử lý:
o Hệ thống sẽ yêu cầu người dùng nhập “username” và “password”.
o Kiểm tra “username” và “password” có tồn tại trong database khơng.
o Đăng nhập thành công cho người dùng đăng nhập hợp lệ. o Nếu người dùng quên mật khẩu thì sẽ chuyển sang trang quên
mật khẩu để có thể giúp người dùng lấy lại mật khẩu.
o Nếu người dùng chưa có tài khoản để đăng nhập thì sẽ chuyển sang trang đăng kí tài khoản.
32
Thông tin đầu ra: Chuyển thẳng đến trang chủ nếu người dùng đăng nhập thành công.
33
3.3.3.4.5. Đặt tour du lịch
Mô tả: Cho phép khách hàng đặt tour du lịch theo ý muốn. Kích hoạt: Người dùng nhấn chọn nút “Đặt
ngay”. Quá trình xử lý:
o Sau khi chọn “Đặt ngay”, các thông tin về tài khoản, thông tin của chuyến đi đã chọn sẽ hiện lên.
o Ngồi ra, người dùng cịn có thể thêm số lượng người đi theo từng độ tuổi khác nhau thì giá sẽ khác nhau.
Thơng tin đầu ra:
o Thông báo đã đặt tour.
o Nếu người dùng khơng thanh tốn sẽ chuyển đến trang danh sách các tour đã đặt.
3.3.3.4.6. u thích tour du lịch
Mơ tả: Cho phép người dùng lưu tour du lịch mà mình u thích. Kích hoạt: Khi người dùng click vào biểu tượng “Yêu
thích”. Q trình xử lý:
o Sau khi click u thích, kiểm tra đăng nhập hay chưa. o Hệ thống sẽ lưu thông tin dữ liệu chuyến đi và người dùng. Thông tin đầu ra: Thơng báo u thích tour thành cơng.
3.3.3.4.7. Thanh tốn
Mơ tả: Thanh tốn tour du lịch mình đã đặt.
Kích hoạt: Khi người dùng click vào chức năng “Thanh tốn”. Q trình xử lý:
o Sau khi chọn nút thanh tốn, thì sẽ chuyển sang trang thanh tốn và hiện lên thơng tin chi tiết tour và số tiền cần thanh toán. o Người dùng kiểm tra lại thơng tin, sau đó chọn nút thanh
tốn. Thơng tin đầu ra:
o Thơng báo thanh tốn thành cơng.
o Chuyền về trang thông tin các tour đã đặt.
34
3.3.3.4.8. Xem các tour đã đặt
Mô tả: Cho phép người dùng quản lý, xem các tour mình đã đặt và xem thanh tốn hay chưa, có thể hủy tour.
Kích hoạt: Người dùng nhấn chọn trên menu chỗ “Các tour đã đặt”. Quá trình xử lý:
o Sau khi chọn vào nút “tour đã đặt” sẽ hiện lên thông tin các tour đã đặt.
o Có thể chọn nút hủy tour để hủy tour đã đặt (Khi chưa thanh toán).
o Chọn vào tour sẽ hiển thị lên thông tin chi tiết của tour và thanh tốn hay chưa.
Thơng tin đầu ra: Hiển thị các thông tin chi tiết các tour đã đặt.
3.3.3.4.9. Thông tin cá nhân
Mô tả: Cho phép người dùng cập nhật thông tin cá nhân của mình. Kích hoạt: Người dùng bấm vào “Tài khoản của
tơi”. Q trình xử lý:
o Hệ thống yêu cầu người dùng nhập các thơng tin cá nhân mình muốn cập nhật.
o Kiểm tra các thơng tin có hợp lệ không. o Kết nối database để cập nhật thông tin. Thông tin đầu ra: Thông báo cập nhật thành công.
3.3.3.4.10. Trang admin
3.3.3.4.10.1.Quản lý khách hàng
Mô tả: Cho phép quản trị viên quản lý các thông tin được công khai của người dùng.
Kích hoạt: Quản trị viên đăng nhập và chọn trang quản lý khách hàng.
Quá trình xử lý:
o Kiểm tra dữ liệu nhập có hợp lệ hay khơng để thực hiện các thao tác như cập nhật, xóa từ quản trị viên.
o Kết nối database để cập nhật thông tin.
35
Thông tin đầu ra: Hiển thị các thông tin, thống kê danh sách khách hàng.
36
3.3.3.4.10.2. Quản lý nhân viên
Mô tả: Cho phép quản trị viên quản lý các thông tin của nhân viên. Kích hoạt: Quản trị viên đăng nhập và chọn trang quản lý nhân viên. Quá trình xử lý:
o Kiểm tra dữ liệu nhập có hợp lệ hay khơng để thực hiện các thao tác như cập nhật, xóa, thêm tài khoản từ quản trị viên. o Kết nối database để cập nhật thông tin.
Thông tin đầu ra: Hiển thị các thông tin, thống kê danh sách nhân viên.
3.3.3.4.10.3. Quản lý tour
Mô tả: Cho phép quản trị viên quản lý các tour du lịch.
Kích hoạt: Quản trị viên đăng nhập và chọn trang quản lý tour du lịch. Quá trình xử lý:
o Kiểm tra dữ liệu nhập có hợp lệ hay khơng để thực hiện các thao tác như cập nhật, xóa, thêm tour du lịch từ quản trị viên. o Kết nối database để cập nhật thông tin.
Thông tin đầu ra: Hiển thị các thông tin, thống kê danh sách tour du lịch.
3.3.3.4.10.4. Quản lý doanh thu
Mô tả: Cho phép quản trị viên quản lý doanh thu theo tháng, theo ngày.
Kích hoạt: Quản trị viên đăng nhập sẽ hiện lên trang chủ quản trị viên.
Thông tin đầu ra: Hiển thị thống kê doanh thu theo biểu đồ...
37
3.3.3.5. Lượt đồ sequence
Đăng nhập
38
Đăng ký
39
Quên mật khẩu
40
Xem trước tour du lịch
41
Đặt tour – thanh toán
42
3.3.4. Xác định thực thể
Roles ( ID, role)
Account (ID, username, fullname, password, email, gender, address,phone, img, id_card, role_Id,
created_date, verification_code, is_enable, provider) Travel_types (ID, type, description, slug, is_deleted) Travel (ID, name, type_id, departure_place, place, price, img, created_date, start_date, end_date, quantity, hour, slug, is_deleted, quantity_new) Travel_detail (ID, time, description, travel_Id, is_deleted)
Age_type (ID, description, is_deleted)
Price_detail (ID, price, travel_Id, age_id, is_deleted) Booking (ID, account_Id, created_date, address, phone, total_price, pay_boolean, is_deleted) Booking_detail (ID, booking_Id, travel_Id, price) Payment (ID, booking_Id, pay_time, total_price)
3.3.5. Mơ hình ERD
3.3.5.1. ERD Diagram level 1
44
3.3.5.2. ERD Diagram level 2
45
3.3.6. Lượt đồ quan hệ
Quy ước: Primary key: (gạch chân, in đậm) ID, Foreign: (in đậm) ID. Roles ( ID, role)
Account (ID, username, fullname, password, email, gender, address,phone, img, id_card, role_Id, created_date,
verification_code, is_enable, provider)
Travel_types (ID, type, description, slug, is_deleted)
Travel (ID, name, type_id, departure_place, place, price, img, created_date, start_date, end_date, quantity, hour, slug, is_deleted, quantity_new)
Travel_detail (ID, time, description, travel_Id, is_deleted) Age_type (ID, description, is_deleted)
Price_detail (ID, price, travel_Id, age_id, is_deleted) Booking (ID, account_Id, created_date, address, phone, total_price, pay_boolean, is_deleted)
Booking_detail (ID, booking_Id, travel_Id, price) Payment (ID, booking_Id, pay_time, total_price)
3.3.6.1. Role STT 1 ID 2 Role STT Thuộc tính 1 ID 2 username 3 fullname 46
4 password 5 email 6 gender 7 address 8 phone 9 img 10 id_card 11 role_id 12 created_date 13 verification_code 14 is_enable 15 provider 16 password_ changed_time 3.3.6.3.Thực thể Travel Types STT Thuộc tính 1 ID 2 type 3 description 4 slug 5 is_deleted 47
động là 0 3.3.6.4.Thực thể Travel STT Thuộc tính 1 ID 2 name 3 type_id 4 departure_place 5 place 6 price 7 img 8 created_date 9 start_date 10 end_date 11 quantity 12 hour 48
13 slug 14 is_deleted 15 quantity_new 3.3.6.5.Thực thể Travel_detail STT Thuộc tính 1 ID 2 time 3 description 4 travel_Id 5 is_deleted 3.3.6.6.Thực thể Travel_like STT Thuộc tính 1 ID 49
2 account_Id 3 travel_Id 3.3.6.7.Thực thể Age_type STT Thuộc tính 1 ID 2 description 3 is_deleted 3.3.6.8.Thực thể Price_detail STT Thuộc tính 1 ID 2 price 3 travel_Id 4 age_id 5 is_deleted 50
chưa xóa thì False. 3.3.6.9.Thực thể Booking STT Thuộc tính 1 ID 2 account_Id 3 created_dat e 4 address 5 phone 6 total_price 7 pay_boolean 8 is_deleted STT Thuộc tính 1 2 booking_Id 51
3 travel_Id 4 price 5 quantity 3.3.6.11. STT Thuộc tính 1 ID 2 booking_Id 3 pay_time 4 total_price 3.3.7. Mơ hình dữ liệu 3.3.7.1. Role – Account
Một vai trị thì có một hoặc nhiều tài khoản, một tài khoản chỉ có một vai trị.
3.3.7.2. Account – TravelLike
Một tài khoản có một hoặc nhiều tour du lịch, một tour du lịch chỉ có một tài khoản.
3.3.7.3. Account - Booking
Một tài khoản có một hoặc nhiều đơn hàng, một đơn hàng chỉ có một tài khoản.
3.3.7.4. Booking – Payment
Một đơn hàng thì có nhiều thanh tốn, một thanh tốn chỉ có một đơn hàng.
3.3.7.5. Booking – BookingDetail
Mỗi đơn hàng có một chi tiết đơn hàng, một chi tiết đơn hàng thuộc một đơn hàng
3.3.7.6. Travel – BookingDetail
Mỗi tour có một hoặc nhiều chi tiết đơn hàng, một chi tiết đơn hàng chỉ thuộc một tour.
53
3.3.7.7. Travel – TravelLike
Một tour được một hoặc nhiều lượt yêu thích, mỗi lượt yêu thích chỉ thuộc một tour.
3.3.7.8. Travel – TravelDetail
Mỗi tour có một chi tiết tour, một chi tiết tour chỉ thuộc một tour
3.3.7.9. Travel – TravelTypes
Mỗi tour chỉ thuộc một loại tour, một loại tour có một hoặc nhiều tour.
3.3.7.10. Travel – PriceDetail
Mỗi tour có một hoặc nhiều chi tiết giá, một chi tiết giá chỉ thuộc một tour.
3.3.7.11. AgeType – PriceDetail
Mỗi loại tuổi có một hoặc nhiều chi tiết giá, một chi tiết giá chỉ thuộc một loại tuổi.
54
55
Diagram
56
4. Thiết kế giao diện
4.1. Yêu cầu hệ thống
Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2019.
Công cụ lập trình: Eclipse, Spring Tool Suite, Intellij, Visual Studio Code.
Trình duyệt web: Chrome, Cốc cốc...
4.2. Giao diện 4.2.1. Trang chủ
Hiển thị đầu tiên khi người dùng chưa đăng nhập. Thanh tìm kiếm ta có thể tìm kiếm các tour du lịch
57
4.2.2. Đăng nhập
4.2.3. Đăng ký
58
4.2.4. Quên mật khẩu
59
4.2.5. Xem chi tiết tour
Trên giao diện trang chủ sẽ có sẵn các tour du lịch trên màn hình, click xem chi tiết sẽ dẫn đến trang xem chi tiết tour.
4.2.6. Đặt tour
60
4.2.7. Chỉnh sửa thông tin cá nhân
4.2.8. Trang admin
Trên góc phải chọn tài khoản và xem “Thông tin cá nhân” khi đăng nhập tài khoản admin ta sẽ xem được giao diện admin.
Ta sẽ xem được doanh thu trong ngày, số lượng đặt tour trong ngày, tổng số lượng khách hàng đăng ký so bao nhiêu phần trăm so với tháng trước, tổng doanh thu năm này chiếm bao nhiêu phần trăm so với năm trước, thống kê doanh thu theo ngày tháng
61
năm tùy chọn, danh sách số lượng tour đã đặt được bao nhiêu so với số lượng ban đầu, top 3 tour du lịch được yêu thích nhất,..
4.2.9. Giao diện quản lý khách hàng
4.3. Giao diện quản lý tour
62
4.3.1. Giao diện quản lý nhân viên
5. Kiểm thử website & sửa lỗi
5.1. Test plan
TEST PLAN
N Cơng việc
o
1 Nghiên cứu tài liệu
1 Phân tích và thiết kế tài liệu đặc tả
2 Kế hoạch viết test
case, báo cáo
2 Viết test case
63
1 Đăng nhập 2 Đăng ký 3 Đặt tour
4 Yêu thích tour
5 Quản lý khách hàng 6 Quản lý nhân viên 7 Quản lý tour du lịch 8 Quản lý doanh thu 3 Test theo test case
1 Đăng nhập 2 Đăng ký 3 Đặt tour
4 Yêu thích tour
5 Quản lý khách hàng 6 Quản lý nhân viên 7 Quản lý tour du lịch 8 Quản lý doanh thu
4 Báo cáo kết quả test
64
5.2. Test case 5.2.1. 5.2.1. TH MƠ TẢ TÌNH HUỐNG 1 Đăng nhập sai tên đăng nhập hoặc mật khẩu 2 Đăng nhập đúng
tên tài khoản và mật khẩu 5.2.2. TH MƠ TẢ TÌNH HUỐNG 1 Đăng ký với email đã có 2 Đăng ký với username đã tồn tại 3 Nhập thơng khơng hợp lệ khi đăng ký 65
4 Nhập thông hợp lệ khi đăng ký 5 Xác thực thành cơng 5.2.3. Qn mật khẩu TH MƠ TẢ TÌNH HUỐNG 1 Nhập email chưa
đăng ký tài khoản lấy lại mật khẩu
2 Nhập email đúng
lấy lại mật khẩu
3 Nhấp vào xác
thực đặt lại mật khẩu
66
4 Nhập mật khẩu mới trùng với mật khẩu cũ 5 Đặt lại mật khẩu mới thành cơng 5.2.4. TH MƠ TẢ TÌNH HUỐNG 1 Nhập thơng tin chỉnh sửa tài khoản không hợp lệ 2 Nhập thông tin chỉnh sửa tài khoản hợp lệ 3 Nhập mật khẩu