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

Đồ án tốt nghiệp kỹ sư ngành Công nghệ Thông tin (chuyên ngành Công nghệ phần mềm) của tác giả Nguyễn Anh Sang, dưới sự hướng dẫn của Ts. Lê Văn Vinh tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (khóa 2016–2020), giải quyết bài toán ứng dụng công nghệ thông tin vào lĩnh vực chăm sóc thú cưng tại Việt Nam.

Bối cảnh thực tiễn và lý do chọn đề tài

Theo trình bày của tác giả, trong bối cảnh cuộc Cách mạng công nghiệp 4.0 và xu hướng vạn vật kết nối Internet (IoT), việc ứng dụng mạng lưới thông tin đã làm thay đổi nhiều khía cạnh của đời sống kinh tế, y tế và giáo dục tại Việt Nam kể từ thời điểm kết nối Internet quốc tế năm 1997. Mức sống của người dân được nâng cao kéo theo nhu cầu nuôi và chăm sóc thú cưng gia tăng rõ rệt. Tuy nhiên, trước đây việc tiếp cận các địa điểm thú y hay cơ sở dịch vụ uy tín gặp nhiều trở ngại do người nuôi chủ yếu phải tìm kiếm thủ công, hỏi thăm trực tiếp ngoài đường; một số trường hợp thậm chí phải từ bỏ sở thích nuôi dưỡng do thiếu thông tin và phương tiện hỗ trợ y tế kịp thời. Xuất phát từ thực tế đó, đề tài xây dựng một hệ thống website chuyên biệt nhằm hỗ trợ tra cứu, đánh giá khách quan và kết nối các cơ sở thú y, cửa hàng chăm sóc thú cưng với cộng đồng người nuôi.

Mục tiêu và nhiệm vụ nghiên cứu

Trong đề cương khóa luận, tác giả xác định 3 nhiệm vụ kỹ thuật trọng tâm:

  1. Tìm hiểu quy trình xây dựng ứng dụng web sử dụng thư viện ReactJS.
  2. Tìm hiểu và ứng dụng kết hợp thư viện ReactJS với hệ quản trị cơ sở dữ liệu MongoDB trong triển khai đồ án.
  3. Xây dựng hoàn chỉnh website tìm kiếm địa điểm thú y, cửa hàng dịch vụ chăm sóc thú cưng.

Cụ thể hóa thành các mục tiêu chức năng hệ thống:

  • Cung cấp tính năng xem và tìm kiếm thông tin địa điểm thú y, cửa hàng dịch vụ đã đăng tải.
  • Cung cấp chuyên mục tin tức, bài viết kiến thức về sức khỏe và chăm sóc thú cưng.
  • Quản lý xác thực người dùng: đăng ký tài khoản, đăng nhập, khôi phục mật khẩu và cập nhật hồ sơ cá nhân.
  • Hỗ trợ người dùng đăng tải cơ sở chăm sóc, phòng khám thú y của mình thông qua quy trình lấy thông tin nhiều bước chặt chẽ.
  • Hỗ trợ cơ chế tương tác cộng đồng: bình luận đa cấp và gửi đánh giá (chấm điểm sao).
  • Cung cấp phân hệ quản trị (Admin) để theo dõi báo cáo thống kê (người dùng, địa điểm, bài viết), kiểm duyệt bài viết, vô hiệu hóa tài khoản vi phạm và xử lý các địa điểm ảo.

Đối tượng và phạm vi nghiên cứu

  • Đối tượng nghiên cứu: Quy trình phân tích, thiết kế và hiện thực hóa một hệ thống web định vị, tra cứu và đánh giá dịch vụ thú y, chăm sóc thú cưng.
  • Phạm vi không gian: Nền tảng ứng dụng web phục vụ người dùng nuôi thú cưng và các đơn vị kinh doanh dịch vụ thú y trên phạm vi lãnh thổ Việt Nam.
  • Phạm vi thời gian: Đồ án được triển khai thực hiện theo kế hoạch từ ngày 15/03/2020 đến ngày 20/06/2020 (nghiệm thu hoàn tất vào cuối tháng 06/2020).

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

Khung công nghệ và nền tảng lý thuyết

Đồ án lựa chọn xây dựng hệ thống trên nền tảng Full-stack JavaScript, bao gồm các công nghệ:

  • ReactJS: Thư viện JavaScript mã nguồn mở do Facebook phát triển, tập trung vào việc bóc tách giao diện người dùng phức tạp thành các component độc lập, tái sử dụng cao. Tác giả vận dụng cú pháp JSX (cho phép lồng mã HTML trong JavaScript, tối ưu hóa quá trình biên dịch) và cơ chế luồng dữ liệu một chiều (single-way data flow từ component cha xuống component con), giúp kiểm soát trạng thái giao diện mạch lạc khi mở rộng chức năng.
  • NodeJS và ExpressJS: NodeJS đóng vai trò môi trường thực thi (runtime) JavaScript phía máy chủ, xây dựng trên engine V8 của Chrome, vận hành theo kiến trúc hướng sự kiện (event-driven) và mô hình vào/ra không chặn (non-blocking I/O). ExpressJS là web framework chạy trên NodeJS, cung cấp hệ thống định tuyến (routes), bộ xử lý trung gian (middleware) xử lý các HTTP request và cấu trúc hóa ứng dụng theo mô hình MVC (Model - View - Controller) chia tách rõ các tầng routes, Views và Public.
  • MongoDB: Hệ quản trị cơ sở dữ liệu NoSQL hướng tài liệu (document-oriented database). Dữ liệu được tổ chức dưới định dạng JSON/BSON linh hoạt, sử dụng khái niệm collection (tương ứng với table trong RDBMS) và document (tương ứng với row trong RDBMS). Cấu trúc này không bắt buộc lược đồ cứng nhắc, cho phép lồng ghép dữ liệu liên quan để tối ưu tốc độ truy vấn đối với các nghiệp vụ đọc/ghi địa điểm và bình luận.

Phương pháp nghiên cứu và quy trình triển khai

Tác giả áp dụng các phương pháp kỹ thuật phần mềm bao gồm:

  • Phương pháp khảo sát hiện trạng: Khảo sát các website thực tế có nghiệp vụ định vị, tra cứu tại Việt Nam (hệ thống tìm kiếm địa điểm ăn uống Foody.vn, Lozi và website tìm kiếm phòng trọ Phongtro123.com) nhằm phân tích ưu nhược điểm về bố cục hiển thị, bộ lọc tìm kiếm và khả năng tương tác.
  • Phương pháp mô hình hóa phần mềm: Sử dụng ngôn ngữ mô hình hóa UML để xây dựng sơ đồ ca sử dụng (Use Case Diagram), sơ đồ luồng dữ liệu (SDLDL), lược đồ tuần tự (Sequence Diagram) và lược đồ lớp (Class Diagram).
  • Phương pháp thực nghiệm - phát triển hệ thống: Thiết kế giao diện (UI) và thiết kế xử lý theo từng vai trò tác nhân; kiểm thử chức năng trên môi trường phần mềm với công cụ Visual Studio Code.

Tiến độ thực hiện đồ án được chia thành 15 tuần cụ thể:

Giai đoạn (Tuần) Thời gian Nhiệm vụ thực hiện theo kế hoạch
Tuần 1 + 2 + 3 15/03 – 04/04/2020 Khảo sát hiện trạng; xây dựng Use Case, Class Diagram, Sequence Diagram; thiết lập mô hình cơ sở dữ liệu.
Tuần 4 05/04 – 11/04/2020 Nghiên cứu chuyên sâu lý thuyết ReactJS, NodeJS và MongoDB.
Tuần 5 + 6 + 7 + 8 12/04 – 09/05/2020 Xây dựng giao diện với ReactJS; lập trình back-end với NodeJS/ExpressJS.
Tuần 9 + 10 + 11 10/05 – 30/05/2020 Kết nối giao diện phía client với cơ sở dữ liệu và back-end.
Tuần 12 31/05 – 06/06/2020 Phát triển và tích hợp hệ thống API cho sản phẩm.
Tuần 13 07/06 – 13/06/2020 Tích hợp toàn diện các thành phần, hoàn thiện phiên bản sơ bộ.
Tuần 14 14/06 – 20/06/2020 Thực hiện kế hoạch kiểm thử, dò quét và khắc phục lỗi hệ thống.
Tuần 15 21/06 – 28/06/2020 Chỉnh sửa văn bản báo cáo và đóng gói sản phẩm hoàn tất.

Khảo sát hiện trạng và tiêu chí hệ thống

Tác giả đã tiến hành đối sánh thực tế ba hệ thống website tra cứu trực tuyến nhằm rút ra bài học thiết kế cho sản phẩm:

Website khảo sát Ưu điểm ghi nhận Nhược điểm ghi nhận
Foody.vn (Website ẩm thực) Giao diện hiện đại, màu sắc hài hòa, thân thiện; tốc độ tải trang nhanh; thông tin hiển thị rõ ràng, đáp ứng cơ bản việc tìm kiếm. Bố cục hiển thị gợi ý tại trang chủ chưa tối ưu, dễ gây rối mắt cho người dùng; bộ lọc tìm kiếm chưa phân tách sâu dẫn đến kết quả chưa sát nhu cầu.
Phongtro123.com (Website tìm phòng trọ) Giao diện đơn giản, trực quan, thao tác nhanh; chức năng tìm kiếm đi thẳng vào trọng tâm nhu cầu thuê trọ, lọc thông tin sâu. Giao diện đơn điệu, tạo cảm giác cũ kỹ; mức độ tương tác giữa người dùng thấp; phần đánh giá xếp hạng mang tính chủ quan; quá trình tìm kiếm diện rộng đôi lúc phát sinh lỗi.
Lozi.vn / Trang ăn uống Nội dung đa dạng, phong phú; mức độ tương tác của cộng đồng người dùng cao. Lượng thông tin hiển thị quá dày đặc khiến giao diện rối rắm; tốc độ tải trang chậm; một số tính năng cũ không còn duy trì hoạt động.

Từ kết quả khảo sát trên, tác giả xác lập các tiêu chí hệ thống cần đạt:

  • Về giao diện: Trực quan, bố cục rõ ràng, hình ảnh sinh động, lượng thông tin hiển thị vừa đủ, không nhồi nhét nội dung.
  • Về chức năng: Đảm bảo tốc độ tải trang nhanh; tích hợp phân hệ đánh giá và bình luận minh bạch để tạo dựng độ tin cậy; chức năng tìm kiếm đạt độ chính xác cao; quy trình thu thập thông tin địa điểm chặt chẽ nhằm loại bỏ dữ liệu ảo.

Thiết kế và triển khai

Hệ thống phân định 4 nhóm tác nhân (actor) gồm: Guest (Khách vãng lai), User (Người dùng thành viên), Editor (Biên tập viên nội dung) và Admin (Quản trị viên hệ thống).

Phân quyền tác nhân và quy định nghiệp vụ

  1. Khách vãng lai (Guest):
    • Thực hiện các nghiệp vụ tra cứu: xem trang chủ (QĐ_XTC), tìm kiếm địa điểm (QĐ_TK), đọc bài viết (QĐ_XBV), xem bình luận (QĐ_XBL).
    • Nghiệp vụ đăng ký tài khoản (QĐ_ĐK qua biểu mẫu BM_ĐK): Hệ thống ràng buộc tên tài khoản phải dài từ 6–16 ký tự, chỉ gồm ký tự hoa (A–Z), thường (a–z), chữ số (0–9), dấu gạch dưới, gạch ngang, dấu chấm và không được bắt đầu bằng chữ số 0. Mật khẩu dài 6–16 ký tự, không được trùng với tên tài khoản và không bắt đầu bằng số 0.
    • Nghiệp vụ đăng nhập (QĐ_ĐN) và quên mật khẩu (QĐ_QMK qua BM_QMK): Xác thực tài khoản và gửi liên kết đặt lại mật khẩu qua email.
  2. Người dùng thành viên (User):
    • Thừa hưởng toàn bộ quyền tra cứu của Guest.
    • Thực hiện các nghiệp vụ tương tác: gửi bình luận (QĐ_TBL, BM_ĐG), chấm điểm đánh giá số sao (QĐ_ĐG).
    • Quản lý địa điểm cá nhân (QĐ_QLĐĐ, BM_QLĐĐ): Người dùng có thể đăng tải địa điểm mới (QĐ_VB) thông qua giao diện wizard 3 bước (nhập thông tin chung, mô tả dịch vụ, hình ảnh và vị trí trên bản đồ). Người dùng chỉ có quyền chỉnh sửa (QĐ_CSBV) hoặc xóa (QĐ_XBV) đối với chính những địa điểm do mình tạo ra.
    • Quản lý thông tin cá nhân (QĐ_QLTTCN, BM_TTCN): Xem (QĐ_XTTCN), sửa thông tin họ tên, số điện thoại, ảnh đại diện (QĐ_STTCN), đổi mật khẩu (QĐ_ĐMK) và đăng xuất (QĐ_ĐX).
  3. Quản trị viên (Admin):
    • Xem báo cáo thống kê tình hình hệ thống (QĐ_ATK, BM_XTK): Thống kê số lượng người dùng, số lượng địa điểm, bài viết.
    • Quản lý bài viết và địa điểm (QĐ_AQLBV, BM_QLBV): Kiểm duyệt bài viết (QĐ_ADB) trước khi công khai; xóa bài viết hoặc địa điểm vi phạm (QĐ_AXB) đồng thời kích hoạt gửi email cảnh báo vi phạm tới tác giả.
    • Quản lý tài khoản người dùng (QĐ_AQLND, BM_QLND): Truy xuất danh sách (QĐ_AXDSND) gồm tên tài khoản, họ tên, email, địa chỉ và thực hiện khóa/vô hiệu hóa các tài khoản có hành vi không phù hợp.
  4. Biên tập viên (Editor):
    • Kế thừa các quyền thao tác địa điểm và tài khoản của User.
    • Thực hiện nghiệp vụ chuyên trách về nội dung: Đăng bài viết chia sẻ kiến thức (QĐ_ĐBV, biểu mẫu BM_ĐBV) và quản lý, chỉnh sửa danh mục bài viết đã đăng (QĐ_XB, BM_XB).

Thiết kế cấu trúc dữ liệu và mô hình lớp

Tại tầng phần mềm và cơ sở dữ liệu MongoDB, hệ thống xây dựng các lớp đối tượng chính đi kèm các thuộc tính (attributes) và phương thức (methods) cụ thể:

Tên lớp (Class) Thuộc tính chính (Attributes) Phương thức xử lý chính (Methods)
User Thông tin định danh, tài khoản, mật khẩu mã hóa, họ tên, email, số điện thoại, avatar, phân quyền. Đăng ký, đăng nhập, cập nhật hồ sơ, đổi mật khẩu, xác thực phiên làm việc.
Place Mã địa điểm, tên địa điểm, loại hình dịch vụ, nội dung mô tả, danh sách hình ảnh, tọa độ bản đồ, mã người tạo. Thêm mới địa điểm (3 bước), sửa thông tin địa điểm, xóa địa điểm, truy vấn theo bộ lọc.
Comment Mã bình luận, mã đối tượng (bài viết/địa điểm), mã người dùng, nội dung chuỗi ký tự, thời gian tạo. Tạo bình luận, chỉnh sửa bình luận, xóa bình luận, tải danh sách bình luận theo đối tượng.
SubComment Mã phản hồi con, mã bình luận cha, mã người phản hồi, nội dung trả lời, thời gian tạo. Gửi phản hồi bình luận, xóa phản hồi con.
Rate Mã đánh giá, mã địa điểm, mã người đánh giá, số sao chấm điểm. Khởi tạo điểm đánh giá, tính toán điểm trung bình số sao cho địa điểm.
News Mã bài viết, tiêu đề bài viết, nội dung bài viết, hình ảnh đại diện, tác giả (Editor), trạng thái duyệt. Tạo bài viết mới, biên tập nội dung, duyệt bài (Admin), xóa bài viết.

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

Bố cục khóa luận được cấu trúc chi tiết qua 6 chương nội dung chuyên môn:

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

Chương này tập trung trình bày các nền tảng kỹ thuật được lựa chọn để phát triển hệ sinh thái phần mềm. Tác giả đi sâu phân tích cơ chế vận hành của ReactJS, đặc biệt là cú pháp mở rộng JSX giúp rút ngắn thời gian viết mã và tối ưu biên dịch hơn so với JavaScript thuần. Đồng thời, chương giải thích cơ chế luồng dữ liệu một chiều (single-way data flow) từ component cha sang component con, chỉ ra cách cơ chế này giúp kiểm soát lỗi hiệu quả khi giao diện phình to. Ở phía máy chủ, chương làm rõ kiến trúc bất đồng bộ, event-driven của NodeJS kết hợp framework ExpressJS với cơ chế định tuyến routes và middleware theo mô hình MVC. Phần cơ sở dữ liệu phân tích hệ quản trị NoSQL MongoDB, so sánh trực diện cấu trúc collection/document của MongoDB với table/row trong RDBMS truyền thống, nêu bật lợi thế truy vấn dữ liệu phi cấu trúc dạng JSON.

Chương 2: Khảo sát hiện trạng

Chương 2 mô tả quá trình nghiên cứu thực tế các hệ thống tra cứu trực tuyến tại thị trường Việt Nam gồm Foody.vn, Phongtro123.com và Lozi.vn. Tác giả lập bảng phân tích chi tiết các ưu điểm (màu sắc giao diện, tốc độ tải trang, tính năng tìm kiếm chuyên sâu) và hạn chế (bố cục rối mắt, bộ lọc kém chính xác, chức năng bị bỏ rơi, thiếu tương tác). Từ những phát hiện thực tế này, chương tổng kết hệ thống tiêu chí kỹ thuật mà website cần đạt: giao diện tinh gọn, không nhồi nhét dữ liệu, tốc độ phản hồi nhanh, quy trình xác thực dữ liệu chặt chẽ và cơ chế đánh giá nhiều chiều.

Chương 3: Mô hình hóa yêu cầu và thiết kế cơ sở dữ liệu

Nội dung chương này tập trung vào việc mô hình hóa hệ thống bằng chuẩn UML. Tác giả bóc tách chi tiết 4 actor (Guest, User, Admin, Editor) thông qua sơ đồ Use Case tổng thể; phân loại toàn bộ nghiệp vụ theo dạng tra cứu, lưu trữ và tương tác; xây dựng bảng quy định nghiệp vụ kèm mã số (từ QĐ_ĐK, QĐ_ĐN đến QĐ_ATK, QĐ_ADB). Toàn bộ luồng dữ liệu được chuẩn hóa bằng các sơ đồ luồng dữ liệu (SDLDL) và sơ đồ tuần tự (Sequence Diagram) cho các nghiệp vụ trọng yếu: đăng ký, đăng nhập, đăng địa điểm, bình luận, kiểm duyệt và thống kê. Phần cơ sở dữ liệu trình bày chi tiết lược đồ các collection trong MongoDB và quan hệ logic giữa các thực thể.

Chương 4: Thiết kế giao diện và xử lý

Chương 4 mô tả chi tiết khâu thiết kế giao diện đồ họa (UI) gắn liền với luồng xử lý tương ứng trên hệ thống:

  • Phân hệ Guest: Màn hình trang chủ với bố cục bài viết mới và địa điểm đánh giá cao; màn hình tra cứu bộ lọc; màn hình đăng nhập và đăng ký có cơ chế đánh số các trường nhập liệu để kiểm tra tính hợp lệ.
  • Phân hệ User: Màn hình tạo địa điểm phân rã thành 3 bước (bước 1: thông tin chung; bước 2: mô tả dịch vụ; bước 3: tải hình ảnh và định vị bản đồ); màn hình chỉnh sửa hồ sơ cá nhân; khu vực bình luận và chấm điểm sao.
  • Phân hệ Admin: Màn hình quản lý và kiểm duyệt địa điểm; màn hình quản trị bài viết có tính năng kích hoạt cảnh báo vi phạm; giao diện bảng thống kê người dùng và nội dung.
  • Phân hệ Editor: Giao diện soạn thảo tin tức thú cưng, quản lý và theo dõi trạng thái các bài viết đã công khai.

Chương 5: Thiết kế phần mềm

Chương 5 hiện thực hóa thiết kế tĩnh và động của hệ thống phần mềm. Tác giả mô tả chi tiết cấu trúc các lớp phần mềm gồm Rate, Place, SubComment, Comment, User, News thông qua việc liệt kê đầy đủ thuộc tính, kiểu dữ liệu và danh sách phương thức đi kèm. Chương cũng trích dẫn các thuật toán xử lý chính, thuật toán điều hướng luồng dữ liệu API và phương thức tính toán điểm đánh giá trung bình cho các địa điểm dịch vụ.

Chương 6: Cài đặt và kiểm thử

Chương cuối trình bày việc cài đặt phần mềm trên môi trường phát triển Visual Studio Code kết hợp npm quản lý các gói phụ thuộc. Tác giả xây dựng kế hoạch kiểm thử và quy trình kiểm thử chức năng cho từng phân hệ màn hình đã thiết kế. Quy trình kiểm thử tập trung vào tính chính xác của các ràng buộc dữ liệu (validation), luồng chuyển hướng URL và sự đồng bộ dữ liệu giữa giao diện ReactJS với cơ sở dữ liệu MongoDB qua các API ExpressJS.


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

Kết quả chính

  • Triển khai thành công website tìm kiếm địa điểm thú y và cửa hàng dịch vụ thú cưng hoàn chỉnh theo đúng thiết kế 6 chương.
  • Xây dựng thành công hệ thống định danh và phân quyền chặt chẽ cho 4 nhóm tác nhân (Guest, User, Admin, Editor) với hệ thống bảng quy định và biểu mẫu chuẩn hóa.
  • Tích hợp quy trình đăng ký địa điểm 3 bước, giải quyết được bài toán thu thập đầy đủ thông tin dịch vụ, hình ảnh và vị trí bản đồ từ người dùng.
  • Thiết lập cơ chế tương tác 2 chiều giữa người dùng và cơ sở thú y thông qua hệ thống đánh giá số sao và bình luận đa cấp (hỗ trợ bình luận phản hồi - subcomment).
  • Xây dựng bảng điều khiển quản trị giúp Admin theo dõi các chỉ số thống kê (người dùng, địa điểm, bài viết) và công cụ kiểm duyệt gửi email trực tiếp khi phát hiện vi phạm.

Đóng góp thực tiễn so với hiện trạng khảo sát

  • Khắc phục các hạn chế tồn tại ở các trang web tra cứu đời trước (như bộ lọc thiếu chính xác, thông tin lỗi thời hoặc bố cục rối mắt) bằng cách thiết kế giao diện theo hướng tinh gọn, phân tách component độc lập bằng ReactJS.
  • Đóng góp một giải pháp công nghệ chuyên biệt cho cộng đồng nuôi thú cưng tại Việt Nam, thay thế cho phương thức tìm kiếm thủ công, tự phát trước đây bằng nguồn thông tin được cộng đồng đánh giá và có sự kiểm duyệt của quản trị viên.

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

Hạn chế ghi nhận

  • Trong phần lời cảm ơn và đánh giá tổng kết, tác giả thừa nhận do kinh nghiệm thực tế và kỹ năng chuyên môn tại thời điểm thực hiện đồ án tốt nghiệp còn hạn chế, hệ thống và báo cáo vẫn còn những thiếu sót nhất định trong quá trình tối ưu hóa.
  • Đề tài tập trung triển khai và kiểm thử chức năng trên môi trường web, chưa mở rộng đồng bộ trên các nền tảng ứng dụng di động (mobile app).

Hướng phát triển tiếp theo

  • Tiếp tục nâng cấp và tối ưu hóa hiệu năng tải trang cũng như thuật toán tìm kiếm vị trí địa lý.
  • Mở rộng thêm các tính năng tiện ích như đặt lịch khám trực tuyến, tích hợp cổng thanh toán dịch vụ thú y.
  • Phát triển phiên bản ứng dụng di động đa nền tảng để người nuôi thú cưng có thể định vị cơ sở cấp cứu thú y nhanh chóng khi di chuyển ngoài đường.

Giá trị tham khảo

Báo cáo khóa luận mang lại giá trị tham khảo kỹ thuật hữu ích đối với:

  • Sinh viên ngành Công nghệ phần mềm và Công nghệ thông tin: Tài liệu cung cấp ví dụ hoàn chỉnh về quy trình xây dựng đồ án tốt nghiệp từ khâu khảo sát thực tế, mô hình hóa nghiệp vụ (Use Case, SDLDL, Sequence Diagram) đến thiết kế cơ sở dữ liệu NoSQL và kiểm thử phần mềm.
  • Người phát triển ứng dụng Full-stack JavaScript: Đồ án là tài liệu tham khảo thực tế cho việc kết hợp ReactJS ở front-end với NodeJS/ExpressJS ở back-end và MongoDB ở tầng cơ sở dữ liệu.
  • Các phần nội dung đáng tham khảo nhất:
    • Bảng đặc tả nghiệp vụ và quy định ràng buộc (QĐ_ĐK, QĐ_VB, QĐ_ADB).
    • Quy trình thiết kế giao diện theo từng bước (wizard 3 bước trong đăng địa điểm).
    • Cấu trúc thiết kế hướng đối tượng với các lớp thực thể Place, User, Comment, Rate.

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

1. Ràng buộc khi đăng ký tài khoản (QĐ_ĐK) của hệ thống được quy định như thế nào?

Theo quy định QĐ_ĐK, tên tài khoản phải dài từ 6–16 ký tự, chỉ chấp nhận chữ in hoa (A–Z), chữ thường (a–z), chữ số (0–9), dấu gạch dưới, gạch ngang, dấu chấm và không được bắt đầu bằng chữ số 0. Mật khẩu phải có độ dài từ 6–16 ký tự, gồm chữ hoa, chữ thường, chữ số, không bắt đầu bằng chữ số 0 và tuyệt đối không được trùng với tên tài khoản.

2. Quy trình đăng địa điểm dịch vụ của User gồm những nội dung gì?

Theo quy định QĐ_VB và thiết kế tại Chương 4, quy trình đăng địa điểm được chia làm 3 bước thu thập thông tin: bước 1 nhập thông tin cơ bản và loại địa điểm; bước 2 nhập nội dung mô tả chi tiết dịch vụ; bước 3 tải lên hình ảnh thực tế và chọn vị trí địa điểm trên bản đồ.

3. Quản trị viên (Admin) xử lý các bài viết vi phạm bằng cơ chế nào?

Theo quy định QĐ_AXB, khi Admin xác nhận bài viết hoặc địa điểm của người dùng có nội dung không phù hợp, hệ thống cung cấp chức năng tự động gửi email báo cáo vi phạm đến tác giả của bài viết đó, sau đó Admin thực hiện thao tác xóa bài viết khỏi website.

4. Tại sao hệ thống lại sử dụng cấu trúc Single-way data flow trong ReactJS?

Theo phân tích của tác giả ở Chương 1, ReactJS không có các module chuyên dụng để xử lý dữ liệu tập trung mà chia nhỏ giao diện thành các component có quan hệ phân cấp. Việc sử dụng luồng truyền dữ liệu một chiều từ cha xuống con giúp quản lý trạng thái hiển thị chặt chẽ, phát huy tối đa ưu điểm khi cấu trúc giao diện và chức năng của view trở nên phức tạp.


Kết luận

Đồ án tốt nghiệp của tác giả Nguyễn Anh Sang đã giải quyết trọn vẹn bài toán xây dựng website tìm kiếm và đánh giá địa điểm thú y, dịch vụ chăm sóc thú cưng tại Việt Nam bằng việc ứng dụng bộ công nghệ ReactJS, NodeJS, ExpressJS và MongoDB. Báo cáo phản ánh quy trình phát triển phần mềm chuẩn mực từ khảo sát hiện trạng, phân tích nghiệp vụ cho 4 nhóm tác nhân, thiết kế giao diện chi tiết đến hiện thực hóa mô hình lớp và lập kế hoạch kiểm thử. Đây là tài liệu kỹ thuật có giá trị tham khảo rõ ràng cho sinh viên chuyên ngành công nghệ phần mềm trong việc phân tích thiết kế hệ thống và phát triển ứng dụng web tra cứu dịch vụ.