Bối cảnh và vấn đề nghiên cứu

Trong lĩnh vực kinh doanh dịch vụ lưu trú và du lịch, công tác quản lý phòng và điều phối đặt phòng đóng vai trò quyết định đến hiệu quả vận hành của doanh nghiệp. Tuy nhiên, theo ghi nhận thực tế của tác giả trong đồ án, nhiều cơ sở lưu trú hiện nay vẫn áp dụng các phương pháp quản lý thủ công truyền thống như sử dụng sổ tay ghi chép hoặc các tệp bảng tính điện tử phân tán để theo dõi danh sách khách hàng và tình trạng phòng trống. Phương pháp này bộc lộ nhiều điểm hạn chế, thường xuyên dẫn đến tình trạng sai sót thông tin, nhầm lẫn dữ liệu đặt phòng, chậm trễ trong việc cập nhật phòng trống và làm gia tăng chi phí nhân sự cũng như thời gian xử lý nghiệp vụ.

Cùng với sự phát triển mạnh mẽ của thương mại điện tử và công nghệ thông tin trong ngành du lịch, việc xây dựng một hệ thống website quản lý phòng và đặt phòng trực tuyến trở thành nhu cầu cấp thiết. Mặc dù một số cơ sở lưu trú đã bước đầu ứng dụng các kênh trực tuyến, song quy trình đặt phòng trên thị trường nhìn chung vẫn còn tồn tại sự phức tạp, thiếu tính đồng nhất và chưa tối ưu hóa được khâu tích hợp thanh toán an toàn, thuận tiện. Xuất phát từ thực tiễn trên, đề tài "Xây dựng website quản lý đặt phòng khách sạn Vinpearl" được sinh viên Lê Bá Nhật thực hiện nhằm xây dựng một giải pháp phần mềm hoàn chỉnh, hỗ trợ khách sạn quản lý dữ liệu lưu trú tập trung và mang lại kênh tương tác số hóa tiện ích cho khách hàng.

Mục tiêu nghiên cứu của đề tài được tác giả xác định cụ thể gồm:

  1. Thiết kế và phát triển website quản lý đặt phòng khách sạn đáp ứng nhu cầu và yêu cầu của khách hàng và doanh nghiệp trong ngành khách sạn và du lịch.
  2. Đưa ra một giải pháp quản lý phòng và đặt phòng tối ưu, giảm thiểu các sai sót xảy ra trong quá trình quản lý.
  3. Tăng cường khả năng quản lý và giảm thiểu chi phí vận hành của các khách sạn và nhà nghỉ, cải thiện hiệu quả kinh doanh của họ.
  4. Cải thiện trải nghiệm của khách hàng, giúp khách hàng dễ dàng tìm kiếm thông tin, đặt phòng nhanh chóng và thanh toán trực tuyến một cách an toàn và thuận tiện.

Để đạt được các mục tiêu trên, tác giả đã cụ thể hóa thành 6 nhiệm vụ nghiên cứu chính:

  1. Thu thập thông tin tài liệu liên quan và khảo sát thực tế.
  2. Phân tích thiết kế các chức năng của hệ thống.
  3. Phân tích thiết kế cơ sở dữ liệu.
  4. Xây dựng hệ thống website.
  5. Kiểm thử phần mềm.
  6. Hoàn thành báo cáo tổng hợp.

Đối tượng và phạm vi nghiên cứu của đồ án được giới hạn rõ ràng:

  • Đối tượng nghiên cứu: Quy trình vận hành và nghiệp vụ đặt phòng tại các cơ sở lưu trú; các nhóm người dùng nội bộ gồm nhà quản lý (Admin), nhân viên lễ tân, nhân viên quản lý phòng và tài chính; cùng nhóm người dùng bên ngoài là khách hàng có nhu cầu lưu trú (chuyên gia du lịch, nhân viên công ty du lịch, nhóm khách tham quan và khách du lịch cá nhân).
  • Phạm vi nghiên cứu: Áp dụng khảo sát và xây dựng hệ thống mẫu cho Khách sạn Vinpearl, địa chỉ tại số 341 đường Trần Hưng Đạo, phường An Hải Bắc, quận Sơn Trà, thành phố Đà Nẵng; thời gian hoàn thành nghiên cứu được ghi nhận vào tháng 01/2024.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và công nghệ của đồ án tập trung vào các công nghệ lập trình hiện đại phục vụ phát triển ứng dụng web phân tán với cấu trúc tách biệt giữa giao diện người dùng, xử lý logic máy chủ và lưu trữ cơ sở dữ liệu:

  • Ngôn ngữ Golang (Go Language): Ngôn ngữ lập trình mã nguồn mở do các kỹ sư của Google phát triển. Golang là ngôn ngữ định kiểu tĩnh (static typed), sở hữu cú pháp tinh gọn tương đồng với C++, biên dịch trực tiếp sang mã máy giúp tối ưu hiệu suất thực thi, có cơ chế gom rác (Garbage Collector) tích hợp và hỗ trợ xử lý đa nhiệm nhẹ thông qua Goroutines và Channels.
  • Thư viện Reactjs (React.js): Thư viện JavaScript mã nguồn mở được phát triển bởi Facebook và Instagram. Công nghệ này hoạt động theo kiến trúc phân tách thành các thành phần độc lập (Component-based), sử dụng cú pháp mở rộng JSX và cơ chế DOM ảo (Virtual DOM) để so sánh và cập nhật dữ liệu hiển thị trên trình duyệt mà không cần tải lại toàn bộ trang web.
  • Hệ quản trị cơ sở dữ liệu PostgreSQL: Hệ quản trị cơ sở dữ liệu quan hệ - đối tượng (ORDBMS) mã nguồn mở phát triển trên nền tảng POSTGRES 4.2 tại Đại học California ở Berkeley. Hệ thống này tương thích chuẩn ACID, kiểm soát đồng thời nhiều phiên bản (MVCC), ghi nhật ký ghi trước (WAL), hỗ trợ nhiều kiểu dữ liệu nâng cao (JSON/JSONB, chuỗi, số, mảng, hình học GIS) cùng cơ chế xác thực bảo mật đa tầng.

Phương pháp nghiên cứu thực tế được tác giả triển khai bao gồm:

  • Phương pháp nghiên cứu tài liệu và khảo sát thị trường: Thu thập, tổng hợp các tài liệu kỹ thuật chuyên sâu về Golang, Reactjs và PostgreSQL; khảo sát quy trình quản lý thực tế tại Vinpearl Đà Nẵng để xác định các yêu cầu nghiệp vụ và nhu cầu sử dụng của khách hàng.
  • Phương pháp phân tích và thiết kế hệ thống phần mềm: Xác định các tác nhân, phân rã chức năng nghiệp vụ, xây dựng kịch bản use case và mô hình hóa thực thể mối quan hệ (ERD).
  • Phương pháp thực nghiệm xây dựng phần mềm: Lập trình mã nguồn giao diện frontend với Reactjs, xây dựng backend với Golang và triển khai hệ thống cơ sở dữ liệu quan hệ trên PostgreSQL thông qua môi trường Visual Studio Code.
  • Phương pháp kiểm thử hệ thống: Thực hiện kiểm thử tính năng của các phân hệ đăng nhập, đặt phòng, xác nhận thanh toán và thống kê để đảm bảo hệ thống vận hành đúng logic nghiệp vụ.
  • Phương pháp đánh giá và hoàn thiện: Đánh giá khả năng đáp ứng yêu cầu của chương trình, đề xuất các định hướng nâng cấp và hoàn thiện tài liệu hướng dẫn.

Nguồn dữ liệu ban đầu phục vụ nghiên cứu gồm các tài liệu kỹ thuật chính thức: tài liệu Golang tại golang.org và 200lab.io; tài liệu hệ quản trị PostgreSQL tại vinasupport.com; tài liệu Reactjs tại reactjs.org (vi.reactjs.org); cùng các số liệu khảo sát thực tế tại khách sạn Vinpearl Đà Nẵng.

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình ứng dụng web đa tầng, kết nối trực tiếp giữa giao diện người dùng Reactjs, tầng điều khiển và xử lý logic Golang, và hệ thống lưu trữ dữ liệu PostgreSQL.

1. Đánh giá ưu điểm và nhược điểm của các công nghệ được lựa chọn

Bảng tổng hợp đặc điểm kỹ thuật của các công nghệ theo phân tích trong đồ án:

Công nghệ Vai trò trong hệ thống Ưu điểm theo phân tích của tác giả Nhược điểm được ghi nhận trong văn bản
Golang Backend / Xử lý logic nghiệp vụ và API Hiệu suất cao, biên dịch nhanh; cơ chế Goroutines hỗ trợ xử lý đồng thời nhẹ; cú pháp đơn giản, dễ bảo trì; Garbage Collector tự động quản lý bộ nhớ. Chưa hỗ trợ đầy đủ Generics ở các phiên bản cũ; thiếu mô hình kế thừa lớp truyền thống (dùng interface thay thế); thư viện và cộng đồng còn hạn chế so với Java/Python.
Reactjs Frontend / Xây dựng giao diện người dùng Virtual DOM tối ưu hóa tốc độ kết xuất dữ liệu; kiến trúc Component-based giúp tái sử dụng mã nguồn; JSX trực quan; cộng đồng hỗ trợ lớn; dễ mở rộng sang React Native. Cần thời gian làm quen với JSX và Component; chỉ giải quyết tầng giao diện (View), cần dùng thêm thư viện định tuyến và quản lý trạng thái; cấu hình dự án phức tạp.
PostgreSQL Database / Lưu trữ dữ liệu quan hệ Ổn định, chi phí bảo trì thấp; mã nguồn mở tự do; hỗ trợ đối tượng hóa dữ liệu, MVCC, WAL, ACID; lưu trữ đa dạng kiểu dữ liệu (nguyên hàm, JSONB, Date/Time). Do tính mở nên cấu hình tối ưu tốc độ phức tạp hơn MySQL; một số ứng dụng mã nguồn mở chưa hỗ trợ đầy đủ so với MySQL; hiệu suất mặc định có thể chậm hơn MySQL ở một số truy vấn đơn giản.

2. Phân tích tác nhân (Actors) và phân quyền chức năng

Hệ thống phân định ranh giới hoạt động của 3 nhóm tác nhân chính:

  • Khách hàng (Customer): Có quyền đăng ký tài khoản, đăng nhập hệ thống, cập nhật thông tin cá nhân; tìm kiếm phòng dựa trên thời gian nhận/trả và số lượng khách; xem thông tin loại phòng, giá phòng; thực hiện đặt phòng trực tuyến; đăng ký các dịch vụ bổ sung; thực hiện thanh toán; tra cứu danh sách phòng đã đặt và gửi phản hồi đánh giá.
  • Nhân viên lễ tân (Receptionist): Đăng nhập hệ thống được cấp quyền; tiếp nhận và xác nhận thông tin đặt phòng; thực hiện quy trình Check-in (bàn giao thẻ phòng, ghi chú yêu cầu phát sinh); thực hiện quy trình Check-out; xác nhận thông tin thanh toán; lập và xuất hóa đơn dịch vụ (in trực tiếp hoặc gửi qua email); cung cấp thông tin phòng và dịch vụ cho khách hàng.
  • Quản lý / Quản trị viên (Admin): Giám sát toàn bộ hoạt động của khách sạn; quản lý thông tin nhân sự và phân công lịch làm việc; quản lý danh mục phòng (thêm, sửa, xóa thông tin phòng, loại phòng, số tầng, giá phòng, trạng thái); quản lý danh mục dịch vụ; quản lý thông tin khách hàng; giám sát các phiếu đặt phòng và hóa đơn thanh toán; xem báo cáo thống kê doanh thu theo ngày, tuần, tháng; tạo tài khoản và phân quyền cho người dùng hệ thống.

3. Thiết kế cơ sở dữ liệu quan hệ (Relational Database Schema)

Hệ thống cơ sở dữ liệu PostgreSQL của đồ án bao gồm các bảng dữ liệu có mối quan hệ chặt chẽ qua các khóa ngoại:

Bảng 2.1: Bảng NhanVien (Nhân viên)

STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 IdNhanVien Numeric Primary key Mã định danh nhân viên
2 TenNhanVien Varchar Not null Tên nhân viên
3 GioiTinh Varchar - Giới tính
4 NgaySinh Date - Ngày sinh
5 Sdt Varchar - Số điện thoại
6 Cmnd Varchar - Số chứng minh nhân dân/Căn cước
7 DiaChi Varchar - Địa chỉ cư trú
8 NgayVaoLam Date - Ngày bắt đầu làm việc

Bảng 2.2: Bảng KhachHang (Khách hàng)

STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 IdKhachHang Numeric Primary key Mã định danh khách hàng
2 TenKhachHang Varchar Not null Họ và tên khách hàng
3 GioiTinh Varchar - Giới tính
4 NgaySinh Date - Ngày sinh
5 Sdt Varchar - Số điện thoại liên hệ
6 Cmnd Varchar - Số chứng minh nhân dân
7 DiaChi Varchar - Địa chỉ khách hàng

Bảng 2.3: Bảng PhieuDat / PhieuDatPhong (Phiếu đặt phòng)

STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 IdPhieuDatPhong Numeric Primary key Mã phiếu đặt phòng
2 IdKhachHang Numeric Foreign key Liên kết bảng Khách hàng
3 IdNhanVien Numeric Foreign key Nhân viên tiếp nhận/xử lý
4 IdPhieuDichVu Numeric Foreign key Liên kết phiếu dịch vụ sử dụng
5 NgayLapPhieu Date - Ngày lập phiếu đặt phòng
6 NgayDen Date - Ngày dự kiến khách nhận phòng
7 TinhTrang Varchar - Trạng thái phiếu đặt phòng

Bảng 2.4: Bảng LoaiPhong (Loại phòng)

STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 IdLoaiPhong Numeric Primary key Mã loại phòng
2 TenLoaiPhong Varchar Not null Tên loại phòng
3 Gia Numeric - Mức giá niêm yết
4 HangPhong Varchar - Hạng phòng

Bảng 2.5: Bảng Phong (Phòng)

STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 IdPhong Numeric Primary key Mã số định danh phòng
2 IdLoaiPhong Numeric Foreign key Liên kết bảng Loại phòng
3 SoPhong Numeric - Số phòng cụ thể
4 SoTang Numeric - Số tầng của phòng
5 TinhTrang Varchar - Trạng thái phòng (trống/đã đặt/đang ở)

Bảng 2.6: Bảng ChiTietPhieuDatPhong (Chi tiết phiếu đặt phòng)

STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 IdChiTietPhieuDatPhong Numeric Primary key Mã chi tiết phiếu đặt phòng
2 IdPhong Numeric Foreign key Liên kết phòng được đặt
3 IdPhieuDatPhong Numeric Foreign key Liên kết phiếu đặt phòng tương ứng
4 NgayDen Date - Ngày nhận phòng thực tế
5 NgayTraPhong Date - Ngày trả phòng thực tế

Bảng 2.7: Bảng DichVu (Dịch vụ)

STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 IdDichVu Numeric Primary key Mã số dịch vụ
2 TenDichVu Varchar Not null Tên dịch vụ khách sạn cung cấp
3 GiaDichVu Numeric - Đơn giá dịch vụ

Bảng 2.8: Bảng PhieuDichVu (Phiếu dịch vụ)

STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 IdPhieuDichVu Numeric Primary key Mã phiếu sử dụng dịch vụ
2 IdPhieuDatPhong Numeric Foreign key Liên kết phiếu đặt phòng tương ứng
3 NgaySuDungDichVu Date - Ngày khách hàng sử dụng dịch vụ
4 TongTien Numeric - Tổng số tiền dịch vụ phát sinh

Bên cạnh 8 bảng cốt lõi này, cấu trúc cơ sở dữ liệu của đồ án còn có các bảng bổ trợ được liệt kê trong danh mục gồm Bảng chi tiết dịch vụ và Bảng hệ thống để lưu trữ các tham số vận hành và cấu hình tài khoản.

Nội dung chính theo từng chương

Mở đầu

Phần mở đầu nêu rõ bối cảnh ngành khách sạn đang chịu áp lực chuyển đổi số từ các phương thức quản lý ghi chép sổ sách và bảng tính thủ công sang hệ thống trực tuyến. Tác giả xác định mục tiêu tổng quát, 4 mục tiêu cụ thể, 6 nhiệm vụ chính, phạm vi nghiên cứu tại Vinpearl Đà Nẵng, tóm tắt các phương pháp tiếp cận và giới thiệu giải pháp công nghệ chính (Golang, Reactjs, PostgreSQL).

Chương 1: Cơ sở lý thuyết

Chương 1 hệ thống hóa cơ sở lý luận và nền tảng kỹ thuật phục vụ việc phát triển website:

  • Giới thiệu ngôn ngữ Golang: Phân tích nguồn gốc xuất xứ, đặc tính static typed, cú pháp tinh gọn giống C++, các ưu điểm nổi bật (hiệu suất thực thi, khả năng biên dịch nhanh, đa nhiệm nhẹ với goroutines, quản lý bộ nhớ qua garbage collection) cùng các điểm hạn chế (chưa hỗ trợ generics hoàn chỉnh, không có kế thừa lớp cổ điển, cộng đồng và thư viện còn nhỏ hơn Java/Python).
  • Giới thiệu thư viện Reactjs: Phân tích cấu trúc thư viện JavaScript do Facebook và Instagram phát triển, cơ chế dựng hình đa nền tảng (cả máy chủ lẫn máy khách), mô hình Component-based, vai trò của JSX và nguyên lý hoạt động của Virtual DOM trong việc giảm tải áp lực cập nhật DOM trên trình duyệt. Tác giả cũng chỉ ra các nhược điểm của Reactjs như rào cản làm quen với JSX/Component, phạm vi giải quyết giới hạn ở tầng giao diện và sự phân mảnh của các thư viện phụ trợ đi kèm.
  • Giới thiệu hệ quản trị PostgreSQL: Cung cấp lịch sử hình thành từ POSTGRES 4.2 tại Đại học California ở Berkeley, bản quyền mã nguồn mở tự do, khả năng vận hành ổn định trên nhiều nền tảng (UNIX, Windows, OS X), hệ tính năng phong phú về kiểu dữ liệu (nguyên hàm, JSON/JSONB, GIS, cấu trúc), kiểm soát đồng thời MVCC, ghi nhật ký WAL, giao tác độc lập chuẩn SQL và cơ chế bảo mật xác thực (SCRAM-SHA-256, phân quyền cấp hàng/cột). Tác giả cũng so sánh tương quan giữa PostgreSQL và MySQL về độ phức tạp khi tinh chỉnh hiệu năng.

Chương 2: Phân tích thiết kế hệ thống

Chương 2 là phần trọng tâm về kỹ thuật phân tích nghiệp vụ và kiến trúc dữ liệu:

  • Khảo sát yêu cầu và hoạt động nghiệp vụ: Phân chia chi tiết nhu cầu vận hành thực tế của 3 nhóm đối tượng: Khách hàng (đặt phòng, thanh toán, phản hồi); Nhân viên lễ tân (tiếp nhận đặt phòng, check-in, check-out, cung cấp thông tin, lập hóa đơn); Quản lý/Admin (quản lý đặt phòng, quản lý nhân sự, báo cáo thống kê doanh thu, cấu hình hệ thống, quản lý tài khoản và bảo mật).
  • Đặc tả kịch bản use case và quy trình xử lý: Chi tiết hóa từng bước xử lý tuần tự (Input/Output/Thao tác từng bước) cho các quy trình: Đăng nhập khách hàng; Tìm kiếm phòng và thanh toán; Đăng nhập nhân viên; Tiếp nhận và xác nhận đặt phòng; Xác nhận thanh toán; Thực hiện thủ tục Check-in và Check-out; Đăng nhập và các luồng cập nhật thông tin của Quản trị viên (quản lý phòng, nhân viên, khách hàng, dịch vụ, đặt phòng, hóa đơn, tài khoản người dùng).
  • Thiết kế mô hình dữ liệu: Trình bày sơ đồ chức năng đặt phòng, sơ đồ ERD và xây dựng chi tiết 8 bảng cơ sở dữ liệu quan hệ hoàn chỉnh từ Bảng 2.1 đến Bảng 2.8, bảo đảm tính toàn vẹn dữ liệu thông qua các ràng buộc khóa chính và khóa ngoại.

Chương 3: Xây dựng chương trình

Chương 3 mô tả quá trình hiện thực hóa thiết kế hệ thống thành sản phẩm phần mềm thực tế:

  • Công cụ phát triển: Trình bày việc sử dụng môi trường soạn thảo mã nguồn Visual Studio Code với các tính năng hỗ trợ lập trình, quản lý gói và gỡ lỗi.
  • Hiện thực hóa giao diện người dùng:
    • Phân hệ khách hàng: Xây dựng giao diện đăng ký, đăng nhập, trang chủ, danh sách hiển thị các phòng khách sạn, màn hình chi tiết thông tin đặt phòng, giao diện quản lý danh sách phòng đã đặt và giao diện cập nhật hồ sơ cá nhân.
    • Phân hệ nhân viên lễ tân: Xây dựng giao diện tiếp nhận và xác nhận đặt phòng, giao diện xác nhận thanh toán, và màn hình hiển thị hóa đơn thanh toán hoàn chỉnh sau khi hoàn tất giao dịch.
    • Phân hệ quản trị (Admin): Xây dựng hệ thống bảng điều khiển quản lý thông tin khách hàng, nhân viên, danh mục phòng, dịch vụ lưu trú và tài khoản hệ thống.
    • Phân hệ thống kê doanh thu: Trình bày các giao diện báo cáo doanh thu đa chiều phục vụ công tác quản lý, gồm có giao diện thống kê doanh thu theo từng ngày, giao diện quản lý doanh thu theo tuần và giao diện thống kê doanh thu theo tháng.

Kết luận và Hướng phát triển

Tác giả tóm tắt lại các kết quả đã hoàn thành trong việc xây dựng website đặt phòng khách sạn, đồng thời nêu lên định hướng mở rộng hệ thống trong giai đoạn tiếp theo.

Kết quả và đóng góp

Về kết quả kỹ thuật, đồ án đã hiện thực hóa các nội dung sau:

  • Xây dựng thành công hệ thống website quản lý đặt phòng khách sạn Vinpearl đáp ứng đầy đủ các luồng nghiệp vụ cơ bản từ khâu tìm kiếm, đặt chỗ đến quản lý và thanh toán.
  • Thiết kế và chuẩn hóa được hệ thống cơ sở dữ liệu quan hệ gồm 8 bảng dữ liệu cốt lõi trên PostgreSQL, bảo đảm tính toàn vẹn tham chiếu thông qua các khóa chính và khóa ngoại giữa nhân viên, khách hàng, phòng, loại phòng, phiếu đặt phòng và dịch vụ.
  • Thiết lập quy trình xử lý tách bạch cho 3 nhóm tác nhân (Khách hàng, Lễ tân, Quản lý) với các giao diện thao tác trực quan, hỗ trợ nhân viên thực hiện check-in/check-out nhanh chóng và cho phép quản trị viên theo dõi doanh thu theo các mốc thời gian ngày, tuần, tháng.

Về giải pháp đề xuất, tác giả đưa ra mô hình tích hợp công nghệ giữa Golang (xử lý phía máy chủ có tốc độ cao, đa nhiệm tốt), Reactjs (giao diện phản hồi nhanh nhờ Virtual DOM) và PostgreSQL (cơ sở dữ liệu quan hệ mạnh mẽ, hỗ trợ mở rộng và bảo mật tốt). Giải pháp này giúp khách sạn khắc phục tình trạng ghi nhận dữ liệu thủ công rời rạc, tránh sai sót trong việc theo dõi tình trạng phòng trống.

Về đóng góp so với nghiên cứu trước mà tác giả tự nêu: Đề tài cung cấp một giải pháp quản lý phòng và đặt phòng tối ưu, giảm thiểu sai sót so với việc sử dụng sổ tay hay bảng tính truyền thống; đồng thời tích hợp trực tiếp quy trình thanh toán trực tuyến thuận tiện trên cùng một nền tảng, tạo điều kiện để các cơ sở lưu trú nâng cao hiệu quả làm việc, tiết kiệm chi phí vận hành và tăng cường khả năng cạnh tranh trên thị trường.

Hạn chế và hướng nghiên cứu tiếp

Về mặt hạn chế, văn bản đồ án cho thấy nghiên cứu chủ yếu tập trung khảo sát và thử nghiệm tại một địa bàn cơ sở cụ thể là Khách sạn Vinpearl Đà Nẵng, chưa triển khai mở rộng thực tế trên quy mô chuỗi khách sạn đa chi nhánh. Bên cạnh đó, việc tích hợp cổng thanh toán trực tuyến ở giai đoạn này chủ yếu giải quyết luồng xác nhận thanh toán nội bộ của nhân viên và khách hàng, chưa liên kết sâu với hệ thống ngân hàng hoặc các cổng thanh toán quốc tế phức tạp. Hệ thống cũng chưa xây dựng ứng dụng di động độc lập mà mới dừng lại ở giao diện web thích ứng.

Về hướng nghiên cứu tiếp, dựa trên các nội dung tác giả đề cập trong đồ án:

  • Tiếp tục nghiên cứu và mở rộng các tính năng nâng cao cho website quản lý đặt phòng khách sạn nhằm đáp ứng linh hoạt các nghiệp vụ lưu trú phát sinh.
  • Tối ưu hóa hiệu năng cơ sở dữ liệu và mở rộng liên kết các cổng thanh toán trực tuyến chuyên sâu.
  • Nghiên cứu phát triển ứng dụng trên nền tảng thiết bị di động (sử dụng React Native để tận dụng khả năng chia sẻ mã nguồn với Reactjs) nhằm đa dạng hóa kênh tiếp cận cho khách hàng và nhân viên.

Giá trị tham khảo

Đồ án là tài liệu tham khảo phù hợp cho sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin quản lý, đặc biệt là những người đang thực hiện đồ án tốt nghiệp hoặc bài tập lớn về đề tài thương mại điện tử, quản trị dịch vụ du lịch - khách sạn:

  • Phần đáng tham khảo nhất trong đồ án là Chương 2 với bảng đặc tả kịch bản use case chi tiết theo từng bước (vào, ra, các bước xử lý nghiệp vụ) cho cả 3 nhóm người dùng, cùng cấu trúc 8 bảng cơ sở dữ liệu quan hệ được định nghĩa rõ ràng về kiểu dữ liệu và ràng buộc khóa.
  • Đồ án cũng là tài liệu thực hành có giá trị cho các lập trình viên muốn tìm hiểu cách ứng dụng kết hợp giữa ngôn ngữ backend Golang, thư viện frontend Reactjs và hệ quản trị PostgreSQL trong một bài toán nghiệp vụ quản trị dữ liệu thực tế.

Câu hỏi thường gặp

1. Hệ thống cơ sở dữ liệu của đồ án được xây dựng bằng công nghệ nào và bao gồm những bảng dữ liệu chính nào? Hệ thống sử dụng hệ quản trị cơ sở dữ liệu quan hệ - đối tượng PostgreSQL. Cơ sở dữ liệu bao gồm 8 bảng dữ liệu chính được định nghĩa chi tiết: NhanVien, KhachHang, PhieuDat (Phiếu đặt phòng), LoaiPhong, Phong, ChiTietPhieuDatPhong, DichVu, PhieuDichVu, cùng các bảng bổ trợ như bảng chi tiết dịch vụ và bảng hệ thống.

2. Tác giả phân tích những ưu điểm và nhược điểm gì của ngôn ngữ Golang khi lựa chọn làm công nghệ backend? Theo Chương 1 của đồ án, Golang có ưu điểm là hiệu suất cao, biên dịch nhanh, mã máy hiệu quả, cơ chế gom rác tích hợp, hỗ trợ đa nhiệm nhẹ (goroutines) và xử lý đồng thời qua channels với cú pháp đơn giản. Nhược điểm của Golang được tác giả ghi nhận là chưa hỗ trợ đầy đủ generics ở các phiên bản cũ, thiếu mô hình kế thừa hướng đối tượng truyền thống (thay vào đó phải dùng interfaces), cùng cộng đồng và hệ sinh thái thư viện còn nhỏ hơn so với Java hay Python.

3. Hệ thống phân chia quyền hạn thành những nhóm tác nhân nào và nhiệm vụ của từng tác nhân là gì? Hệ thống phân chia thành 3 tác nhân chính:

  • Khách hàng: Đăng ký, đăng nhập, tìm kiếm phòng, đặt phòng, chọn dịch vụ phòng, thanh toán, xem lịch sử đặt phòng và gửi phản hồi.
  • Nhân viên lễ tân: Đăng nhập, tiếp nhận và xác nhận đặt phòng, thực hiện thủ tục check-in (cấp thẻ phòng), thực hiện check-out, xác nhận thanh toán và in/gửi hóa đơn qua email.
  • Quản lý (Admin): Quản trị thông tin nhân viên, khách hàng, danh mục phòng, dịch vụ, đặt phòng, hóa đơn, cấu hình bảo mật hệ thống, phân quyền tài khoản người dùng và xem báo cáo thống kê doanh thu.

4. Phân hệ báo cáo thống kê doanh thu hỗ trợ người quản lý theo dõi số liệu theo những mốc thời gian nào? Theo nội dung thiết kế và danh mục giao diện tại Chương 3, hệ thống cung cấp 3 giao diện báo cáo doanh thu riêng biệt cho nhà quản lý, bao gồm: giao diện thống kê doanh thu theo từng ngày, giao diện quản lý doanh thu theo tuần và giao diện thống kê doanh thu theo tháng.

5. Phạm vi không gian nghiên cứu và địa chỉ triển khai thực tế của đề tài là ở đâu? Phạm vi nghiên cứu thực tế của đề tài được tác giả xác định cụ thể tại Khách sạn Vinpearl, địa chỉ số 341 đường Trần Hưng Đạo, phường An Hải Bắc, quận Sơn Trà, thành phố Đà Nẵng, được hoàn thành và nộp báo cáo vào tháng 01/2024 dưới sự hướng dẫn của ThS. Trần Bửu Dung.

Kết luận

Đồ án tốt nghiệp "Xây dựng website quản lý đặt phòng khách sạn Vinpearl" của sinh viên Lê Bá Nhật đã giải quyết trọn vẹn bài toán số hóa quy trình quản lý lưu trú và đặt phòng khách sạn từ khâu khảo sát nghiệp vụ đến hiện thực hóa phần mềm. Bằng việc kết hợp hiệu quả bộ ba công nghệ Golang, Reactjs và PostgreSQL, tác giả đã xây dựng được một hệ thống thông tin hoàn chỉnh với cấu trúc cơ sở dữ liệu quan hệ chặt chẽ và giao diện phân quyền rõ ràng cho Khách hàng, Lễ tân và Quản trị viên. Đề tài cung cấp tài liệu tham khảo có giá trị học thuật và ứng dụng thực tiễn cao cho sinh viên chuyên ngành Công nghệ thông tin trong việc phân tích thiết kế hệ thống và phát triển ứng dụng web thương mại điện tử.