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.