TRƯỜNG CĐN BÁCH KHOA HÀNỘI1.Tên đồ án: Xây dựng website đặt tour du lịchTìm hiểu về đề tài, lập kế hoạch phân tích & xây dựng đồ ánTìm hiểu lý thuyết & tổng quan triển khai thực hiện bài
CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ SỬ DỤNG
Giới thiệu về ngôn ngữ mô hình hóa UML
UML(Uni昀椀ed Modeling Language) là ngôn ngữ chuẩn để viết kế hoạch chi tiết phần mềm, gồm các ký hiệu đồ họa mà các phương pháp hướng đối tượng sử dụng để thiết kế các hệ thống thông tin một cách nhanh chóng.
- Đặc trưng của UML là 1 ngôn ngữ biểu diễn mô hình, hiển thị, đặc tả, làm tài liệu, là công cụ giao tiếp giữa User, Analyst, Designer, Software Developer, UML kết hợp các điểm mạnh của các mô hình:
- Mô hình dữ liệu (ERD) - Mô hình dòng dữ liệu (DFD) - Mô hình đối tượng & Mô hình thành phần
Các loại biểu đồ UML trong các giai đoạn phát triển hệ thống + Giai đoạn phân tích
- Xây dựng biểu đồ UseCase
- Xác định các tác nhân, use case và các quan hệ giữa các use case để mô tả lại các chức năng của hệ thống.
- Xây dựng các kịch bản mô tả hoạt động của hệ thống trong mỗi use case cụ thể.
- Xây dựng biểu đồ lớp: xác định tên các lớp, các thuộc tính của lớp, một số phương thức và mối quan hệ cơ bản trong sơ đồ lớp.
- Xây dựng biểu đô trạng thái: Mô tả các trạng thái và chuyển tiếp trạng thái trong hoạt động của một đối tượng thuộc một lớp nào đó.
- Xây dựng các biểu đồ tương tác (gồm biểu đồ cộng tác và biểu đồ tuần tự): Mô tả chi tiết hoạt động của các use case dựa trên các kịch bản (scenario) đã có và các lớp đã các định trong pha phân tích.
- Xây dựng biểu đồ lớp chi tiết: Hoàn thiện biểu đồ lớp bao gồm bổ sung các lớp còn thiếu, dựa trên biểu đồ trạng thái để bổ sung các thuộc tính, dựa trên biểu đồ tương tác để xác định các phương thức và mối quan hệ giữa các lớp.
- Xây dựng biểu đồ hoạt động, mô tả hoạt động của các phương thức phức tạp trong mỗi lớp hoặc các hoạt động hệ thống có sự liên quan của nhiều lớp Biểu đồ hoạt động là cơ sở để cài đặt các phương thức trong các lớp.
- Các lớp của giai đoạn thiết kế sẽ được biến thành các dòng code cụ thể trong một ngôn ngữ lập trình hướng đối tượng cụ thể.
- Một hệ thống phần mềm thường được thử nghiệm qua nhiều giai đoạn và với nhiều nhóm thử nghiệm khác nhau.
- Nhiều loại biểu đồ UML được sử dụng để làm công việc thử nghiệm:
- Thử nghiệm đơn vị sử dụng biểu đồ lớp.
- Thử nghiệm tích hợp sử dụng biểu đồ thành phần (component diagram) và biểu đồ cộng tác (collaboration diagram).
- Thử nghiệm hệ thống sử dụng biểu đồ use case (use case diagram).
Công cụ sử dụng
Visual Studio Code là một trình soạn thảo mã nguồn được phát triển bởi Microsoft dành cho Windows, Linux và macOS Nó hỗ trợ chức năng debug, đi kèm với Git, có chức năng nổi bật cú pháp (syntax highlighting),tự hoàn thành mã thông minh, snippets, và cải tiến mã nguồn Nó cũng cho phép tùy chỉnh, do đó, người dùng có thể thay đổi theme, phím tắt, và các tùy chọn khác Nó miễn phí và là phần mềm mã nguồn mở theo giấy phép MIT, mặc dù bản phát hành của Microsoft là theo giấy phép phần mềm miễn phí
Dù mới được phát hành nhưng VSCode là một trong những Code
Editor mạnh mẽ và phổ biến nhất dành cho lập trình viên Nhờ hỗ trợ nhiều ngôn ngữ lập trình phổ biến, tích hợp đầy đủ các tính năng và khả năng mở rộng, nên VSCode trở nên cực kì thân thuộc với bất kì lập trình viên nào.
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, 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 Với tốc độ và tí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.
Figma là phần mềm thiết kế giao diện trực tuyến cho phép người dùng tạo giao diện người dùng và thiết kế mẫu mà không cần cài đặt Nhờ khả năng cộng tác thời gian thực, Figma trở thành công cụ vô cùng hữu ích cho các nhóm thiết kế, giúp đẩy nhanh quá trình thiết kế và phát triển sản phẩm Thêm vào đó, Figma còn hỗ trợ tạo biểu đồ phân tích hệ thống thiết kế, giúp lập trình viên hiểu rõ hơn cấu trúc và luồng dữ liệu của hệ thống.
Ngôn ngữ sử dụng
HTML, hoặc Ngôn ngữ đánh dấu siêu văn bản, là một ngôn ngữ đánh dấu cho web xác định cấu trúc của các trang web Đây là một trong những khối xây dựng cơ bản nhất của mọi trang web, vì vậy điều quan trọng là phải học nếu bạn muốn có sự nghiệp phát triển web.
HTML đóng vai trò giúp người dùng có thể định dạng, thiết kế cấu trúc các thành phần của một trang web hay các ứng dụng, heading, links, hoặc phân chia giữa các đoạn văn, …
CSS được gọi là ngôn ngữ Trang tính kiểu xếp tầng và được sử dụng để cách điệu các phần tử được viết bằng ngôn ngữ đánh dấu chẳng hạn như HTML Nó tách nội dung khỏi phần trình bày trực quan của trang web.
Nói ngắn gọn hơn là ngôn ngữ tạo phong cách cho trang web Bạn có thể hiểu đơn giản rằng, nếu HTML đóng vai trò định dạng các phần tử trên trang web như việc tạo ra các văn bản đoạn, các tiêu đề, bảng,… thì CSS sẽ giúp chúng ta có thể thêm phong cách vào các phần tử HTML đó như thay đổi bố cục, màu sắc trang, thay đổi chữ màu, chữ phông chữ, thay đổi cấu trúc…
CSS Preprocessors là CSS xử lý ngôn ngữ Là một CSS mở rộng ngôn ngữ kịch bản và được biên dịch thành CSS cú pháp giúp bạn viết CSS nhanh hơn và có cấu trúc rõ ràng hơn CSS Preprocessor có thể giúp bạn tiết kiệm CSS viết theo thời gian, dễ dàng bảo trì và phát triển CSS.
SCSS là một CSS tiền xử lý chương trình ( CSS preprocessor) Nó giúp bạn viết CSS theo cách của một chương trình ngôn ngữ, có cấu trúc rõ ràng, mạch, dễ phát triển và mã bảo trì hơn Ngoài ra, nó có rất nhiều phần hỗ trợ thư viện giúp bạn viết mã CSS một cách dễ dàng vào các đơn giản hơn.
Javascript là một ngôn ngữ lập trình kịch bản dựa vào đối tượng phát triển có sẵn hoặc tự định nghĩa Javascriptsử dụng rộng rãi trong các ứng dụng Website Javascript được hỗ trợ hầu như trên tất cả các trình duyệt như Firefox, Chrome, trên máy tính lẫn điện thoại.
JS là một ngôn ngữ linh hoạt, cung cấp khả năng triển khai đa dạng cả ở phía máy chủ và máy khách Ở phía máy chủ, JS có thể xử lý dữ liệu, quản lý cơ sở dữ liệu và tương tác với các hệ thống khác Trong khi đó, ở phía máy khách, JS cho phép tạo ra các giao diện người dùng tương tác và hấp dẫn bằng cách điều khiển hoạt ảnh, hiệu ứng và xử lý sự kiện Những khả năng toàn diện này giúp JS trở thành một ngôn ngữ mạnh mẽ cho việc phát triển web, ứng dụng di động và phần mềm máy tính để bàn.
PHP là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.
SQL là viết tắt của Ngôn ngữ truy vấn có cấu trúc, được dùng để tương tác với cơ sở dữ liệu SQL là một ngôn ngữ tiêu chuẩn được sử dụng hầu hết cho các hệ thống cơ sở dữ liệu, bao gồm MySQL, MS Access, Oracle, Postgres và SQL Server.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Các chức năng của hệ thống
3.1.2 QUẢN LÝ THÔNG TIN SẢN PHẨM
2.1 Thêm tour mới lên hệ thống 2.2 Sửa, cập nhật thông tin tour 2.3 Xóa tour
2.4 Quản lý số lượng tour
3.1 Thêm tour vào danh sách hợp đồng 3.2 Xóa tour khỏi danh sách hợp đồng 3.3 Thay đổi thông tin của tour
3.1.4 QUẢN LÝ ĐƠN ĐẶT TOUR
4.1 Xác nhận thông tin đặt tour 4.2 Theo dõi lộ trình đơn đặt tour 4.3 Hủy đơn đặt tour
5.1 Thêm mới nhân viên 5.2 Sửa, cập nhật nhân viên 5.3 Xóa nhân viên
3.1.6 TÌM KIẾM THÔNG TIN THEO YÊU CẦU
Các thuộc tính hệ thống
Dễ sử dụng, không cần đào tạo nhiều
Đảm bảo tốc độ ổn định và an toàn trong lưu trữ và xử lý dữ liệu
Khả năng nâng cấp bảo trì dễ dàng.
Cấu hình máy chủ : Tối thiểu Raspberry Pi 4 , RAM > 2048.MB, SSD
Hệ quản trị CSDL được cài là SQL Server hoặc My SQL
Cấu hình máy trạm : Tối thiểu Computer, RAM >1024.MB, CàiChorme, Edge,…
Xác định các tác nhân, các ca sử dụng và mô tả các ca sử dụng
3.3.1 XÁC ĐỊNH CÁC KHÁI NIỆM
3.3.2 XÁC ĐỊNH CÁC TÁC NHÂN Tác nhân Các ca sử dụng nghiệp vụ Kết quả đem lại
Khách hàng Đăng kí Lưu tất cả thông tin của khách hàng vào hệ thống Sửa, cập nhât thông tin Lưu thông tin mới về khách hàng cần sửa vào hệ thống Quản trị viên
Xóa thông tin khách hàng Xóa khách hàng đã chọn khỏi hệ thống Tìm thông tin khách hàng Tra cứu thông tin chi tiết về khách hàng đã chọn Sửa, cập nhât thông tin Lưu thông tin mới về khách hàng cần sửa vào hệ thống Nhân viên Tìm thông tin khách hàng Tra cứu thông tin chi tiết về khách hàng đã chọn Khách hàng Thêm, sửa, cập nhật thông tin danh sách hợp đồng
Lưu, thay đổi tất cả thông tin cập nhật danh sách hợp đồng của khách hàng vào hệ thống
Hủy đơn đặt tour Xóa đơn đặt tour của khách hàng khỏi hệ thống Kiểm tra trạng thái hợp đồng Tra cứu tour có lộ trình như thế nào, thời gian và các thông tin khác đến hàng đã mua
Nhân viên / Quản trị viên
Chấp nhận đơn đặt tour Phê duyệt đơn đặt tour của khách, khi mọi điều đã được đáp ứng Thông báo cho khác hàng rằng: “Đơn đặt tour đã được chấp nhận”
Hủy đơn đặt tour Hủy đơn đặt tour khi đơn có vấn đề Xóa tất cả thông tin về đơn đặt tour và báo với khách hàng rằng : “Không thể phê duyệt đơn đặt tour & khách hàng hãy chọn tour khác”
Thêm tour mới Lưu thông tin về tour mới lên hệ thống
Sửa tour Sửa, thông tin về tour và cập nhật thông tin mới lên hệ thống
Xóa tour Xóa tour ra khỏi hệ thống
Cập nhật tour Khi thị trường biến động, ghi nhận một mức giá mới và các thông tin liên quan (giảm giá)
Tìm, tra cứu tour Hiển thị tour thỏa mãn điều kiện tìm kiếm lên màn hình
Xác định các ca sử dụng
UC1: Đăng kí UC2: Sửa khách hàng UC3: Xóa khách hàng UC4: Tìm kiếm khách hàng
3.4.2 GÓI QUẢN LÍ MẶT HÀNG
UC5: Phân nhóm mặt hàng UC6: Thêm tour
UC7: Sửa tour UC8: Xóa tour UC9: Tìm kiếm tour
UC10: Thêm tour vào hợp đồngUC11: Xóa tour khỏi hợp đồngUC12: Xem thông tin hợp đồng
3.4.4 QUẢN LÍ ĐƠN ĐẶT TOUR
UC13: Xác nhận đơn đặt tour UC14: Hủy đơn đặt tour
UC15: Xem tình trạng đơn đặt tour
UC16 Xem tour sắp hết UC17 Nhập thêm tour
3.4.6 QUẢN LÍ QUYỀN TRUY CẬP
UC18 Thêm Quyền UC19 Xóa quyền
Biểu đồ use case
3.5.2 BIỂU ĐỒ USE CASE QUẢN TRỊ VIÊN
3.5.3 BIỂU ĐỒ USE CASE NHÂN VIÊN
3.5.4 BIỂU ĐỒ USE CASE KHÁCH HÀNG
Mô hình thực thể ERD
Sơ đồ ERD( Entity-Relationship Diagram) là công cụ quan trọng trong thiết kế cơ sở dữ liệu Nó giúp mô hình hóa mối quan hệ giữa các thực thể sống.Sơ đồ ERD bao gồm thực thể, mối quan hệ và thuộc tính Nó hỗ trợ trong việc hiểu cấu trúc cơ sở dữ liệu , phân tích yêu cầu và xây dựng ứng dụng Trong thuyết trình , sơ đồ ERD được trình bày để giới thiệu cấu trúc cơ sở dữ liệu của dự án và tạo điểm khởi đầu cho quá trình phát triển
Mô hình các bảng quan hệ
Các bảng quan hệ trong CSDL đóng vai trò quan trọng trong việc tổ chức và lưu trữ dữ liệu Mỗi bảng quan hệ tương ứng với một thực thể và chứa các cột đại diện cho các thuộc tính của thực thế đó Các bảng quan hệ phản ánh chính xác mối quan hệ giữa các thực thể.
- Mô tả các bảng cơ sở dữ liệuBảng User:
Kiểu dữ liệu Null Mô tả Chú thích
Uid Int(5) Không Mã duy nhất của người dùng
Khóa chính Fullname Varchar(40) Không Họ & tên đệm người dùng
Username Varchar(40) Không Tên của người dùng Password Varchar(60) Không Mật khẩu người dùng Email Varchar(200
Không Địa chỉ người dùng
Phone Varchar(12) Không Số điện thoại người dùng Gender Enum’male’
Role Int(1) Không Phân quyền người sử dụng
Null Mô tả Chú thích
ID_contact Int(10) Không Mã duy nhất của liên hệ Khóa chính User_name Varchar(50
Không Thư điện tử để liên hệ
Không Nội dung người dùng phản hồi
Kiểu dữ liệu Null Mô tả Chú thích
ID_order Int(11) Không Mã yêu cầu của người dùng Khóa chính ID_user Int(5) Không Mã duy nhất người dùng Khóa ngoại ID_product Int(11) Không Mã duy nhất của tour Khóa ngoại Address Varchar(50) Không Địa chỉ của người dùng
Fullname Varchar(30) Không Tên của tour Email Varchar(30) Không Email người dùng Request Mediumtext Không Yêu cầu
Price int Không Giá của tour
Quantity Int(5) Không Số lượng tour Status Int(1) Không Trạng thái của đơn tour
Kiểu dữ liệu Null Mô tả Chú thích
ID_order Int(11) Không Mã yêu cầu của người dùng Khóa chính ID_user Int(5) Không Mã duy nhất người dùng Khóa ngoại ID_product Int(11) Không Mã duy nhất của tour Khóa ngoại Price Varchar(10) Không Giá tiền
Null Mô tả Chú thích
ID_product Int(11) Không Mã duy nhất của mỗi sản phẩm
Guest tinyint Không Số lượng người Bed tinyint(1) Không Số lượng phòng ngủ Bathroom tinyint(1) Không Số lượng phòng tắm
Title Varchar(10 Không Tiêu đề
Không Giới thiệu thông tin tour
Null Mô tả Chú thích
ID_books Int(10) Không Mã duy nhất của liên hệ Khóa chính Fullname Varchar(30
Không Thư điện tử để liên hệ
Không Địa chỉ người dùng yêu cầu Number of guest int Không Số người đi du lịch
Null Mô tả Chú thích
ID_gallery Int(11) Không Mã duy nhất của mỗi gallery
Không Hình ảnh chính gallery_name Varchar(10
Null Mô tả Chú thích
ID_places Int(11) Không Mã duy nhất của mỗi địa điểm
Không Giới thiệu thông tin địa điểm Short_des Varchar(20
XÂY DỰNG CHƯƠNG TRÌNH
Giao diện website
4.2.2 GIAO DIỆN ĐĂNG KÝ ĐĂNG NHẬP
4.2.5 GIAO DIỆN QUẢN TRỊ VIÊN
Sau quá trình tìm hiểu, phân tích em đã xây dựng thành công hệ thống website đặt tour du lịch, giải quyết được các mục tiêu đã đề ra Đồ án đặt ra 3 mục tiêu chính , trong đó chương 3 đã giải quyết mục tiêu thứ nhất “Phân tích thiết kế, xây dựng một hệ thống website đặt tour du lịch”; mục tiêu còn lại “kiểm thử, triển khai và cài đặt sử dụng chương trình được giải quyết Điều đã đạt được: Ứng dụng chạy tốt trên nhiều môi trường, có giao diện đồng nhất, các công nghệ được sử dụng giúp triển khai và tích hợp hệ thống nhanh chóng và dễ dàng Đồ án đã tạo điều kiện cho em được thực hành các bước trong quy trình xây dựng một hệ thống phần mềm hoàn chỉnh, có tính ứng dụng trong thực tiễn, thúc đẩy bản thân tìm hiểu các kiến thức, công nghệ, xây dựng các giải pháp để giải quyết các vấn đề đặt ra
Quá trình thực hiện đồ án đã giúp em tích luỹ thêm nhiều kinh nghiệm, là nền tảng phát triển bản thân sau này.
Những điều chưa đạt được:
Tuy nhiên, đồ án vẫn còn một số điểm chưa được hoàn thiện xuất phát từ những hạn chế về thời gian cũng như kinh nghiệm của bản thân.
Khó khăn về mặt công nghệ
Giao diện trang web chưa đáp ứng được yêu cầu đặt ra, chưa hướng đến UX/UI đẹp và dễ sử dụng cho người dùng Các tính năng xử lý máy chủ vẫn chưa hoàn thiện theo yêu cầu phân tích hệ thống Định hướng tương lai sẽ tập trung vào hoàn thiện những vấn đề này.
Nâng cấp hệ thống quản lý lên sao cho phù hợp với thực tế và có thể dễ sử dụng hơn.
Cải thiện việc truy nhập, tìm kiếm dữ liệu với tốc độ nhanh, độ chính xác cao, cùng với đó người dùng có thể tìm kiếm nhiều dữ liệu cùng lúc, đưa ra các báo cáo tổng hợp chính xác.
Tăng cường an toàn và bảo mật, cải tiến giao diện.