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

Đồ án môn học "Xây dựng web bán đồ ăn" được thực hiện bởi nhóm sinh viên Nguyễn Đăng Hiếu và Huỳnh Quốc Hoài (lớp 22DTH2A, Khoa Công nghệ Thông tin, Trường Đại học Nguyễn Tất Thành) dưới sự hướng dẫn của giảng viên Bùi Duy Tân trong học kỳ 1 năm học 2023 - 2024. Đề tài tập trung giải quyết bài toán ứng dụng công nghệ thông tin vào hoạt động kinh doanh trực tuyến cho cửa hàng thức ăn nhanh.

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

Theo nhóm tác giả, sự phát triển của công nghệ thông tin và Internet đã biến mạng lưới toàn cầu thành công cụ hỗ trợ đời sống, học tập và làm việc. Trong bối cảnh kinh tế hiện đại, nhu cầu mua sắm tiêu dùng tăng cao, môi trường Internet trở thành phương thức giúp các doanh nghiệp quảng bá sản phẩm nhanh chóng, tiết kiệm chi phí và mở rộng quy mô kinh doanh. Đặc biệt, từ năm 2021 trong bối cảnh phòng chống dịch Covid-19, phương thức mua bán trực tuyến được thúc đẩy mạnh mẽ nhờ tính tiện lợi và an toàn, hạn chế tiếp xúc đông người. Xuất phát từ thực tế đó, nhóm nghiên cứu lựa chọn xây dựng website bán thức ăn nhanh nhằm tìm hiểu cấu trúc, quy trình vận hành thương mại điện tử tại Việt Nam và ứng dụng vào bài toán quản trị bán hàng thực tế cho cửa hàng "Kiwi's fast food" (được đưa vào hoạt động từ cuối năm 2021).

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

Văn bản đồ án xác định 4 mục tiêu nghiên cứu cụ thể:

  1. Xây dựng một trang web bán hàng trực tuyến hoàn chỉnh.
  2. Nắm vững cấu trúc phát triển web full-stack và sự tương tác giữa hai tầng front-end và back-end.
  3. Nghiên cứu các công nghệ nền tảng phục vụ phát triển ứng dụng website.
  4. Tối ưu hóa quy trình quản lý và vận hành hoạt động bán lẻ trực tuyến.

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

  • Đối tượng nghiên cứu: Quy trình kinh doanh, quản lý thực đơn, đặt món và xử lý đơn hàng trực tuyến của chuỗi cửa hàng thức ăn nhanh; cấu trúc mã nguồn và cơ sở dữ liệu trên nền tảng ASP.NET MVC kết hợp Microsoft SQL Server.
  • Phạm vi không gian: Cửa hàng thức ăn nhanh Kiwi's fast food với các dòng sản phẩm chính bao gồm: pizza, gà rán, mì Ý, xúc xích xông khói và nước uống đóng chai.
  • Phạm vi thời gian: Dữ liệu thực nghiệm và triển khai được thu thập, xử lý trong khuôn khổ đồ án môn học Lập trình Web tại Trường Đại học Nguyễn Tất Thành, niên khóa 2023 - 2024.

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

Đồ án kết hợp nghiên cứu lý thuyết kỹ thuật phần mềm và phương pháp thiết kế hệ thống theo định hướng full-stack.

Khung lý thuyết và công nghệ sử dụng

  1. Kiến trúc phát triển Full-Stack: Tiếp cận toàn diện từ tầng giao diện tương tác người dùng (front-end) đến tầng xử lý logic, nghiệp vụ, xác thực và quản trị máy chủ (back-end).
  2. Bộ ba công nghệ Front-End:
    • HTML (HyperText Markup Language): Định hình cấu trúc siêu văn bản, phân chia các khối nội dung, đoạn văn, liên kết và tích hợp tập tin đa phương tiện.
    • CSS (Cascading Style Sheets): Định dạng giao diện theo 3 hình thức (Inline, Internal và External styles), hỗ trợ tối ưu thời gian tải trang.
    • JavaScript (JS): Ngôn ngữ kịch bản xử lý tương tác động phía máy khách (client-side) nhằm cải thiện hiệu năng và trải nghiệm người dùng.
  3. Nền tảng phát triển Back-End:
    • Ngôn ngữ C#: Ngôn ngữ lập trình hướng đối tượng (OOP) hiện đại do Microsoft phát triển từ năm 2000, hỗ trợ 4 đặc tính trừu tượng (abstraction), đóng gói (encapsulation), đa hình (polymorphism) và kế thừa (inheritance). Mã nguồn C# được biên dịch sang mã ngôn ngữ trung gian MSIL (Microsoft Intermediate Language) và thực thi qua môi trường CLR (Common Language Runtime).
    • ASP.NET MVC: Nền tảng xây dựng ứng dụng web dựa trên mẫu kiến trúc Model - View - Controller kết hợp mẫu Front Controller để xử lý tập trung các yêu cầu HTTP. Nền tảng tích hợp công cụ tạo khuôn mẫu Razor, cơ chế quản lý trạng thái (State Management) và bộ nhớ đệm (Caching), không phụ thuộc vào ViewState giúp giảm dung lượng băng thông.
  4. Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS):
    • Microsoft SQL Server: Quản lý dữ liệu quan hệ theo chuẩn RDBMS, cung cấp các bộ công cụ SSAS (Analysis Services), SSRS (Reporting Services) và SSIS (Integration Services).
    • LINQ to SQL (Language Integrated Query): Công nghệ ORM cho phép ánh xạ các bảng CSDL quan hệ thành các lớp đối tượng (DataContext), giúp truy vấn trực tiếp dữ liệu từ mã nguồn C# một cách có cấu trúc.
    • Thư viện PagedList: Công cụ hỗ trợ phân tách và điều hướng danh sách bản ghi theo trang hiển thị.

Phương pháp nghiên cứu

  • Phương pháp thu thập và phân tích tài liệu kỹ thuật: Nghiên cứu tài liệu chuyên ngành về phát triển web .NET Framework, cấu trúc điều khiển trong ASP.NET MVC và cú pháp truy vấn LINQ.
  • Phương pháp phân tích và thiết kế hệ thống thông tin: Mô hình hóa các yêu cầu chức năng thông qua biểu đồ Use Case (Use Case tổng quát, đăng nhập, đặt món, quản lý đơn hàng, quản lý món ăn, quản lý khách hàng) và biểu đồ lớp đối tượng (Class Diagram).
  • Phương pháp thiết kế cơ sở dữ liệu: Chuẩn hóa dữ liệu quan hệ, xây dựng các ràng buộc toàn vẹn khóa chính (Primary Key), khóa ngoại (Foreign Key) và kiểm tra miền giá trị (Check Constraint).
  • Phương pháp thực nghiệm kiểm thử: Cài đặt thực tế mã nguồn, thực thi kịch bản đặt hàng trên giao diện người dùng và theo dõi sự thay đổi trạng thái dữ liệu trong hệ thống quản trị.

Thiết kế và triển khai

Hệ thống được thiết kế thành một Project ASP.NET Web Application có tên NDKFastfood với CSDL KiwiFastfood.

1. Kiến trúc phân quyền và ca sử dụng (Use Case)

Hệ thống phân định rõ hai nhóm tác nhân chính:

  • Người dùng (Khách hàng): Tham quan trang chủ, xem thực đơn, xem chi tiết món ăn, lọc món theo loại, thêm món vào giỏ hàng, cập nhật giỏ hàng, đăng ký tài khoản, đăng nhập hệ thống và thực hiện đặt hàng trực tuyến.
  • Người quản trị (Admin): Đăng nhập phân hệ quản trị, quản trị danh mục loại món, quản lý thông tin món ăn (thêm, sửa, xóa, tải ảnh đại diện), theo dõi danh sách khách hàng và quản lý đơn đặt hàng (cập nhật trạng thái thanh toán, giao hàng).

2. Thiết kế cơ sở dữ liệu quan hệ

CSDL KiwiFastfood được thiết lập bao gồm 6 bảng dữ liệu có cấu trúc như sau:

Tên bảng Khóa chính Khóa ngoại Danh sách các trường dữ liệu Ràng buộc / Kiểu dữ liệu
KhachHang MaKH Không MaKH, HoTen, TaiKhoan, MatKhau, Email, DiaChiKH, DienThoaiKH, NgaySinh MaKH IDENTITY(1,1), TaiKhoan UNIQUE, Email UNIQUE
Loai MaLoai Không MaLoai, TenLoai MaLoai IDENTITY(1,1), TenLoai nvarchar(50) NOT NULL
MonAn MaMon MaLoai MaMon, TenMon, GiaBan, NoiDung, AnhDD, SoLuongTon, MaLoai MaLoai tham chiếu Loai(MaLoai), GiaBan Decimal
DonDatHang MaDonHang MaKH MaDonHang, DaThanhToan, TinhTrangGiaohang, NgayDat, NgayGiao, MaKH MaKH tham chiếu KhachHang(MaKH), kiểu bit cho trạng thái
ChiTietDatHang (MaDonHang, MaMon) MaDonHang, MaMon MaDonHang, MaMon, SoLuong, DonGia Khóa chính phức hợp; SoLuong > 0, DonGia >= 0
Admin UserAdmin Không UserAdmin, PassAdmin, Hoten UserAdmin varchar(30) PRIMARY KEY

3. Xây dựng logic nghiệp vụ và mã nguồn

Hệ thống sử dụng tệp ánh xạ dbKiwiFastfood.dbml để tạo kết nối giữa CSDL SQL Server và mã nguồn C#.

  • Xử lý danh sách món ăn và phân trang: HomeController truy xuất dữ liệu danh sách món ăn thông qua phương thức LINQ:

    public ActionResult Index(int? page) {
        int pageSize = 6;
        int pageNum = (page ?? 1);
        var monan = LayMonAn(20);
        return View(monan.ToPagedList(pageNum, pageSize));
    }
    

    Tại tầng View, danh sách được lặp qua đối tượng IEnumerable<NDKFastfood.MonAn> và phân trang bằng thẻ điều khiển @Html.PagedListPager.

  • Quản lý giỏ hàng bằng Session: Lớp GioHang lưu trữ các thuộc tính iMaMon, sTenMon, dGiaBan, sAnhDD, iSoLuong và tính toán dThanhTien = iSoLuong * dGiaBan. Tầng Controller duy trì trạng thái giỏ hàng thông qua biến Session["GioHang"]:

    public List<GioHang> LayGioHang() {
        List<GioHang> lstGioHang = Session["GioHang"] as List<GioHang>;
        if (lstGioHang == null) {
            lstGioHang = new List<GioHang>();
            Session["GioHang"] = lstGioHang;
        }
        return lstGioHang;
    }
    

    Các thao tác xóa, cập nhật số lượng món và tính tổng số lượng, tổng tiền được xây dựng qua các phương thức phụ trợ, hỗ trợ hiển thị bằng PartialView trên toàn bộ website.

  • Xử lý đặt hàng: Khách hàng thực hiện đăng nhập tài khoản trước khi gửi yêu cầu đặt món. Khi xác nhận đặt hàng, hệ thống trích xuất thông tin người dùng từ Session["TaiKhoan"], khởi tạo bản ghi trong bảng DonDatHang, lưu trữ các bản ghi chi tiết và thiết lập lại Session["GioHang"] = null.

  • Xử lý nghiệp vụ quản trị: AdminController tiếp nhận yêu cầu từ đường dẫn /Admin/Login. Khi người quản trị thêm hoặc chỉnh sửa món ăn, hệ thống kiểm tra tính hợp lệ của dữ liệu đầu vào, lưu tệp hình ảnh vào thư mục ~/Assets/Images/ thông qua đối tượng HttpPostedFileBase và cập nhật bản ghi vào cơ sở dữ liệu qua lệnh db.SubmitChanges().


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

CHƯƠNG I: CƠ SỞ LÝ THUYẾT

Chương I tổng hợp bối cảnh hình thành đề tài và hệ thống hóa nền tảng kiến thức công nghệ phát triển web. Tác giả phân tích khái niệm Full-stack, vai trò của bộ ba HTML/CSS/JavaScript trong thiết kế giao diện, cùng tính năng của ngôn ngữ C# và môi trường .NET Framework. Nội dung chương trình bày chi tiết về quá trình biên dịch mã nguồn C# sang MSIL và thực thi qua CLR, mô hình kiến trúc MVC trong ASP.NET, cơ chế điều hướng Front Controller, ưu điểm trong bảo trì mã nguồn, cũng như các thành phần quản trị cơ sở dữ liệu Microsoft SQL Server (SSAS, SSRS, SSIS).

CHƯƠNG II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TIN WEBSITE BÁN THỨC ĂN NHANH

Chương II tập trung vào phân tích nghiệp vụ thực tế cho cửa hàng Kiwi's fast food. Tác giả xây dựng hệ thống ca sử dụng tổng quát và các sơ đồ Use Case phân rã (truy cập website, đặt món, quản lý đơn hàng, quản lý món ăn, quản lý thông tin khách hàng). Tiếp đó, chương trình bày sơ đồ lớp đối tượng với 8 thực thể (KhachHang, Loai, MonAn, DonGia, GioHang, DonDatHang, ChiTietDatHang, Admin) cùng lược đồ CSDL quan hệ. Cuối chương là kịch bản lệnh SQL khởi tạo 6 bảng dữ liệu và chèn các bản ghi ban đầu cho 5 danh mục sản phẩm (Pizza, Mì Ý, Gà, Xúc xích, Nước uống).

CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG WEBSITE BÁN THỨC ĂN NHANH

Chương III trình bày quy trình hiện thực hóa ứng dụng phần mềm NDKFastfood. Tác giả mô tả việc tích hợp mẫu giao diện Ogani (nguồn Colorlib) vào cấu trúc ASP.NET MVC, thiết lập layout chung (_Layout), cấu hình kết nối dbKiwiFastfoodDataContext bằng LINQ to SQL. Chương cung cấp chi tiết mã nguồn các hàm xử lý logic: lấy danh sách món ăn, lọc món theo thực đơn, cài đặt kỹ thuật phân trang bằng PagedList, quản lý phiên làm việc giỏ hàng (Session["GioHang"]), kiểm tra dữ liệu đăng ký/đăng nhập, hoàn tất đặt hàng và các thao tác quản trị CRUD đối với thực thể món ăn. Đi kèm với mã nguồn là danh mục ảnh chụp giao diện hoàn chỉnh của cả hai phân hệ người dùng và quản trị viên.

CHƯƠNG IV: THỰC NGHIỆM VÀ TRIỂN KHAI

Chương IV trình bày các bước thử nghiệm thực tế hệ thống theo kịch bản:

  • Phân hệ người dùng: Khách hàng truy cập website, duyệt danh mục, chọn món "Pizza hải sản nhiệt đới xốt tiêu" (đơn giá 89.000 VNĐ) đưa vào giỏ hàng, cập nhật số lượng, chuyển sang bước thanh toán, thực hiện đăng ký tài khoản mới, đăng nhập và xác nhận đơn đặt hàng.
  • Phân hệ quản trị: Quản trị viên truy cập đường dẫn https://localhost:44362/Admin/Login, đăng nhập tài khoản demo (admin / 123456), kiểm tra danh sách đơn đặt hàng (ghi nhận đơn hàng của khách hàng Huỳnh Anh Thư), cập nhật trạng thái thanh toán và giao hàng, đồng thời tra cứu thông tin khách hàng trong cơ sở dữ liệu.

CHƯƠNG V: KẾT LUẬN

Chương V đúc kết các kết quả đạt được từ đồ án môn học, nêu rõ các ưu điểm về việc xây dựng hoàn chỉnh các tính năng thương mại điện tử cơ bản và việc làm chủ mô hình ASP.NET MVC. Đồng thời, tác giả thẳng thắn chỉ ra các hạn chế về mặt kiến thức và kỹ thuật lập trình, từ đó đề xuất định hướng tiếp tục hoàn thiện logic nghiệp vụ, nâng cấp giao diện và tăng cường bảo mật hệ thống.


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

Kết quả chính đạt được

  • Về hệ thống: Xây dựng thành công ứng dụng web bán thức ăn nhanh hoàn chỉnh với 2 phân hệ độc lập: phân hệ khách hàng (duyệt thực đơn, lọc sản phẩm, quản lý giỏ hàng, đăng ký/đăng nhập, đặt hàng) và phân hệ quản trị (quản lý 5 danh mục món, thông tin sản phẩm, đơn hàng, khách hàng).
  • Về cơ sở dữ liệu: Thiết kế và thực thi thành công cơ sở dữ liệu KiwiFastfood gồm 6 bảng quan hệ có ràng buộc toàn vẹn, nhập liệu mẫu thành công cho 10 sản phẩm thuộc 5 nhóm mặt hàng (Pizza, Mì Ý, Gà, Xúc xích, Nước uống) cùng tài khoản quản trị hệ thống.
  • Về mặt kỹ thuật: Tích hợp thành công template giao diện Ogani với bộ khung ASP.NET MVC (.NET Framework), khai thác ORM LINQ to SQL để kết nối CSDL, xử lý phiên làm việc giỏ hàng bằng biến Session và phân trang danh sách với thư viện PagedList.

Giải pháp và kiến nghị của tác giả

  • Tách biệt hoàn toàn phần thiết kế giao diện và mã nguồn logic nghiệp vụ theo mô hình MVC nhằm tăng khả năng bảo trì.
  • Sử dụng mô hình PartialView để tối ưu việc tái sử dụng các thành phần giao diện động (như thanh thông tin giỏ hàng tóm tắt, menu thực đơn danh mục).
  • Sử dụng biến Session để lưu trữ dữ liệu giỏ hàng tạm thời phía máy chủ, đảm bảo dữ liệu mua sắm được giữ nguyên xuyên suốt các phiên chuyển hướng trang của người dùng cho đến khi đăng xuất hoặc hoàn tất thanh toán.

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

Đồ án đã mô hình hóa cụ thể bài toán kinh doanh trực tuyến của cửa hàng thức ăn nhanh Kiwi's fast food, hiện thực hóa một giải pháp ứng dụng công nghệ web hoàn chỉnh từ khâu phân tích yêu cầu, thiết kế dữ liệu đến lập trình mã nguồn và kiểm thử chức năng.


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

Hạn chế của đồ án

Theo tự đánh giá của nhóm tác giả trong văn bản:

  • Ứng dụng web mới chỉ dừng lại ở các tính năng cơ bản, còn nhiều thiếu sót trong quy trình xử lý logic nghiệp vụ phức tạp.
  • Trình độ kiến thức và kỹ thuật lập trình của sinh viên còn hạn chế, chưa nắm vững toàn diện các kỹ thuật phát triển web nâng cao.

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

Nhóm tác giả định hướng nâng cấp hệ thống trong tương lai qua các nhiệm vụ:

  • Hoàn thiện và chuẩn hóa toàn bộ các chức năng cơ bản, bổ sung các tính năng nâng cao cho hoạt động bán lẻ trực tuyến.
  • Tối ưu hóa logic ứng dụng và cải tiến giao diện người dùng để tăng tốc độ truy cập.
  • Nâng cao các giải pháp an toàn thông tin và bảo mật dữ liệu cho người dùng khi lướt web và giao dịch trực tuyến.

Giá trị tham khảo

Tài liệu đồ án có giá trị tham khảo thiết thực cho:

  1. Sinh viên ngành Công nghệ thông tin / Kỹ thuật phần mềm: Là tài liệu tham khảo trực quan cho các môn học Lập trình Web, Phân tích thiết kế hệ thống thông tin và Cơ sở dữ liệu.
  2. Lập trình viên mới tiếp cận nền tảng .NET: Cung cấp hướng dẫn từng bước về việc thiết lập kết nối LINQ to SQL trong Visual Studio, xây dựng tầng Controller - View với cú pháp Razor và kỹ thuật quản lý giỏ hàng bằng Session.
  3. Người thực hiện đề tài website thương mại điện tử quy mô vừa và nhỏ: Cung cấp mẫu lược đồ quan hệ CSDL chuẩn hóa cho bài toán quản lý bán hàng (Khách hàng - Loại món - Món ăn - Đơn đặt hàng - Chi tiết đặt hàng) cùng bộ mã nguồn T-SQL khởi tạo dữ liệu có thể tái sử dụng.

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

1. Hệ thống quản trị (Admin) của website cung cấp những chức năng gì và tài khoản mặc định là gì?
Phân hệ quản trị cung cấp các chức năng: đăng nhập hệ thống, quản lý thông tin và danh sách khách hàng, quản lý đơn đặt hàng (xem chi tiết, thay đổi trạng thái thanh toán và giao hàng), quản lý danh mục loại món, và quản trị món ăn (thêm mới kèm tải ảnh, sửa thông tin, xóa món). Đường dẫn truy cập mặc định là https://localhost:44362/Admin/Login với tài khoản quản trị mẫu được cấp trong CSDL là: Username admin - Password 123456, hoặc Username user - Password 654321.

2. Giỏ hàng của người dùng được lưu trữ và xử lý như thế nào trong mã nguồn?
Giỏ hàng được quản lý thông qua đối tượng List<GioHang> và lưu trữ trong biến phiên Session["GioHang"]. Mỗi phần tử trong giỏ hàng lưu mã món, tên món, đơn giá, ảnh đại diện, số lượng và thuộc tính tính tiền tự động (dThanhTien = iSoLuong * dGiaBan). Khi người dùng thêm món, hệ thống kiểm tra món đã tồn tại trong Session hay chưa; nếu đã có sẽ tăng số lượng, nếu chưa sẽ khởi tạo mới. Dữ liệu này được duy trì cho đến khi đơn hàng được lưu vào bảng DonDatHang trong cơ sở dữ liệu hoặc khi phiên làm việc kết thúc.

3. Cơ sở dữ liệu của website gồm những bảng nào và có những danh mục món ăn nào được khởi tạo sẵn?
Cơ sở dữ liệu KiwiFastfood bao gồm 6 bảng: KhachHang, Loai, MonAn, DonDatHang, ChiTietDatHang và Admin. Dữ liệu khởi tạo bao gồm 5 danh mục loại món: PIZZA, MÌ Ý, GÀ, XÚC XÍCH và NƯỚC UỐNG, cùng các sản phẩm mẫu cụ thể như Pizza 5 loại thịt thượng hạng (89.000đ), Pizza hải sản nhiệt đới xốt tiêu (89.000đ), Mì Ý hải sản đút lò (79.000đ), Gà không xương BBQ (69.000đ), Xúc xích xông khói đút lò (39.000đ/4 miếng), Nước ngọt Coca/Sprite...

4. Kỹ thuật phân trang danh sách món ăn trên giao diện web được thực hiện như thế nào?
Hệ thống sử dụng thư viện PagedList và PagedList.Mvc trên Visual Studio. Tại HomeController, phương thức Index nhận tham số int? page và cấu hình kích thước trang pageSize = 6. Danh sách món ăn được chuyển đổi bằng hàm .ToPagedList(pageNum, pageSize). Tại View, trang web khai báo @model PagedList.PagedList<MonAn> và hiển thị thanh điều hướng phân trang bằng lệnh @Html.PagedListPager.

5. Giao diện người dùng của website được xây dựng dựa trên nguồn mẫu nào?
Giao diện website sử dụng mẫu template Ogani master (được cung cấp từ nền tảng Colorlib), kết hợp cấu trúc _Layout trong ASP.NET MVC để chia sẻ phần đầu trang (header) và chân trang (footer) dùng chung cho tất cả các trang con (trang chủ, thực đơn, liên hệ, chi tiết món ăn, giỏ hàng, đăng nhập/đăng ký).


Kết luận

Đồ án môn học "Xây dựng web bán đồ ăn" đã hoàn thành mục tiêu thiết kế và cài đặt một hệ thống website thương mại điện tử bán thức ăn nhanh hoàn chỉnh cho cửa hàng Kiwi's fast food. Ứng dụng khai thác hiệu quả mô hình kiến trúc ASP.NET MVC kết hợp ngôn ngữ C#, hệ quản trị CSDL Microsoft SQL Server và ORM LINQ to SQL nhằm đáp ứng đầy đủ các luồng nghiệp vụ mua sắm của khách hàng và quản lý của quản trị viên. Mặc dù còn một số hạn chế về mặt hoàn thiện logic chuyên sâu và kỹ thuật bảo mật, đề tài đã phản ánh rõ nét quy trình phát triển phần mềm full-stack từ lý thuyết, thiết kế cơ sở dữ liệu đến triển khai thực nghiệm.