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

Tại thị trường Việt Nam, số lượng cửa hàng và tiệm tạp hóa quy mô vừa và nhỏ hoạt động chủ yếu dựa trên mô hình kinh doanh truyền thống (offline) chiếm tỷ trọng lớn. Phương thức vận hành này bộc lộ nhiều điểm hạn chế cho cả người bán lẫn người mua: người bán gặp khó khăn trong việc tiếp cận khách hàng tiềm năng và quảng bá sản phẩm; trong khi người mua khi có nhu cầu cấp thiết về một mặt hàng lại không có công cụ tra cứu tức thời xem cửa hàng nào xung quanh còn hàng và đủ số lượng cung ứng.

Mặc dù các sàn thương mại điện tử (Shopee, Tiki, Lazada, Sendo) và các nền tảng mạng xã hội (Facebook, Zalo) đã phát triển mạnh mẽ, người tiêu dùng vẫn gặp rào cản trong việc tìm kiếm các điểm bán có sẵn hàng hóa ngay tại khu vực lân cận để mua trực tiếp mà không phải chờ đợi đơn vị vận chuyển giao hàng. Đồng thời, các hộ kinh doanh nhỏ lẻ thường phải chịu mức chi phí tiếp thị và phí giao dịch tương đối cao khi tham gia các sàn thương mại điện tử lớn. Từ thực tiễn đó, việc nghiên cứu và xây dựng một giải pháp web hỗ trợ tìm kiếm cửa hàng có sẵn sản phẩm dựa trên vị trí địa lý là yêu cầu cấp thiết.

Nhiệm vụ nghiên cứu của đề tài được xác định cụ thể theo các nội dung sau:

  1. Tìm hiểu công nghệ MERN Stack và Google Maps API để phục vụ phát triển website tìm kiếm cửa hàng hóa sản phẩm.
  2. Khảo sát hiện trạng, phân tích và đánh giá ưu - nhược điểm của các website tìm kiếm và thương mại điện tử hiện có.
  3. Phân tích nghiệp vụ của hệ thống quản lý và tìm kiếm cửa hàng, sản phẩm.
  4. Mô hình hóa các yêu cầu nghiệp vụ, thiết kế kiến trúc hệ thống và xây dựng cơ sở dữ liệu.
  5. Cài đặt các chức năng cho các nhóm người dùng và tiến hành kiểm thử toàn bộ hệ thống phần mềm.
  • Đối tượng nghiên cứu: Công nghệ MERN Stack (MongoDB, ExpressJS, ReactJS, NodeJS), giao diện lập trình ứng dụng Google Maps API, thư viện giao diện React-bootstrap, cùng các quy trình nghiệp vụ tìm kiếm sản phẩm và quản lý cửa hàng bán lẻ.
  • Phạm vi nghiên cứu: Tập trung vào công cụ tra cứu dữ liệu sản phẩm gắn liền với vị trí tọa độ địa lý, tích hợp các tính năng tương tác bản đồ số (định vị, hiển thị marker, khoanh vùng bán kính) của Google Maps trong khoảng thời gian thực hiện từ 01/09/2019 đến 31/12/2019 tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.

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

Đồ án xây dựng nền tảng lý thuyết và công nghệ dựa trên hệ sinh thái phát triển ứng dụng web hiện đại bằng ngôn ngữ JavaScript toàn diện (Full-stack JavaScript), mô hình kiến trúc phần mềm tiêu chuẩn và các phương pháp phân tích thiết kế hệ thống hướng đối tượng.

Khung công nghệ và mô hình lý thuyết áp dụng

  • JavaScript và tiêu chuẩn ECMAScript: Ngôn ngữ lập trình nền tảng, tuân thủ tiêu chuẩn quốc tế ECMA-262 (ISO/IEC 16262), vận hành linh hoạt ở cả môi trường máy khách (Client-side) và máy chủ (Server-side).
  • NodeJS Platform: Môi trường thực thi mã nguồn mở phía máy chủ xây dựng trên nền tảng Google V8 JavaScript Engine, áp dụng 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 API) đơn luồng (single-thread), tối ưu hiệu năng xử lý tác vụ bất đồng bộ và hỗ trợ tốt các ứng dụng dữ liệu thời gian thực.
  • ExpressJS Framework: Khung ứng dụng web tối giản, linh hoạt chạy trên NodeJS, cung cấp hệ thống định tuyến (routing), quản lý middleware và tạo lập các giao diện lập trình ứng dụng RESTful API dạng JSON.
  • MongoDB Database: Hệ quản trị cơ sở dữ liệu NoSQL hướng tài liệu (Document-oriented Database), lưu trữ dữ liệu dưới định dạng JSON/BSON linh hoạt, sử dụng các khái niệm Database, Collection, Document, Field, Cursor và trường khóa chính mặc định _id.
Thành phần RDBMS Thành phần MongoDB tương ứng
Database (Cơ sở dữ liệu) Database (Cơ sở dữ liệu)
Table (Bảng) Collection (Tập hợp tài liệu)
Tuple / Row (Hàng / Bản ghi) Document (Tài liệu)
Column (Cột) Field (Trường dữ liệu)
Table Join (Phép kết nối bảng) Embedded Documents (Tài liệu nhúng)
Primary Key (Khóa chính) Primary Key (Mặc định là trường _id)
  • ReactJS Library: Thư viện JavaScript phát triển bởi Facebook chuyên xây dựng giao diện người dùng dựa trên cơ chế DOM ảo (Virtual DOM), mô hình phân rã thành phần giao diện (Component-based architecture), luồng truyền dữ liệu một chiều thông qua Props và State.
  • Google Maps API (v3): Dịch vụ bản đồ số cho phép nhúng vào ứng dụng web để định vị tọa độ người dùng, ghim vị trí cửa hàng qua các điểm đánh dấu (marker), khoanh vùng khu vực và hỗ trợ tính toán khoảng cách đường đi.
  • Mô hình kiến trúc MVC và các lớp xử lý: Phân tách rõ ràng giữa ba tầng: Model (tương tác cơ sở dữ liệu và quản lý logic dữ liệu thông qua các thành phần Business Object - BO, Data Access Object - DAO, và Java Bean/Data Model), View (giao diện hiển thị người dùng), và Controller (điều hướng yêu cầu, xử lý logic nghiệp vụ trung gian).

Phương pháp nghiên cứu và phát triển

  • Phương pháp khảo sát hiện trạng: Đánh giá định tính và đối sánh tính năng của ba nền tảng trực tuyến tiêu biểu: Google Maps (chuyên về bản đồ và chỉ đường), Shopee và Tiki (các sàn thương mại điện tử lớn tại Việt Nam) nhằm xác định khoảng trống chức năng về tìm kiếm sản phẩm tức thời theo cự ly thực tế.
  • Phương pháp mô hình hóa hướng đối tượng: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng lược đồ use case tổng quát, lập bảng đặc tả chi tiết cho từng use case, thiết kế lược đồ tuần tự (Sequence Diagram), lược đồ lớp (Class Diagram) và lược đồ thực thể quan hệ (ERD).

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo cấu trúc tách biệt giữa giao diện phía máy khách (Frontend) và dịch vụ xử lý dữ liệu phía máy chủ (Backend), giao tiếp hoàn toàn thông qua chuẩn dữ liệu JSON qua giao thức HTTP/HTTPS.

Khảo sát đối sánh các hệ thống hiện hữu

Tiêu chí phân tích Google Maps Shopee Tiki Hệ thống đề tài
Tìm kiếm theo sản phẩm chi tiết Hạn chế (chủ yếu theo tên địa điểm, danh mục chung) Rất tốt (hỗ trợ gợi ý, phân loại chi tiết) Rất tốt (tìm kiếm theo tầm giá, danh mục) Hỗ trợ tìm kiếm trực tiếp sản phẩm có sẵn tại cửa hàng
Định vị và hiển thị bản đồ trực quan Toàn diện (bản đồ vệ tinh, chỉ đường, GPS) Không hỗ trợ bản đồ vị trí cửa hàng Không hỗ trợ bản đồ vị trí cửa hàng Tích hợp Google Maps API đánh dấu vị trí cửa hàng gần nhất
Mục đích phục vụ mua hàng Tra cứu thông tin địa điểm và đường đi Mua hàng trực tuyến qua đơn vị vận chuyển Mua hàng trực tuyến qua đơn vị vận chuyển Mua trực tiếp tại chỗ hoặc liên hệ nhanh khi cần gấp
Quản lý vị trí theo bán kính Có hỗ trợ xung quanh vị trí GPS Phân loại theo tỉnh/thành phố chung Phân loại theo tỉnh/thành phố chung Lọc linh hoạt theo bán kính tăng/giảm từ vị trí trung tâm

Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu hệ thống được mô hình hóa và tổ chức thành 12 bảng/collection chính phục vụ đầy đủ các phân hệ nghiệp vụ:

  1. Authorization: Quản lý danh mục quyền hạn và vai trò truy cập trong hệ thống.
  2. User: Lưu trữ hồ sơ người dùng, mật khẩu đã mã hóa, trạng thái kích hoạt, liên kết tài khoản mạng xã hội.
  3. City: Danh mục phân cấp địa giới hành chính cấp Tỉnh/Thành phố.
  4. District: Danh mục địa giới hành chính cấp Quận/Huyện thuộc Tỉnh/Thành phố.
  5. Street: Danh mục các tuyến đường phục vụ việc xác định địa chỉ chính xác.
  6. StoreCategory: Phân loại danh mục kinh doanh của các cửa hàng.
  7. ProductCategory: Phân loại danh mục các nhóm sản phẩm hàng hóa.
  8. Product: Thông tin chi tiết mặt hàng, tên sản phẩm, đơn giá, hình ảnh, tình trạng tồn kho và khóa ngoại liên kết với cửa hàng.
  9. Store: Hồ sơ cửa hàng, địa chỉ, số điện thoại liên hệ, tọa độ vị trí địa lý (kinh độ, vĩ độ) và liên kết người sở hữu.
  10. Conversation: Lưu trữ các phiên trao đổi thông điệp, tin nhắn giữa Quản trị viên và Chủ cửa hàng.
  11. Comment: Lưu trữ dữ liệu đánh giá, bình luận và phản hồi của người dùng về sản phẩm/cửa hàng.
  12. Employee: Thông tin hồ sơ của nhân viên quản trị nội bộ hệ thống.

Phân hệ người dùng và các luồng chức năng

Hệ thống phân định quyền hạn thành ba nhóm tác nhân rõ rệt:

  • Người dùng khách (Guest): Xem trang chủ, tìm kiếm sản phẩm theo từ khóa và tọa độ vị trí (tự động lấy vị trí GPS hiện tại hoặc chọn địa điểm tùy ý), lọc sản phẩm theo giá và bán kính, xem chi tiết thông tin sản phẩm và vị trí cửa hàng trên Google Maps, đăng ký tài khoản mới bằng Email hoặc Số điện thoại.
  • Người dùng thành viên / Chủ cửa hàng (User / Store Owner): Đăng nhập trực tiếp hoặc qua tài khoản Google/Facebook, quản lý thông tin cá nhân, đổi/khôi phục mật khẩu, đăng ký và quản lý thông tin cửa hàng, thực hiện thêm/xóa/sửa danh mục sản phẩm, mua gói duy trì cửa hàng, bình luận, đánh giá sản phẩm và xem báo cáo thống kê hoạt động kinh doanh.
  • Quản trị viên (Admin) và Nhân viên (Employee): Đăng nhập trang quản trị, quản lý hồ sơ người dùng, kiểm duyệt và quản lý danh sách cửa hàng, quản lý nhân viên cấp dưới, gửi tin nhắn trao đổi trực tiếp với chủ cửa hàng và theo dõi thống kê tổng thể toàn hệ thống.

Yêu cầu phi chức năng và môi trường triển khai

  • Thời gian phản hồi và tải trang không vượt quá 5 giây đối với mọi thao tác nghiệp vụ.
  • Giao diện người dùng tương thích đa thiết bị, bố cục rõ ràng trên nền tảng web.
  • Đảm bảo tính an toàn và bảo mật dữ liệu thông tin cá nhân của người dùng.
  • Môi trường cài đặt: Node.js runtime, Express framework, MongoDB database engine, ReactJS UI library cùng các gói thư viện phụ trợ (React Router, Axios, React-bootstrap).

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

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

Chương này trình bày toàn diện nền tảng lý thuyết và công nghệ được sử dụng trong suốt quá trình phát triển đồ án. Nội dung bao gồm:

  • Công nghệ MERN Stack: Giới thiệu lịch sử, đặc tính của ngôn ngữ JavaScript và các tiêu chuẩn ECMAScript (ECMA-262, ISO-16262); phân tích sâu về NodeJS với kiến trúc đơn luồng không chặn, cơ chế quản lý I/O bất đồng bộ; các trường hợp tối ưu khi sử dụng NodeJS (RESTful API, hệ thống thời gian thực, xử lý đa kết nối đồng thời) và các hạn chế khi thực hiện các tác vụ nặng về tính toán CPU; tổng quan về ExpressJS Framework và cấu trúc của MongoDB (so sánh chi tiết với hệ quản trị cơ sở dữ liệu quan hệ RDBMS); kiến trúc thư viện ReactJS với cơ chế Virtual DOM, chu trình vòng đời component, khái niệm Props và State.
  • Dịch vụ Google Maps API: Nguyên lý nhúng bản đồ số phiên bản v3 vào ứng dụng web thông qua JavaScript, các ứng dụng tiêu biểu như đánh dấu địa điểm (marker), tìm kiếm vị trí trung tâm, vẽ đường đi tối ưu và khoanh vùng địa lý.
  • Mô hình kiến trúc MVC: Phân tích luồng tương tác giữa ba lớp Model, View, Controller; làm rõ cấu trúc ba thành phần thuộc tầng Model bao gồm Business Object (BO), Data Access Object (DAO) và Java Bean/Data Model.

Chương 2: Khảo sát hiện trạng và xác định yêu cầu

Nội dung chương tập trung vào việc nghiên cứu thực nghiệm các hệ thống tìm kiếm hiện hành và xây dựng đặc tả yêu cầu cho phần mềm:

  • Khảo sát hiện trạng: Phân tích giao diện, chức năng và hạn chế của ba hệ thống lớn: Google Maps (thế mạnh về hiển thị bản đồ trực quan nhưng chưa lọc chính xác sản phẩm bán lẻ chi tiết), Shopee và Tiki (thế mạnh về phân loại hàng hóa, đánh giá sản phẩm, gợi ý tìm kiếm nhưng chưa hỗ trợ hiển thị vị trí thực tế trên bản đồ để phục vụ nhu cầu mua ngay tại chỗ không qua giao vận).
  • Xác định yêu cầu hệ thống: Thiết lập danh mục yêu cầu chức năng cho ba nhóm tác nhân (Khách vãng lai, Người dùng/Chủ cửa hàng, Quản trị viên/Nhân viên) và xác lập các tiêu chuẩn phi chức năng (hiệu năng tải trang dưới 5 giây, bảo mật thông tin, tính mở rộng).
  • Mô hình hóa yêu cầu: Xây dựng hai lược đồ use case tổng thể (phía người dùng cuối và phía người quản trị); thiết lập 23 bảng đặc tả use case chi tiết bao gồm: View home page, Register, Search product, View product detail, View store detail, Login, Login with Facebook, Login with Google, Restore password, Update user info, Change password, Receive/Cancel notify, Add/Update/Delete store, Rate product, Comment, Logout, Statistic (Store owner / Admin), Add employee.

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

Chương 3 chi tiết hóa toàn bộ các bản vẽ kỹ thuật của hệ thống:

  • Thiết kế hệ thống: Xây dựng 17 lược đồ tuần tự (Sequence Diagram) mô tả chi tiết tương tác giữa tác nhân, giao diện, bộ điều khiển và cơ sở dữ liệu cho các luồng xử lý: xem trang chủ, tìm kiếm sản phẩm, xem chi tiết sản phẩm/cửa hàng, đăng ký/đăng nhập (chuẩn và OAuth), đổi thông tin/mật khẩu/email/số điện thoại, quản lý cửa hàng (thêm/sửa/xóa), đánh giá, bình luận và đăng xuất.
  • Thiết kế cơ sở dữ liệu: Thiết lập cấu trúc dữ liệu, các ràng buộc toàn vẹn, lược đồ thực thể quan hệ (ERD) và bảng đặc tả chi tiết 12 bảng dữ liệu (Authorization, User, City, District, Street, StoreCategory, ProductCategory, Product, Store, Conversation, Comment, Employee).
  • Thiết kế giao diện: Xây dựng bố cục và lập bảng mô tả chi tiết các phần tử điều khiển cho 12 màn hình giao diện chính của ứng dụng: Trang chủ, Chi tiết sản phẩm, Đăng nhập, Đăng ký, Trang chủ quản trị/người dùng, Thông tin cá nhân, Quản lý cửa hàng, Quản lý sản phẩm, Mua gói cửa hàng, Đổi email, Đổi số điện thoại và Đổi mật khẩu.

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

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

  • Thiết lập môi trường: Cài đặt và cấu hình môi trường vận hành máy chủ NodeJS, hệ quản trị cơ sở dữ liệu MongoDB, cấu hình các gói thư viện trong tệp package.json và đăng ký tài khoản dịch vụ Google Maps API Console để nhận khóa xác thực API key.
  • Xây dựng cấu trúc dự án: Tổ chức mã nguồn theo mô hình chuẩn, phân tách thư mục định tuyến (routes), bộ điều khiển (controllers), mô hình dữ liệu (models), dịch vụ tiện ích (services/middlewares) ở phía Backend và các thư mục components, pages, assets ở phía Frontend ReactJS.
  • Kiểm thử hệ thống: Đánh giá hoạt động của từng ca sử dụng theo đặc tả, kiểm tra các luồng xác thực đăng nhập bên thứ ba (Google, Facebook), xác thực mã OTP qua điện thoại/liên kết email và kiểm tra khả năng tương tác bản đồ khi thực hiện truy vấn tìm kiếm sản phẩm theo bán kính.

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

Kết quả chức năng đạt được

  • Hoàn thành đầy đủ các mô-đun chức năng đã đề ra theo đúng kế hoạch triển khai từ ngày 02/09/2019 đến 22/12/2019.
  • Xây dựng thành công cơ chế tìm kiếm sản phẩm kết hợp định vị tọa độ địa lý, cho phép người dùng xác định các điểm bán có sẵn mặt hàng mong muốn trong bán kính tùy chọn kèm bảng kết quả và điểm đánh dấu trên Google Maps.
  • Triển khai đa dạng các cơ chế xác thực tài khoản: Đăng ký xác thực qua liên kết email hoặc mã OTP gửi về số điện thoại; Đăng nhập nhanh qua tài khoản Google và Facebook.
  • Phát triển hoàn chỉnh phân hệ quản lý dành cho chủ cửa hàng (đăng tải sản phẩm, chỉnh sửa giá bán, cập nhật thông tin cửa hàng) và phân hệ quản trị dành cho Admin (kiểm duyệt thông tin, quản lý danh sách người dùng, theo dõi báo cáo thống kê, liên hệ chủ shop).

Đóng góp của đề tài

  • Khắc phục khoảng trống nghiệp vụ: Kết hợp ưu điểm về tìm kiếm phân loại sản phẩm chi tiết của các sàn thương mại điện tử (Shopee, Tiki) với khả năng trực quan hóa địa điểm theo thời gian thực của Google Maps, phục vụ nhu cầu mua sắm tức thời tại điểm bán thực tế.
  • Hỗ trợ chuyển đổi số cho cửa hàng nhỏ lẻ: Cung cấp kênh quảng bá trực tuyến miễn phí và tối ưu chi phí tiếp thị cho các hộ kinh doanh cá thể, cửa hàng tạp hóa truyền thống.
  • Hạn chế thông tin rác: Xây dựng quy trình kiểm soát chặt chẽ việc khởi tạo tài khoản và giới hạn số lượng cửa hàng tạo mới, ngăn chặn tình trạng tài khoản ảo và dữ liệu không xác thực trên hệ thống.

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

Hạn chế của hệ thống

  • Việc truy xuất dữ liệu bản đồ và định vị phụ thuộc hoàn toàn vào dịch vụ bên thứ ba là Google Maps API (cần có kết nối Internet liên tục và có thể phát sinh chi phí nếu vượt ngưỡng truy vấn miễn phí của Google).
  • Hệ thống mới được triển khai dưới dạng ứng dụng web, chưa xây dựng ứng dụng di động chuyên biệt (Native App) để khai thác sâu các phần cứng định vị GPS của thiết bị cầm tay.
  • Chưa tích hợp cổng thanh toán trực tuyến nội tại mà tập trung chủ yếu vào việc kết nối trực tiếp giữa người mua và người bán.

Hướng phát triển trong tương lai

  • Mở rộng phát triển ứng dụng di động đa nền tảng bằng React Native để đồng bộ hệ sinh thái công nghệ với phiên bản web hiện có.
  • Nghiên cứu tích hợp các cổng thanh toán điện tử phổ biến tại Việt Nam nhằm đa dạng hóa phương thức giao dịch.
  • Tối ưu hóa thuật toán tìm kiếm và lọc dữ liệu sản phẩm khi quy mô cơ sở dữ liệu mở rộng lớn hơn.
  • Xây dựng hệ thống thông báo đẩy (Push Notification) theo thời gian thực khi có sản phẩm mới hoặc khi cửa hàng gần người dùng có chương trình cập nhật hàng hóa.

Giá trị tham khảo

Đồ án là tài liệu học thuật và kỹ thuật phù hợp cho các đối tượng sau:

  • Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm, Hệ thống thông tin: Có thể sử dụng đồ án như một tài liệu mẫu về quy trình phát triển ứng dụng web Full-stack hoàn chỉnh, từ bước khảo sát hiện trạng, phân tích nghiệp vụ, mô hình hóa UML (Use Case, Sequence, ERD) đến khâu hiện thực hóa phần mềm.
  • Người học và lập trình viên nghiên cứu MERN Stack: Cung cấp tài liệu tham khảo thực tế về cách tổ chức kiến trúc ứng dụng kết hợp giữa MongoDB, ExpressJS, ReactJS và NodeJS.
  • Các nhóm nghiên cứu tích hợp bản đồ số: Phần phân tích và hiện thực Google Maps API (xử lý tọa độ, đánh dấu marker, tính toán khoảng cách) có thể tái sử dụng trực tiếp trong các dự án có tính năng định vị không gian địa lý.

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

Đề tài sử dụng những công nghệ cốt lõi nào trong kiến trúc MERN Stack?

Đề tài sử dụng trọn bộ công nghệ JavaScript mã nguồn mở bao gồm: MongoDB (cơ sở dữ liệu NoSQL hướng tài liệu), ExpressJS (framework phát triển ứng dụng web trên máy chủ), ReactJS (thư viện phía máy khách xây dựng giao diện dựa trên Virtual DOM và Component) và NodeJS (môi trường thực thi JavaScript phía máy chủ).

Hệ thống hỗ trợ những phương thức đăng ký và đăng nhập nào?

Hệ thống hỗ trợ đăng ký tài khoản mới bằng Email (xác thực qua đường link kích hoạt gửi về hộp thư) hoặc bằng Số điện thoại (xác thực qua mã code OTP); hỗ trợ đăng nhập truyền thống bằng tài khoản hệ thống và đăng nhập nhanh thông qua giao thức OAuth của Google và Facebook.

Cơ chế tìm kiếm sản phẩm kết hợp bản đồ hoạt động như thế nào?

Khi người dùng nhập từ khóa sản phẩm, hệ thống sẽ yêu cầu quyền truy cập tọa độ GPS hiện tại (hoặc người dùng tự chọn một địa điểm bất kỳ làm tâm). Hệ thống sau đó truy vấn cơ sở dữ liệu và trả về đồng thời: danh sách các sản phẩm/cửa hàng phù hợp và màn hình bản đồ Google Maps có gắn các điểm đánh dấu (marker) vị trí cửa hàng đang có sẵn hàng hóa, cho phép lọc theo giá hoặc bán kính khoảng cách.

Cơ sở dữ liệu của đồ án được cấu trúc gồm những bảng dữ liệu nào?

Cơ sở dữ liệu bao gồm 12 bảng/collection chính: Authorization (phân quyền), User (người dùng), City (tỉnh/thành), District (quận/huyện), Street (đường phố), StoreCategory (danh mục cửa hàng), ProductCategory (danh mục sản phẩm), Product (sản phẩm), Store (cửa hàng), Conversation (tin nhắn), Comment (bình luận/đánh giá) và Employee (nhân viên).

Những hệ thống nào đã được nhóm tác giả khảo sát để làm căn cứ phân tích yêu cầu?

Nhóm tác giả đã tiến hành khảo sát và đối sánh trực tiếp ba hệ sinh thái trực tuyến bao gồm: dịch vụ bản đồ Google Maps (google.com/maps) và hai sàn thương mại điện tử lớn là Shopee (shopee.vn) và Tiki (tiki.vn).


Kết luận

Đồ án tốt nghiệp "Phát triển website tìm kiếm cửa hàng hóa sản phẩm sử dụng công nghệ MERN Stack và Google Maps API" đã giải quyết thành công bài toán kết nối nhu cầu mua sắm sản phẩm tức thời tại chỗ của người tiêu dùng với các cửa hàng bán lẻ truyền thống. Thông qua việc làm chủ kiến trúc MERN Stack và dịch vụ Google Maps API, nhóm tác giả đã xây dựng một hệ thống phần mềm hoàn chỉnh, đáp ứng đầy đủ các yêu cầu nghiệp vụ từ tìm kiếm định vị không gian, quản lý danh mục sản phẩm đến quản trị phân quyền người dùng. Công trình là tài liệu tham khảo có cấu trúc chuẩn mực, chi tiết và hữu ích cho sinh viên cũng như các kỹ sư phần mềm đang tiếp cận mô hình phát triển ứng dụng Full-stack JavaScript kết hợp dịch vụ bản đồ số.