Khóa luận: Xây dựng website bán hàng siêu thị bằng ReactJS, NodeJS và MongoDB

Tìm hiểu quy trình xây dựng website bán hàng siêu thị bằng ReactJS, NodeJS, MongoDB. Phân tích, thiết kế hệ thống và xây dựng giao diện chi tiết.

Trường đại học

Đại học Hòa Bình

Chuyên ngành

Công nghệ thông tin & Điện tử viễn thông

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2021

82
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Giới thiệu về xây dựng Website bán hàng siêu thị với ReactJS NodeJS

Trong thời đại thương mại điện tử phát triển mạnh mẽ, việc xây dựng một website bán hàng siêu thị chuyên nghiệp là yêu cầu cấp thiết của các doanh nghiệp. Sử dụng ReactJS cho frontend và NodeJS cho backend là một giải pháp hiện đại, giúp tối ưu hóa hiệu suất và trải nghiệm người dùng. ReactJS cho phép tạo giao diện động và nhanh chóng, trong khi NodeJS cung cấp một nền tảng server mạnh mẽ. Kết hợp với MongoDB làm cơ sở dữ liệu, hệ thống này có khả năng xử lý lượng dữ liệu lớn và đảm bảo tính bảo mật cao. Đây là công nghệ được nhiều doanh nghiệp lớn lựa chọn để phát triển ứng dụng thương mại điện tử hiệu quả.

1.1. Tại sao chọn ReactJS NodeJS

ReactJS là thư viện JavaScript phổ biến nhất hiện nay, giúp xây dựng giao diện người dùng động và tương tác tốt. NodeJS cho phép chạy JavaScript trên server, tạo nên hiệu suất cao và khả năng xử lý đồng thời tuyệt vời. Kết hợp hai công nghệ này, bạn có thể sử dụng một ngôn ngữ cho cả frontend và backend, giảm độ phức tạp phát triển.

1.2. Lợi ích của thương mại điện tử

Thương mại điện tử giúp giảm chi phí kinh doanh so với bán lẻ truyền thống, mở rộng thị trường đến toàn quốc và quốc tế. Khách hàng có thể mua sắm 24/7 từ bất kỳ địa điểm nào, tăng sự tiện lợi và thỏa mãn nhu cầu.

II. Kiến trúc hệ thống Website bán hàng siêu thị

Kiến trúc của một website bán hàng hiệu quả bao gồm ba tầng chính: frontend, backend và database. Frontend được xây dựng bằng ReactJS, cung cấp giao diện người dùng tương tác mượt mà với các tính năng như tìm kiếm, lọc sản phẩm, giỏ hàng và thanh toán. Backend sử dụng NodeJS với framework Hapi.js, quản lý logic ứng dụng, xác thực người dùng, xử lý đơn hàng và kết nối với RESTful API. MongoDB đóng vai trò lưu trữ dữ liệu sản phẩm, tài khoản người dùng, hóa đơn và các thông tin khác. Kiến trúc này đảm bảo tính mở rộng, bảo mật và hiệu suất cao cho hệ thống.

2.1. Tầng Frontend với ReactJS

ReactJS cung cấp các component tái sử dụng, giúp phát triển nhanh chóng và dễ bảo trì. Redux quản lý trạng thái ứng dụng tập trung, Bootstrap hỗ trợ thiết kế responsive. Giao diện bao gồm danh sách sản phẩm, chi tiết sản phẩm, giỏ hàng và trang thanh toán đẹp mắt.

2.2. Tầng Backend với NodeJS Hapi.js

NodeJS với framework Hapi.js xử lý các yêu cầu từ frontend, quản lý xác thực, phân quyền người dùng, xử lý đơn hàng, và tương tác với MongoDB. RESTful API cho phép giao tiếp hiệu quả giữa frontend và backend, hỗ trợ các phương thức GET, POST, PUT, DELETE.

III. Các tính năng chính của hệ thống

Một website bán hàng siêu thị đầy đủ cần có nhiều tính năng thiết yếu. Trang quản trị cho phép quản lý sản phẩm, danh mục, nhà sản xuất, hóa đơn, người dùng và khuyến mãi. Trang khách hàng cung cấp tìm kiếm sản phẩm, xem chi tiết, đánh giá sản phẩm, quản lý giỏ hàng, thanh toán và theo dõi đơn hàng. Hệ thống hỗ trợ đăng ký/đăng nhập, phục hồi mật khẩu, phản hồi khách hànglịch sử mua hàng. Các tính năng này tạo nên một nền tảng thương mại điện tử hoàn chỉnh, thân thiện và hiệu quả.

3.1. Chức năng quản trị

Quản trị viên có quyền quản lý danh mục sản phẩm, quản lý sản phẩm chi tiết, quản lý nhà sản xuất, xử lý hóa đơn, phân quyền người dùng, quản lý khuyến mãi, và xem báo cáo doanh số bán hàng để hỗ trợ ra quyết định kinh doanh.

3.2. Chức năng khách hàng

Khách hàng có thể tìm kiếm và lọc sản phẩm, xem chi tiết, đánh giá sản phẩm, thêm vào giỏ hàng, thanh toán trực tuyến, xem lịch sử mua hàng, gửi phản hồi cho nhà bán hàng, quản lý thông tin cá nhân và phục hồi mật khẩu khi cần.

IV. Kỹ thuật xây dựng và triển khai hệ thống

Quá trình xây dựng website bán hàng bằng ReactJS & NodeJS đòi hỏi tuân thủ các quy trình phát triển phần mềm chuẩn. Thiết kế cơ sở dữ liệu sử dụng MongoDB với các collection cho sản phẩm, người dùng, hóa đơn, danh mục và đánh giá. Mô hình MVC được áp dụng cho backend, đảm bảo tính tổ chức và dễ bảo trì. Giao diện được thiết kế responsive với Bootstrap để hoạt động tốt trên tất cả thiết bị. Testing các chức năng giỏ hàng, hiển thị sản phẩm, thêm sửa thông tin là bước quan trọng trước khi triển khai. Hệ thống này đã được thử nghiệm thành công và sẵn sàng cho các siêu thị sử dụng.

4.1. Thiết kế và phát triển

Sử dụng biểu đồ Use Case để phân tích yêu cầu, biểu đồ tuần tựhoạt động để thiết kế logic. Cơ sở dữ liệu MongoDB được thiết kế với các schema linh hoạt, hỗ trợ mở rộng tính năng dễ dàng.

4.2. Testing và triển khai

Thử nghiệm chức năng giỏ hàng, hiển thị sản phẩm, quản lý thông tin sản phẩm trong các môi trường khác nhau. Đánh giá hiệu suất, bảo mật và trải nghiệm người dùng trước khi đưa vào sản xuất.

18/12/2025

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

LỜI MỞ ĐẦU 1. LÝ DO CHỌN ĐỀ TÀI Chúng ta có thể thấy trong thị trƣờng hiện nay thì việc cạnh tranh về kinh doanh ngày càng trở nên quyết liệt, hầu hết những nhà kinh doanh đều muốn làm thỏa mãn khách hàng một cách tốt nhất. So với kinh doanh truyền thống thì “Thƣơng mại điện tử” sẽ tốn chi phí thấp hơn, hiệu quả đạt đƣợc cao hơn. Hơn thế nữa, với lợi thế của công nghệ Internet hiện nay thì việc truyền tải thông tin về sản phẩm sẽ diễn ra một cách nhanh chóng, thuận tiện.

Kết hợp với bộ phận giao hàng tận nơi, thanh toán thông qua bƣu điện hoặc ngân hàng, khách hàng có thể ở nhà mà vẫn nhận đƣợc sản phẩm mà mình ƣng ý. Hiện nay dù trên thị trƣờng internet Việt Nam dù đã tồn tại khá nhiều website, hệ thống bán hàng trực tuyến, nhƣng vẫn còn một chút khuyết điểm về tốc độ tải trang, xử lý thông tin từ ngƣời dùng đến hệ thống. Nắm bắt đƣợc nhu cầu đó, em đã lên ý tƣởng xây dựng một hệ thống sử dụng Restful API cung cấp môi trƣờng bán hàng đa nền tảng Trong đồ án chuyên ngành này em chọn đề tài “Xây dựng website bán hàng dành cho siêu thị bằng ReactJs, NodeJs và MongoDb”. MỤC ĐÍC VÀ Ý NG Ĩ CỦ ĐỀ TÀI 2.1 Mục đích của đề tài - Đáp ứng nhu cầu mua, tìm kiếm sản phẩm, xây dựng nên một môi trƣờng mua sắm thuận tiện và trực quan, dễ dàng thao tác với nhiều đối tƣợng sử dụng.

- Giúp khách hàng có cái nhìn chi tiết về sản phẩm, thông tin đặc tính của sản phẩm - Rút ngắn khoảng cách giữa ngƣời mua và ngƣời bán. - Việc quản lý sản phẩm trở nên dễ dàng. - Sản phẩm đƣợc sắp xếp có hệ thống nên ngƣời mua dễ tìm kiếm sản phẩm - Cải thiện tốc độ xử lý, tạo cảm nhận tốt cho ngƣời sử dụng.2 Ý nghĩa của đề tài - Là một hệ thống cung cấp môi trƣờng bán hàng, các thông tin sản phẩm đƣợc cập nhật theo định kỳ. - Ngƣời mua có thể ở nhà nhƣng vẫn có thể đặt mua đƣợc sản phẩm mà mình muốn và nhận đƣợc chúng sau vài ngày tùy vào vị trí địa lý.

- Ngƣời bán có thể dễ dàng quản lý đƣợc sản phẩm của mình, cũng nhƣ báo cáo thống kê doanh thu, tình hình kinh doanh. - Các sản phẩm đƣợc sắp xếp hợp lý, tìm kiếm dựa trên tên nhà cung cấp, tên sản phẩm, mô tả của sản phẩm. Vì vậy ngƣời dùng sẽ có cái nhìn tổng quan về tất cả các sản phẩm hiện có. - Ngƣời dùng có thể xem chi tiết thông tin sản phẩm, nhà sản xuất.

- Khi đã chọn đƣợc sản phẩm ƣng ý, ngƣời dùng có thể nhấn nút đặt hàng để đặt mua sản phẩm đó - Ngƣời dùng vẫn có thể quay trở lại trang sản phẩm để xem và chọn tiếp. Đ I TƢỢNG NGHIÊN CỨU - Tìm hiểu các công cụ hỗ trợ phân tích thiết thiết kế hệ thống hƣớng đối tƣợng,… - Tìm hiểu về nền tảng Nodejs, Framework Hapijs, Reactjs, Reduxjs,… - Quy trình nghiệp vụ bán hàng, khuyến mãi, giao hàng, phƣơng thức thanh toán. PHẠM VI NGHIÊN CỨU - Về thời gian: từ 01/5/2021 đến 01/7/2021 - Về nội dung: + Tìm hiểu về MongoDb. + Tìm hiểu về Framework Hapi.js cho Back end và Framework React-Redux cho Front end + Quy trình nghiệp vụ bán hàng hàng online.

ƢƠNG Á NG IÊN CỨU - Tìm hiểu các tài liệu liên quan (quy trình bán hàng online,….) 8 - Phân tích và lựa chọn giải pháp. - Tổng hợp các tài liệu liên quan đến xây dựng và phát triển phần mềm. - Góp ý của giảng viên hƣớng dẫn. KHẢO SÁT VÀ PHÂN TÍCH HỆ TH NG 6.1 Các chức năng - Đây là 1 website bán và giới thiệu sản phẩm của siêu thị điện tử đến ngƣời tiêu dùng với các chi tiết mặt hàng và giá cả chính xác.

Website có các chức năng sau:  Thứ nhất: Phần khách hàng: Khách hàng là những ngƣời có nhu cầu mua sắm hàng hoá, họ sẽ tìm kiếm các mặt hàng cần thiết từ hệ thống và đặt mua các mặt hàng này. Vì thế, phải có các chức năng sau:  Hiển thị danh sách các mặt hàng của siêu thị để khách hàng có thể xem, lựa chọn và mua. Có thể tìm kiếm, sắp xếp, lọc theo giá cả, nhà sản xuất của sản phẩm theo nhu cầu của khách hàng.  Hiển thị danh sách các mặt hàng ƣa thích mà khách hàng đã lựa chọn để tiện cho việc mua sắm.

 Hiển thị đƣợc chi tiết về giá cả, nhà sản xuất, số lƣợng, các đánh giá của những ngƣời mua khác của 1 sản phẩm, các sản phẩm cùng loại trong trang chi tiết sản phẩm.  Khách hàng xem các thông tin, tin tức mới, khuyến mãi ngay trên trang web.  Sau khi khách hàng chọn và đặt hàng thì phải hiện lên đơn hàng và khách hàng có thể nhập thông tin mua hàng và xem hoá đơn mua hàng. Khách hàng sẽ thực hiện thanh toán qua các phƣơng thức nhƣ: Thanh toán trực tiếp khi nhận hàng, thanh toán qua cổng thanh toán PayPal,…  Thứ hai: Dành cho ngƣời quản trị: Ngƣời làm chủ ứng dụng có quyền kiểm soát mọi hoạt động của hệ thống.

9  Chức năng thêm, cập nhật, sửa, xoá các mặt hàng, loại hàng, nhà sản xuất,… đòi hỏi sự chính xác cao.  Tiếp nhận, kiểm tra đơn đặt hàng của khách hàng. Thông báo và thay đổi trạng thái của đơn hàng theo quá trình từ đặt hàng  xác nhận đơn hàng  khách hàng thanh toán  đang vận chuyển  khách hàng đã nhận hàng.  Thống kê, tính toán và báo cáo ( có thể xuất file excel ) theo ngày, khoảng thời gian.

- Ngoài chức năng trên thì trang Web phải đƣợc thiết kế sao cho dễ hiểu, giao diện mang tính dễ dùng, đẹp mắt và làm sao cho khách hàng thấy đƣợc thông tin cần tìm, cung cấp các thông tin quảng cáo hấp dẫn, các tin tức khuyến mãi để thu hút khách hàng. Điều quan trọng là phải đảm bảo an toàn tuyệt đối thông tin khách hàng trong quá trình đặt mua hàng qua mạng. Đồng thời, trang Web phải luôn đổi mới, hấp dẫn.2 Thiết bị và phần mềm - Máy tính có thể thiết kế đƣợc web - Hệ quản trị CSDL NoSQL MongoDb - Cài đặt frame work Hapi.js, các thƣ viện ReactJs, ReduxJs, Bootstrap,… - Phần mềm code: Visual Studio Code 10 C ƢƠNG I: TỔNG QUAN VỀ MONGODB, REACTJS- REDUXJS, FRAME WORK HAPI.JS VÀ RESTFULL API 1.1 Tổng quan về MongoDb 1.1 MongoDb là gì? MongoDB là một cơ sở dữ liệu đa nền tảng, hoạt động trên các khái niệm Collection và Document, nó cung cấp hiệu suất cao, tính khả dụng cao và khả năng mở rộng dễ dàng.  Khái niệm database là gì? Database là một nơi chứa vật lý cho các Collection.

Mỗi Database lấy tập hợp các file riêng của nó trên hệ thống file. Mỗi MongoDB Server có thể có nhiều cơ sở dữ liệu.  Khái niệm Collection là gì? Collection là một nhóm các Document trong MongoDB. Nó tƣơng đƣơng nhƣ một bảng trong RDBMS.

Do đó, một Collection tồn tại bên trong một cơ sở dữ liệu duy nhất. Các Collection không có ràng buộc Relationship nhƣ các hệ quản trị cơ sở dữ liệu khác nên việc truy xuất rất nhanh, chính vì thế mỗi collection có thể chứa nhiều thể loại khác nhau không giống nhƣ table trong hệ quản trị mysql là các field cố định. Các Document bên trong một Collection có thể có nhiều trƣờng khác nhau. Đặc biệt, tất cả các Document trong một Collection là tƣơng tự nhau hoặc với cùng mục đích liên quan.

 Khái niệm Document là gì? Một Document trong MongoDB, có cấu trúc tƣơng tự nhƣ kiểu dữ liệu JSON, là một tập hợp các cặp key-value. Các Document có schema động, nghĩa là Document trong cùng một Collection không cần thiết phải có cùng một tập hợp các trƣờng hoặc cấu trúc giống nhau, và các trƣờng chung trong Document của một Collection có thể giữ các kiểu dữ liệu khác nhau.2 Ƣu điểm khi dùng MongoDb so với RDBMS  Ít Schema hơn: MongoDB là một cơ sở dữ liệu dựa trên Document, trong đó một Collection giữ các Document khác nhau. Số trƣờng, nội dung và kích cỡ của Document này có thể khác với Document khác  Cấu trúc của một đối tƣợng là rõ ràng.  Không có các Join phức tạp.

 Khả năng truy vấn sâu hơn. MongoDB hỗ trợ các truy vấn động trên các Document bởi sử dụng một ngôn ngữ truy vấn dựa trên Document mà mạnh mẽ nhƣ SQL.  MongoDB dễ dàng để mở rộng.  Việc chuyển đổi/ánh xạ của các đối tƣợng ứng dụng đến các đối tƣợng cơ sở dữ liệu là không cần thiết.

 Sử dụng bộ nhớ nội tại để lƣu giữ phần công việc, giúp truy cập dữ liệu nhanh hơn.js là gì? Hapi.js (còn đƣợc gọi là hapi) là một open-source framework dùng để xây dựng các ứng dụng web.js đƣợc giới thiệu lần đầu bởi Eran Hammer vào năm 2011 tại Walmart trong nỗ lực xử lý lƣu lƣợng truy cập vào mỗi khi “Ngày thứ Sáu đen tối” diễn ra. Việc sử dụng hapi phổ biến nhất là xây dựng các API service. Tƣ liệu tham khảo: Website https://hapi.1 Ƣu điểm khi dùng Framework Hapi.js  Đƣợc thừa hƣởng những ƣu điểm và thế mạnh của các framework khác.  Có cộng đồng sử dụng nhiều  Tài liệu hƣớng dẫn rõ dàng, dễ học  Kết hợp sử dụng mô hình ORM rất đơn giản khi thao tác với CSDL  Các lệnh tƣơng tác với cơ sở dữ liệu cực kỳ ngắn gọn và thân thiện.

 Giúp hỗ trợ việc xây dựng API rất tốt  Dễ dàng tích hợp các thƣ viện khác vào dự án, và đƣợc quản lý với npm 12  Phần định tuyến và phân quyền rất mạnh.2 Mô hình MVC 1.1 Giới thiệu về mô hình MVC Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay mô hình thiết kế đƣợc sử dụng trong kỹ thuật phần mềm. Nó giúp cho các lập trình viên tách ứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller. Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác.2 Thành phần trong mô hình MVC Model Đây là thành phần chứa tất cả các nghiệp vụ logic, phƣơng thức xử lý, truy xuất database, đối tƣợng mô tả dữ liệu nhƣ các lớp (class), hàm xử lý. View Đảm nhận việc hiển thị thông tin, tƣơng tác với ngƣời dùng, nơi chứa tất cả các đối tƣợng GUI nhƣ textbox, image.Hiểu một cách đơn giản, nó là tập hợp các form hoặc các file HTML.

Controller Giữ nhiệm vụ nhận điều hƣớng các yêu cầu từ ngƣời dùng và gọi đúng những phƣơng thức xử lý chúng.

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