Xây dựng ứng dụng e-shoppingcart cho thương mại điện tử bán quần áo bằng NestJS và Flutter

MỤC LỤC

GIỚI THIỆU TỔNG QUAN

KIẾN THỨC NỀN TẢNG 2.1 Flutter

  • Ưu và nhược điểm .1 Ưu điểm
    • NestJS .1 Giới thiệu về NestJS
      • Amazon Web Service .1 Giới thiệu về AWS
        • Flask .1 Giới thiệu về Flask

          Flask được gọi là một microframework vì nó cực kỳ nhẹ, chỉ cung cấp các công cụ cơ bản và cần thiết để xây dựng ứng dụng web cơ bản, và gần như không có bất kỳ một dependency nào đến một thư viện hay tool bên ngoài.  Ít tính năng mặc định: Điểm mạnh cũng là điểm yếu của Flask, vì Flask thiếu nhiều tính năng mặc định mà các framework khác có, lập trình viên cũng phải tự đi tìm các extension và thư viện ngoài để bù vào. Sau đó, các mô hình này có thể được sử dụng trực tiếp cho nhiều tác vụ khác nhau: có thể là bản thân tác vụ ban đầu mà mô hình được huấn luyện, hoặc nó có thể được fine-tuned (tinh chỉnh) trên một tập dữ liệu khác cho một tác vụ cụ thể.

           Transfer Learning (Học chuyển giao): Lập trình viên có thể sử dụng pre-trained model để áp dụng vào các tác vụ khác mà họ cần xử lý => Đặc biệt hữu ích khi có ít dữ liệu huấn luyện cho tác vụ mới.  Hiệu suất cao ngay từ đầu: Pre-trained models thường đã học được nhiều đặc trưng phức tạp từ dữ liệu lớn, giúp chúng có khả năng đưa ra dự đoán chất lượng cao ngay từ khi đầu, chứ không cần phải đợi đến huấn luyện cho tác vụ cụ thể.  Ứng dụng trong nhiều tác vụ: Pre-trained models thường được huấn luyện trên tập dữ liệu tổng quát, đa dạng, khiến cho các model này rất linh hoạt và có thể được sử dụng trong nhiều tác vụ khác nhau.

          Khi đó ta có thể lấy ra được danh sách các sản phẩm tương đồng với một sản phẩm bất kỳ bằng cách sử dụng một số công thức tính khoảng cách giữa các vector đặc trưng như Euclidean Distance, Cosine Similarity, Jaccard Similarity. Keras phổ biến vì Keras cung cấp nhiều API ở mức high-level cho người dùng, cho phép xây dựng và huấn luyện các mô hình neural network nhanh hơn và dễ dàng hơn một số thư viện khác như TensorFlow hay PyTorch.

          Hình 2. 2. Cấu trúc phân lớp trong D.D.D
          Hình 2. 2. Cấu trúc phân lớp trong D.D.D

          XÂY DỰNG HỆ THỐNG

          Giới thiệu chung về bài toán .1 Phát biểu bài toán

            - Flutter để xây dựng ứng dụng (frontend) cho khách hàng và ứng dụng cho nhân viên nhãn hàng. Ngoài ra các công cụ, công nghệ khác được sử dụng đã được đề cập ở 1.3. Clothnest app: https://github.com/cloth-nest/cloth-nest-app Clothnest backend: https://github.com/cloth-nest/cloth-nest-be.

            Clothnest recommendation: https://github.com/cloth-nest/cloth-nest-recommendation Clothnest admin: https://github.com/cloth-nest/clothnest-app-admin.

            Phân tích yêu cầu .1 Phân tích Use case

            • Sơ đồ Sequence .1 Quên mật khẩu
              • Sơ đồ Activity .1 Quên mật khẩu

                Ứng dụng hiển thị danh sách các loại sản phẩm và các phân loại con của loại sản phẩm mặc định được hiển thị đầu tiên. Điều kiện sau Danh sách các sản phẩm thuộc một phân loại được hiển thị cho người dùng. Điều kiện trước Ít nhất một sản phẩm đang được hiển thị trên ứng dụng Điều kiện sau Sản phẩm được thêm vào danh sách yêu thích của người.

                Hệ thống truy xuất sản phẩm tương ứng và thêm vào danh sách yêu thích của người dùng. Điều kiện trước Ít nhất một sản phẩm đang được hiển thị trên ứng dụng Điều kiện sau Thông tin chi tiết của sản phẩm được hiển thị cho người. Hệ thống truy xuất sản phẩm tương ứng và trả về các thông tin như: các thông tin chung của sản phẩm, các biến thể của sản phẩm (màu sắc, kích cỡ), số lượng của từng biến thể.

                Điều kiện sau Danh sách các sản phẩm tương ứng với một sản phẩm được hiển thị cho người dùng. Hệ thống truy xuất các sản phẩm với các đặc trưng tương ứng bằng một mô hình máy học. Sự kiện kích hoạt Người dùng nhấn chọn thêm một sản phẩm vào giỏ hàng Điều kiện trước Người dùng phải đăng nhập trước đó.

                Hệ thống truy xuất các sản phẩm có trong giỏ hàng của người dùng gồm: thông tin chung của sản phẩm, số lượng trong kho, số lượng trong giỏ hàng và trả về các thông tin trên. Sự kiện kích hoạt Người dùng nhấn Checkout tại màn hình Giỏ hàng Điều kiện trước Giỏ hàng phải có ít nhất một sản phẩm còn hàng Điều kiện sau Đơn hàng được đặt thành công. Ứng dụng hiển thị các thông tin về địa chỉ nhận hàng, số tiền cần thanh toán, hình thức thanh toán 5.

                Hệ thống truy xuất thông tin đơn hàng tương ứng như trạng thái, danh sách sản phẩm, số tiền thanh toán và trả về kết quả. Hệ thống truy xuất danh sách các đơn hàng, nhận thấy lịch sử trống và trả về kết quả. Điều kiện sau Thông tin chi tiết sản phẩm được hiển thị cho người dùng Luồng chính 1.

                Hệ thống kiểm tra quyền hạn của nhân viên và truy xuất danh sách chủng loại sản phẩm. Sự kiện kích hoạt Người dùng nhấn vào tab Products trên thanh Navigation Điều kiện trước Có ít nhất một loại sản phẩm và một thuộc tính sản phẩm Điều kiện sau Thông tin sản phẩm được cập nhật.

                Hình 3. 2 Sơ đồ Sequence Quên mật khẩu
                Hình 3. 2 Sơ đồ Sequence Quên mật khẩu

                Thiết kế .1 Thiết kế kiến trúc

                • Thiết kế dữ liệu
                  • Thiết kế giao diện người dùng .1 Ứng dụng cho khách hàng
                    • Triển khai

                      Item Card Hiển thị hình ảnh, tên, số lượng và giá tiền của sản phẩm. 3 Favorite Item Card Hiển thị hình ảnh, tên, số lượng và giá tiền của sản phẩm. 4 Buy Now Button Thêm sản phẩm vào giỏ hàng và đi đến Màn hình Giỏ hàng.

                      Hiển thị hình ảnh, tên, giá tiền của sản phẩm và số lượng hiện có trong giỏ hàng. Management Area Card Một số hạng mục quản lý phổ biến: Sản phẩm, Quyền hạn, Nhân viên. Danh sách tất cả các sản phẩm và thông tin sản phẩm: Tên, hình ảnh, loại sản phẩm, mô tả.

                      Danh sách tất các nhóm quyền hạn và thông của từng nhóm: tên nhóm và số lượng nhân viên thuộc nhóm.

                      Hình 3. 18 Màn hình Danh sách sản phẩm (Khách hàng)
                      Hình 3. 18 Màn hình Danh sách sản phẩm (Khách hàng)