Đồ án: Website bán sách MEAN Stack & Recommendation System của Nguyễn Đức Hậu

Tham khảo đồ án tốt nghiệp xây dựng website bán sách. Ứng dụng công nghệ MEAN Stack và hệ thống gợi ý (Recommendation System) để cá nhân hóa trải nghiệm.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2020

207
1
0

Phí lưu trữ

55 Point

Tóm tắt

I. Giới thiệu về Đồ án Website Bán Sách MEAN Stack

Đồ án website bán sách MEAN Stack là một dự án toàn diện nhằm xây dựng nền tảng thương mại điện tử hiện đại cho lĩnh vực bán lẻ sách trực tuyến. MEAN Stack bao gồm bốn công nghệ mạnh mẽ: MongoDB, Express.js, Angular, và Node.js, tạo nên một stack công nghệ đầy đủ cho phát triển ứng dụng web full-stack. Dự án này được thực hiện bởi các sinh viên tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, dưới sự hướng dẫn của TS. Lê Vĩnh Thịnh. Mục tiêu chính là xây dựng một platform thương mại điện tử chuyên biệt cho ngành sách, kết hợp các tính năng hiện đại như quản lý sản phẩm, xử lý đơn hàng, và đặc biệt là hệ thống gợi ý sách thông minh để nâng cao trải nghiệm người dùng.

1.1. Khái niệm MEAN Stack

MEAN Stack là viết tắt của MongoDB, Express.js, Angular, Node.js. Đây là một stack công nghệ JavaScript full-stack cho phép phát triển ứng dụng web hoàn chỉnh từ phía máy chủ đến phía khách hàng. MongoDB đóng vai trò cơ sở dữ liệu NoSQL linh hoạt, Express.js là framework backend, Angular xử lý giao diện người dùng, và Node.js cung cấp môi trường thực thi JavaScript phía máy chủ.

1.2. Lợi ích của MEAN Stack

MEAN Stack mang lại nhiều lợi ích: sử dụng JavaScript thống nhất trên toàn bộ ứng dụng, giảm chi phí đào tạo nhân sự, tăng tốc độ phát triển. Ngoài ra, MongoDB cho phép lưu trữ dữ liệu linh hoạt, Express.js và Node.js hỗ trợ xử lý các yêu cầu không đồng bộ hiệu quả, còn Angular cung cấp framework frontend mạnh mẽ với khả năng xây dựng giao diện động.

II. Hệ thống Recommendation System trong Website Bán Sách

Hệ thống gợi ý (Recommendation System) là thành phần cốt lõi của đồ án, giúp cá nhân hóa trải nghiệm mua sắm cho mỗi người dùng. Hệ thống này sử dụng các thuật toán thông minh để phân tích hành vi, sở thích và lịch sử mua hàng của khách hàng, từ đó đề xuất những cuốn sách phù hợp nhất. Có ba phương pháp chính trong Recommendation System: lọc cộng tác (Collaborative Filtering), gợi ý dựa theo nội dung (Content-Based), và gợi ý dựa trên cơ sở tri thức. Việc triển khai hệ thống gợi ý không chỉ tăng tỷ lệ chuyển đổi mà còn nâng cao sự hài lòng và độ trung thành của khách hàng.

2.1. Phương pháp Lọc Cộng tác Collaborative Filtering

Phương pháp Collaborative Filtering dựa trên giả định rằng những người có sở thích tương tự trong quá khứ sẽ tiếp tục có sở thích giống nhau. Hệ thống phân tích các mối quan hệ giữa người dùng và sản phẩm, sau đó tìm ra những khách hàng tương tự và gợi ý những cuốn sách mà họ đã yêu thích nhưng người dùng hiện tại chưa đánh giá.

2.2. Phương pháp dựa theo Nội dung Content Based

Content-Based Filtering tập trung vào đặc tính của các cuốn sách như thể loại, tác giả, năm xuất bản. Hệ thống ghi nhớ những cuốn sách mà người dùng yêu thích và gợi ý những cuốn sách có đặc tính tương tự. Phương pháp này hiệu quả cho các khách hàng mới (cold start problem) vì không cần dữ liệu lịch sử mua sắm quá nhiều.

III. Các Tính năng Chính của Website Bán Sách

Website bán sách xây dựng trên MEAN Stack được thiết kế với nhiều tính năng toàn diện để phục vụ nhu cầu của cả khách hàng và quản trị viên. Các tính năng bao gồm: tìm kiếm và lọc sách theo tiêu chí đa dạng (tên sách, tác giả, thể loại, giá tiền), hệ thống bình luận và đánh giá chi tiết, quản lý giỏ hàng thông minh, và quy trình thanh toán đa phương thức (tiền mặt, PayPal). Phía quản trị viên có thể quản lý toàn bộ sách, thể loại, tác giả, và xử lý đơn hàng. Recommendation System tích hợp giúp gợi ý sách cá nhân hóa cho từng người dùng, tăng cơ hội bán hàng chéo.

3.1. Tính năng Tìm kiếm và Lọc Sách

Người dùng có thể tìm kiếm sách theo tên, tác giả, thể loại hoặc seri sách. Hệ thống lọc sách cho phép sàng lọc theo giá tiền, số sao đánh giá, và các sách đang giảm giá. Tính năng này cải thiện trải nghiệm người dùng bằng cách giúp họ nhanh chóng tìm được cuốn sách mong muốn.

3.2. Quản lý Giỏ hàng và Thanh toán

Người dùng có thể thêm, cập nhật, hoặc xóa sách trong giỏ hàng một cách linh hoạt. Website hỗ trợ nhiều phương thức thanh toán bao gồm tiền mặt (COD) và ví điện tử PayPal, giúp khách hàng lựa chọn theo sở thích và thuận tiện của họ.

IV. Ứng dụng Thực tiễn và Lợi ích Kinh doanh

Đồ án website bán sách MEAN Stack với Recommendation System mang lại những lợi ích thiết thực cho hoạt động kinh doanh. Hệ thống gợi ý giúp tăng giá trị đơn hàng trung bình (Average Order Value) bằng cách đề xuất sách liên quan, từ đó nâng cao doanh thu. Việc cá nhân hóa trải nghiệm mua sắm tăng khả năng khách hàng quay lại mua hàng lần thứ hai, cải thiện tỷ lệ khách hàng trung thành. Ngoài ra, việc sử dụng MEAN Stack cho phép phát triển nhanh chóng và dễ bảo trì, giảm chi phí vận hành. Platform này cũng hỗ trợ mở rộng quy mô dễ dàng khi lượng người dùng tăng lên, đảm bảo hiệu suất ổn định.

4.1. Tác động Kinh tế của Recommendation System

Recommendation System tăng doanh thu bằng cách gợi ý sản phẩm phù hợp, giảm tỷ lệ bỏ giỏ hàng. Các nghiên cứu cho thấy hệ thống gợi ý có thể tăng doanh thu 10-30%. Khách hàng hài lòng với gợi ý chính xác sẽ có xu hướng mua hàng thường xuyên hơn, tạo ra giá trị lâu dài cho cửa hàng.

4.2. Khả năng Mở rộng và Bảo trì

MEAN Stack cung cấp nền tảng linh hoạt để mở rộng chức năng trong tương lai, từ thêm các module mới đến tích hợp công nghệ AI/ML nâng cao. MongoDB cho phép lưu trữ lượng dữ liệu lớn, Node.js xử lý lưu lượng người dùng cao, đảm bảo website hoạt động ổn định và hiệu quả.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

28/12/2025
Đồ án tốt nghiệp xây dựng website bán sách trên nền tảng mean stack recommendation system

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN 1. Tính cấp thiết của đề tài Sách là nguồn tri thức vô giá, là bàn đạp để phát triển nhân loại. Còn thương mại điện tử tại Việt Name hiện nay đang ngày càng trở nên phổ biến - người người, nhà nhà ai cũng có smart phone, một click là có hàng. Kết hợp sách với thương mại điện tử, với mục đích giúp việc mua sách trở nên đơn giản hơn nữa, để những quyển sách quý sách hay dễ dàng đến tay người đọc và cũng vì đây là một đề tài thực tiễn, nhóm tụi em thử sức xây dựng một trang web bán sách online.

Mục đích của đề tài Đề tài “XÂY DỰNG WEBSITE BÁN SÁCH TRÊN NỀN TẢNG MEAN STACK” đặt ra 2 vấn đề trọng tâm về mục tiêu mà sinh viên nghiên cứu cần thực hiện được bao gồm: Vấn đề đầu tiên đưa ra về yếu tố lý thuyết, sinh viên thực hiện cần có kết quả nghiên cứu chuyên môn và hiểu được tổng quan và khả năng ứng dụng của từng thành phần trong mô hình MEAN nói chung. Với từng thành phần của MEAN Stack hiểu xác định được các đặc trưng về nguyên tắc hoạt động, thành phần hoặc mô hình. Thư viện được xây dựng dựa trên ngôn ngữ lập trình Javascript đạt được sự phổ biến đến lập trình viên như: NodeJS – xây dựng Server, Angular – xây dựng ứng dụng phía người dùng, MongoDB – cơ sở dữ liệu, ExpressJS – middleware hỗ trợ xây dựng Server. Song song với việc hiểu về 4 thành phần tiêu biểu của MEAN Stack sinh viên cũng cần phải có thêm tìm hiểu về các thư viện, mã nguồn module giúp ích trong quá trình xây dựng ứng dụng Web thực tế.

Vấn đề thứ hai của đề tài đặt ra về ứng dụng mô hình MEAN Stack vào xây dựng một sản phẩm cụ thể, ở đây là “Website bán sách”. Sản phẩm hoàn thành phải là một ứng dụng Web được xây dựng có đầy đủ các thành phần của mô hình MEAN Stack và đáp ứng thêm các yêu cầu về ứng dụng mua, lựa chọn sách yêu thích, tracking sản phẩm trong quá trình vận chuyển và một số tính năng khác có thể áp dụng trong thực tế cũng như khả năng nâng cấp hoặc tiếp tục phát triển tính năng trong tương lai. Chương 1: Tổng quan 1 Báo cáo đồ án tốt nghiệp 1. Đối tượng và phạm vi nghiên cứu Đề tài được thực hiện nghiên cứu xoay quanh hai nhóm đối tượng trọng tâm bao gồm: nhóm đối tượng về kiến thức công nghệ và nhóm đối tượng có nhu cầu mua, sử dụng các tựa sách mà họ yêu thích.

Trong đó nhóm đối tượng về kiến thức công nghệ bao gồm 4 đối tượng nghiên cứu bắt buộc là: Mã nguồn mở NodeJS, framework Angular, cơ sở dữ liệu MongoDB, thư viện ExpressJS. Kết hợp thêm trong nhóm đối tượng nghiên cứu về kiến thức công nghệ là một số thư viện Javascript có giá trị ứng dụng như JWT (Json Web Token), charts cũng cần được nghiên cứu cho các ứng dụng về doanh thu cũng như mức độ ưa thích của sản phẩm. Nhóm đối tượng có nhu cầu mua, sử dụng các tựa sách mà họ yêu thích bao gồm kiến thức về tên sách, thể loại, tựa seri sách cũng như các đánh giá về trải nghiệm người dùng trên một trang web bán sách cụ thể. Phạm vi nghiên cứu đề ra ở mức độ tổng quát, người thực hiện đề tài hiểu được các kiến thức chung của nội dung nghiên cứu và áp dụng được từng nội dung kiến thức vào sản phẩm thực tế, không đặt nặng các lý thuyết nặng nề không mang tính ứng dụng.

Kết quả dự kiến đạt được - Hiểu được các kiến thức về MEAN Stack, Restful API. - Xây dựng hoàn thành một website bán sách online với những kiến thức đã tìm hiểu. Chương 1: Tổng quan 2 Báo cáo đồ án tốt nghiệp CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2. Tổng quan về MEAN Stack [1][2][3] 2.

Khái niệm về MEAN Stack Khái niệm MEAN stack được nhắc đến lần đầu tiên bởi Valeri Karpov - một lập trình viên làm việc cho MongoDB - vào năm 2013. MEAN là một mô hình phát triển website trên nền tảng JavaScript để xây dựng các trang web động. Mô hình này cung cấp cho lập trình viên các thành phần đã đóng gói sẵn để phát triển những website được nhanh chóng. Một lợi ích lớn từ MEAN Stack là nó được xây dựng dựa trên một ngôn ngữ lập trình duy nhất - JavaScript, mà vẫn đáp ứng được hoạt động của đầy đủ thành phần trong mô hình, điều này khiến nó hoạt động hiệu quả và dễ tiếp cận trong quá trình phát triển website.

Các thành phần trong MEAN stack MEAN đại điện cho MongoDB (M), ExpressJS (E), Angular (A) và NodeJS(N). Angular là một framework xây dựng dựa trên JavaScript chạy trên browser của người dùng cho phép lập trình viên xây dựng Single-Page-Applications (SPA). Nhiệm vụ của Angular là xử lý và xuất ra màn hình giao diện website cùng với những dữ liệu động chèn trên đó, hoạt động này được Angular thực hiện theo cơ chế react - tức là liên tục cập nhật giao diện website dựa vào những thay đổi mới nhất (có thể là thay đổi từ phía người dùng hay server). Nhiệm vụ thứ hai của Angular là xử lý dữ liệu người dùng nhập vào các form như kiểm tra tính hợp lệ của dữ liệu đầu vào và kết nối với phần backend để gửi dữ liệu đó về phía server.

MongoDB là một cơ sở dữ liệu có dạng NoSQL. Đặc điểm của nó là không có ràng buộc quan hệ, phân tán, mã nguồn mở, có khả năng lưu trữ, xử lý một lượng rất nhỏ cho tới lượng dữ liệu cực lớn. Trong mô hình MEAN stack, MongoDB đóng vai trò là cơ sở dữ liệu cho website và có khả năng kết nối dễ dàng với NodeJS và ExpressJS. NodeJS là một môi trường cho phép chạy JavaScript ở phía server mà không cần trình duyệt.

Nó có nhiệm vụ tiếp nhận những Request và gửi trả những Response nếu có, cụ thể trong mô hình MEAN stack thì những Request này sẽ đến từ Angular ở phía client Chương 2: Cơ sở lý thuyết 3 Báo cáo đồ án tốt nghiệp hay browser của người dùng. NodeJS cũng có nhiệm vụ xử lý những tính toán logic ở phía server, xử lý vấn đề bảo mật như xác thực, phân quyền… hay khả năng thao tác với các tập tin và giao tiếp với cơ sở dữ liệu MongoDB. ExpressJS là một framework của NodeJS, nó cũng cấp thêm những chức năng giúp cho quá trình làm việc bằng NodeJS được dễ dàng hơn, cụ thể có thể là giúp dễ dàng hơn khi xử lý những Request tới những địa chỉ khác nhau từ phía người dùng. Nói chung, ExpressJS giúp cho công việc xử lý ở phía backend trở nên dễ dàng và nhanh chóng hơn.

Cách thức MEAN stack hoạt động Hình 2. Sơ đồ hoạt động Mean Stack Chương 2: Cơ sở lý thuyết 4 Báo cáo đồ án tốt nghiệp Tại mỗi client, Angular thực hiện xử lý và tạo ra giao diện người dùng, Angular cũng thực thi single-page-application trên mỗi client. Tại server, NodeJS và ExpressJS có nhiệm vụ xử lý logic, nghiệp vụ và xác thực. MongoDB ở server có nhiệm vụ tổ chức và lưu trữ dữ liệu.

Client và server sẽ giao tiếp bằng cách gửi các Request và response, đây là các Request và Response gửi ngầm bằng công nghệ AJAX giúp người dùng không cần reload lại trang web. Trong các Request và Response này, dữ liệu được tổ chức thành dạng JSON - là một dạng dữ liệu được tổ chức ngắn gọn và có dễ đọc hiểu. Lợi thế của MEAN stack MEAN stack sử dụng một ngôn ngữ chung là JavaScript cho cả client-side và server-side, giúp cho quá trình phát triển trang web trở nên dễ tiếp cận. NodeJS có khả năng chạy trên cả Linux, Windows và OS X nên nó không phụ thuộc vào hệ điều hành.

Cơ chế non-blocking I/O giúp server có thể đáp ứng hàng ngàn connection đồng thời. MEAN stack sử dụng JSON là kiểu dữ liệu trao đổi giữa tất cả các thành phần nên không cần thêm thư viện để chuyển đổi dữ liệu trong quá trình tương tác giữa phía client và phía server. MongoDB có khả năng quản lý một lượng dữ liệu lớn, có thể thêm thuộc tính mới vào các bảng mà không cần cập nhật lại toàn bộ bảng. Các công nghệ sử dụng trong MEAN stack đều là mã nguồn mở và miễn phí.

Cộng đồng sử dụng rộng lớn thuận tiện cho việc học hỏi kinh nghiệm hay giải đáp thắc mắc. Tổng quan [4] NodeJS là một framework môi trường hỗ trợ dịch và thực thi chương trình được viết bằng JavaScript mà không cần dùng tới trình duyệt. Chương 2: Cơ sở lý thuyết 5 Báo cáo đồ án tốt nghiệp NodeJS ra đời nhờ những lập trình viên đầu tiên của JavaScript mở rộng nó từ một ngôn ngữ chỉ có thể thực thi trên trình duyệt thành ngôn ngữ có thể thực thi độc lập trên máy tính. NodeJS cũng giống với trình duyệt hiện nay, được chạy dựa trên V8 JavaScript engine - công cụ giúp trình duyệt dịch và thực thi JavaScript.

Ngoài ra, NodeJS cung cấp một số thư viện không có sẵn trong V8 engine • Một số khái niệm tiêu biểu trong NodeJS [5] - Event: mỗi một thao tác, yêu cầu (request) đến server đều được NodeJS xem là một sự kiện (event) - Event Queue: hàng đợi sự kiện là nơi tất cả các sự kiện (event) đã đi vào sẽ lần lượt được xử lý theo cơ chế FIFO, tức là các sự kiện đến server trước sẽ được NodeJS xử lý trước, các sự kiện đến server sau sẽ được xử lý sau. - Callbacks: là các thao tác, các xử lý, các hàm sẽ được thực hiện sau khi đã thực thi hoàn thành một hàm định nghĩa callback. Việc sử dụng callback giúp cho lập trình viên quản lý các vấn đề về. - Message: nội dung thông báo tương ứng với từng callback.

- Blocking I/O: là cơ chế được ứng dụng trong phần lớn các ngôn ngữ server-side, cơ chế này quản lý các request đến server và lần lượt cho thực hiện yêu cầu của request tiếp theo khi request đang xử lý đã hoàn thành. Từ đây dễ thấy được rằng nếu các yêu cầu xử lý của request đến sớm tiêu tốn nhiều thời gian thì các request đến sau bắt buộc phải đợi toàn bộ thời gian xử lý này. Với NodeJS việc quản lý các request yêu cầu được thay thế bằng cơ chế xử lý Non-Blocking I/O để giải quyết vấn đề thời gian chờ nêu trên. - Thread Pool: là một chương trình viết bằng ngôn ngữ C++ được tích hợp bên trong NodeJS, chương trình này cho phép xử lý đa luồng.

Đây chính là môi trường xử lý chính cho tất cả tác vụ được server NodeJS xử lý và các tác vụ này cũng được xử lý trên các luồng khác nhau.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ