CHƯƠNG 1: GIỚI THIỆU CHUNG 1. Lý do chọn đề tài Do sự ảnh hưởng của dịch Covid, nhu cầu thương mại điện tử ngày càng phát triển. Nhưng thực phẩm, thứ không thể thiếu cho đời sống hàng ngày, dù cho các ứng dụng mua bán online đang nở rộ, nhưng nhiều người vẫn gặp khó khăn khi phải mua thực phẩm, nhất là thực phẩm tươi sống. Nắm bắt được xu hướng đó, đồ án “Ứng dụng bán hàng tích hợp hệ thống khuyến nghị sản phẩm.” sẽ đảm đương trách nhiệm đưa mọi loại thực phẩm cần thiết đến tận tay người tiêu dùng, với phương châm: “Đơn hàng sẽ được giao đến ngay trước khi nồi cơm được bật”.
Để phù hợp với quy mô của môn đồ án 1, cũng như dễ dàng hơn trong việc tạo lập, giải quyết và áp dụng các bài toán, dự án sẽ được xây dựng trên nền tảng ứng dụng Android , đồng thời các chức năng, lấy, cập nhật dữ liệu sẽ được thực hiện bên dưới Back-end, được xây dựng bằng NodeJs. Với việc phân tách xử lý thông tin dữ liệu ở Back-end, ta có thể dễ dàng tái sử dụng trong việc tạo dựng thêm được các ứng dụng ở nhiều nền tảng khác trong tương lai như IOS, web. Trong đó với phần ứng dụng được xây dựng trên nền tảng Android sẽ được xây dựng bằng Javascript, sử dụng React native, một framework được phát triển và hoàn thiện bởi Facebook, phù hợp cho việc thiết kế UI. Điểm mới và khác biệt về chức năng của đề tài so với một số ứng dụng mua bán trên sàn thương mại điện tử hiện nay 1.
Điểm khác biệt của đề tài Ứng dụng Các ứng dụng thương TAKETE SHOP mại điện tử khác Tính năng Hiệu suất tải sản phẩm sẽ Đối với các ứng dụng không Hiệu suất tải dữ đồng đều, không quá lâu kể sử dụng các tính năng liệu cả khi lượng dữ liệu tăng Paging, lazyload thì hiệu 19 ngày càng cao với việc sử suất tải dữ liệu sẽ chậm, và dụng Paging và lazyload. thời gian tải dữ liệu sẽ tăng tuyến tính với độ tăng dữ liệu. Đồ án mang lại khả năng Các ứng dụng buôn bán linh hoạt về sản phẩm, mọi nhỏ lẻ thường chỉ chuyên ngành hàng loại hàng đều về một loại sản phẩm và Đa dạng sản phẩm có thể biểu diễn trên ứng cung câp các thuộc tính cố dụng với các đặc trưng định, dẫn đến việc khó riêng của mỗi sản phẩm. chuyển đổi ngành hàng loại hàng.1 Điểm khác biệt của đề tài 1.
Điểm mới nổi bật của đề tài - Việc đa dạng hàng hóa là điểm nổi bật của đề tài, mang lại khả năng chuyển đổi mở rộng lĩnh vực kinh doanh mà không cần phải thay đổi mã nguồn. điều này mang lại lợi thế cho doanh nghiệp trong việc nhanh chóng nắm bắt được thị trường. Tính khác biệt, cải thiện về chức năng so với các app hiện nay - Khảo sát qua các ứng dụng hiện nay nhóm nhận thấy có một số hạn chế trong việc quản lý giỏ hàng và thanh toán. Giỏ hàng chỉ có thể chọn mua tất cả chứ không thể tùy chọn những sản phẩm muốn thanh toán và lưu lại các sản phẩm chưa thanh toán.
Điều này đã làm dẫn đến sự hạn chế đối với lựa chọn của người dùng đồng thời cũng làm gia tăng thêm thao tác người dùng, khiên UX trở nên rắc rối hơn. Do đó TAKETE SHOP có hỗ trợ thêm tính năng chọn lựa sản phẩm sẽ chọn để đi đến thanh toán và lưu lại các sản chưa chọn. - Một số ứng dụng ngày nay vẫn còn sử dụng phương pháp load tất cả lên một màn hình, điều này làm giảm đi hiệu suất sản phẩm, cũng như trải nghiệm người dùng. Việc áp dụng Paging và lazy load của TAKETE SHOP sẽ làm thời gian tải của dữ liệu đồng đều, không làm mất nhiều người dùng.
Phạm vi nghiên cứu 20 - Tìm hiểu và áp dụng các bài toán về xử lý đặt hàng, hay bài toán về sự đa dạng hàng hóa. - Xây dựng ứng dụng cung cấp dịch vụ mua bán trực tuyến đến mọi loại cửa hàng, ngành hàng. - TAKETE SHOP bao gồm phần ứng dụng cho người mua và ứng dụng cho người bán sẽ được xây dựng bằng React Native. Phần backend sẽ được triển khai xây dựng bằng Nodejs với MongoDB và MySQL.
- Triển khai, đánh giá độ chính xác của từng phương pháp dựa trên dữ liệu thử nghiệm. Áp dụng hệ thống gợi ý sản phẩm vào ứng dụng FAIIKAN để gợi ý sản phẩm cho người dùng. Đối tượng nghiên cứu - Các công nghệ: + Javascipts. + JWT, React Native, NodeJs.
- Các bài toán về xử lý đặt hàng, tăng hiệu suất, đa dạng hàng hóa sản phẩm. - Đối tượng trong phạm vi đề tài hướng đến: + Tất cả doanh nghiệp, cửa hàng vừa và nhỏ ở mọi loại ngành hàng mặt hàng. + Khách hàng (Người tiêu dùng). Phương pháp nghiên cứu - Tìm hiểu các phương pháp hiện có.
- Tìm hiểu nghiệp vụ, quy trình hoạt động của các ứng dụng thương mại điện tử và các ứng dụng mua bán trực tuyến của các thương hiệu nổi tiếng. - Phác họa hệ thống tổng quát (thiết kế cơ sở dữ liệu, xử lý dữ liệu, …). - Tham khảo các ứng dụng tương tự: SHEIN, Shopee, , … - Tham khảo ý kiến của giảng viên hướng dẫn để được định hướng đúng, 21 nhằm đạt kết quả tốt nhất. - Thiết kế giao diện, cơ sở dữ liệu.
- Xây dựng backend và quản lý theo mô hình MVC bằng NodeJS. - Vận dụng đưa ra giải pháp phù hợp cho các bài toán. 22 CHƯƠNG 2: CÔNG NGHỆ SỬ DỤNG 2. Hệ quản trị cơ sở dữ liệu MySQL - Tìm hiểu các phương pháp hiện có.
- Tìm hiểu nghiệp vụ, quy trình hoạt động của các ứng dụng thương mại điện tử và các ứng dụng mua bán trực tuyến của các thương hiệu nổi tiếng. - Phác họa hệ thống tổng quát (thiết kế cơ sở dữ liệu, xử lý dữ liệu, …). - Tham khảo các ứng dụng tương tự: SHEIN, Shopee, , … - Tham khảo ý kiến của giảng viên hướng dẫn để được định hướng đúng, đạt kết quả tốt nhất. - Thiết kế giao diện, cơ sở dữ liệu.
- Xây dựng backend và quản lý theo mô hình MVC bằng NodeJS. - Vận dụng đưa ra giải pháp phù hợp cho các bài toán.1 MySQL MySQL là một hệ quản trị cơ sở dữ liệu nhanh và tiện gọn, dễ dàng sử dụng để tương tác với các công nghệ tiên tiến ngày nay như C#, Java, … Nó được phát triển với công ty MySQL AB ở Thụy Điển năm 2004 và sau nhiều lần thay đổi chủ sở hữu, cuối cùng đã được mua lại bởi OracleCorporation vào năm 2010. Tại sao lại sử dụng MySQL Nó khá phổ biến với giới lập trình viên bởi: - MySQL là mã nguồn mở, hoàn toàn miễn phí khi sử dụng. 23 - MySQL sử dụng form chuẩn thuộc hệ SQL.
- MySQL dễ dàng xử lý ngay cả trên các tập dữ liệu lớn. MySQL hỗ trợ giao dịch nhanh. Giao dịch ACID (Atomic-Consistent- Isolated-Durable) hoàn thiện. Cơ sở dữ liệu MongoDB Hình 2.
Một số thông tin về MongoDB MongoDB là một database hướng tài liệu (document), một dạng NoSQL database. Vì thế, MongoDB sẽ tránh cấu trúc table-based của relational database để thích ứng với các tài liệu như JSON có một schema rất linh hoạt gọi là BSON. MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection sẽ các các kích cỡ và các document khác nhau. Các dữ liệu được lưu trữ kiểu JSON nên truy vấn sẽ rất nhanh.
Ứng dụng MongoDB vào đồ án Với lợi thế có tính chất INSERT cao bởi vì mặc định MongoDB có sẵn cơ chế ghi với tốc độ cao và an toàn. Website của bạn ở dạng thời gian thực nhiều, nghĩa là nhiều người thao tác với ứng dụng. Nếu trong quá trình load bị lỗi tại một điểm nào đó thì nó sẽ bỏ qua phần đó nên sẽ an toàn. Chưa hết, nó còn có khả năng lưu trữ dữ liệu lớn.
Vì vậy nên MongoDB rất phù hợp trong việc nhắn tin, thứ yêu cầu dữ 24 liệu lớn và thao tác nhiều người. JSON Web Token (JWT) Hình 2. JWT là gì? JSON Web Token (JWT) là 1 tiêu chuẩn mở, định nghĩa cách thức truyền tin an toàn giữa các ứng dụng bằng một đối tượng JSON. Dữ liệu truyền đi sẽ được mã hóa và chứng thực, có thể được giải mã để lấy lại thông tin và đánh dấu tin cậy nhờ vào “chữ ký” của nó.
Phần chữ ký của JWT sẽ được mã hóa lại bằng HMAC hoặc RSA. JWT gồm 3 phần chính: + Header: Gồm 2 thông tin là loại token (thường là bearer) và phương thức mã hóa. + Payload: Chứa các thông tin cần truyền tải, thường là các thông tin dùng để thực hiện authentication. + Signature: Signature được tạo ra bằng cách dùng phương pháp mã hóa được chỉ định ở header để mã hóa nội dung encode của header, payload, cùng với chuỗi khóa bí mật.
Được định dạng theo kiểu header. Áp dụng JWT vào Đồ án? - Hỗ trợ việc bảo mật trong hệ thống, và phân quyền cho user. - Tăng cường bảo mật do JWT không sử dụng cookie. Postman là gì? Hình 2.4 Postman Postman là 1 ứng dụng REST Client, dùng để thực hiện test, gửi các request, API mà không cần sử dụng browser.
Sử dụng Postman, ta có thể gọi Rest API mà không cần viết bất kỳ dòng code nào. Postman hỗ trợ mọi phương thức HTTP bao gồm: POST, PUT, DELETE, PATCH, GET,. Postman cho phép lập trình viên lưu lại lịch sử của các lần request nên vô cùng tiện lợi cho nhu cầu sử dụng lại. Áp dụng Postman vào đồ án? Postman được sử dụng song song với việc lập trình các APIs của hệ thống, nhằm có thể kiểm thử được ngay sau khi lập trình mà không cần kết nối trước với GUI và thực hiện các thao tác.
React Native 26 Hình 2. React Native là gì? React Native là một framework được tạo bởi Facebook, cho phép các lập trình viên sử dụng JavaScript để làm mobile apps trên cả Android và iOS với có trải nghiệm và hiệu năng như native. React Native vượt trội ở chỗ chỉ cần viết một lần là có thể build ứng dụng cho cả iOS lẫn Android. React native cho phép xây dựng các ứng dụng trên android vs ios chỉ với một ngôn ngữ thống nhất là javascript nhưng mang lại trải nghiệm native app thực sự.
Không như các framework hybrid khác (viết một lần triển khai nhiều nơi), React native tập trung vào việc một lập trình viên làm việc hiệu quả trên môi trường đa nền tảng như thế nào 2. Sử dụng React Native trong Đồ án? React native có những ưu điểm tuyệt vời trong việc xây dựng app như: - Khả năng tái sử dụng code và các components đã được phát triển sẵn.