Chương 1: Cở sở lý thuyết Hình 1.5: List và key[7] 1.Tương tác của các thành phần Trong React, dữ liệu thay đổi theo thời gian được gọi là trạng thái (state). Có thể thêm state vào bất kỳ component nào và thay đổi chúng nếu muốn.Sự kiện React cho phép thêm xử lý sự kiện (event handler). Event handler nhận function, các function được gọi mỗi khi sự kiện xảy ra như click, hover, focus. Tên của sự kiện là tên của thuộc tính event HTML thay vì là onclick (đối với HTML) sẽ là onClick (đối với JSX).6: Ví dụ event handler[8] 16 Chương 1: Cở sở lý thuyết 1.Trạng thái dưới dạng snapshot Không giống như các biến thông thường của javascript.
Trạng thái sẽ không thay đổi ngay giá trị sẵn có, việc thay đổi sẽ được kích hoạt khi re- render lại, điều này giúp tránh một số lỗi nhỏ.7: Trạng thái sẽ không thay đổi cho đến khi re-render[9] 1.Khái quát Spring Boot nằm trong hệ sinh thái hay còn gọi là con của Spring Framework. Spring Boot cung cấp nền tảng cho các nhà phát triển để đơn giản hóa việc lập trình ứng dụng bằng Spring, tập trung phát triển ứng dụng nhanh chóng không tốn thời gian cấu hình. Spring Boot bao gồm nhiều thư viện và công cụ hỗ trợ lập trình.8: Spring Framework đến Spring Boot[4] 1.Các tính năng Tạo ứng dụng Spring có tính độc lập. Nhúng trực tiếp Tomcat, Jetty hoặc Undertow mà không cần phải triển khai tệp WAR.
Starter dependency giúp cấu hình Maven dễ dàng hơn. Tự động cấu hình Spring khi cần thiết. Không tạo code cấu hình, không yêu cầu phải cấu hình bằng XML. 17 Chương 1: Cở sở lý thuyết 1.Giới thiệu MongoDB MongoDB là một loại phần mềm cơ sở dữ liệu sử dụng mã nguồn mở NoSQL.
Nó có thể hỗ trợ nhiều nền tảng khác nhau và được thiết kế dành cho đối tượng. MongoDB hoạt động với các khái niệm về Collection và Document. Đồng thời, nó có hiệu suất cao và tính khả dụng tốt, đồng thời dễ dàng mở rộng. Bộ sưu tập MongoDB.
Các Collection có cấu trúc rất linh hoạt. Điều này cho phép dữ liệu không khớp với bất kỳ cấu trúc nào. Do đó, MongoDB có thể lưu trữ dữ liệu có cấu trúc đa dạng và phức tạp. Dữ liệu MongoDB được lưu trữ ở định dạng kiểu JSON.Tính năng của MongoDB Truy vấn ad hoc Có tác dụng giúp trường tìm kiếm phạm vi kết hợp với tìm kiếm biểu thức để trả về kết quả tài liệu có kích thước cố định.
Ngoài ra, các trường MongoDB cũng được sử dụng để lập chỉ mục chính và phụ. Nhân rộng Cho phép nhân bản hai hoặc nhiều bản sao của dữ liệu. Nếu một bản sao nào bị lỗi thì Replica set sẽ chọn một bản sao phụ thay thế nó làm bản sao chính tiếp theo. Trong quá trình sao chép, Replica thứ cấp được tự do lựa 18 Chương 1: Cở sở lý thuyết chọn các hành động nhưng giá trị mặc định vẫn được áp dụng cho dữ liệu cuối cùng.
Cân bằng tải MongoDB dựa vào Shard key để phân vùng dữ liệu thành các phạm vi và phân phối dữ liệu đồng đều. Chúng có thể chạy trên nhiều máy chủ và thực hiện sao chép dữ liệu hoặc cân bằng tải để giữ hệ thống hoạt động trong trường hợp xảy ra lỗi về phần cứng. Lưu trữ tệp Khi tìm hiểu về hệ thống cơ sở dữ liệu MongoDB, bộ lưu trữ tệp được sử dụng như một hệ thống tệp (GridFS) hoạt động như một bộ cân bằng tải, sao chép dữ liệu trên nhiều máy tính. Cụ thể, GridFS chia tệp thành nhiều phần và lưu trữ chúng dưới dạng các tài liệu riêng biệt.
Sau đó, người dùng có thể dễ dàng truy cập GridFS thông qua Mongofiles hay các plugin sử dụng cho Nginx và Lighttpd. Tập hợp Chức năng này là một chương trình cung cấp ba giải pháp để thực hiện tập hợp gồm Aggregation Pipeline, Mapreduce và Single-purpose Aggregation. Aggregation Pipeline được đánh giá là có hiệu suất tốt nhất. Giới hạn kích thước collection Có kích thước cố định, thường được gọi là collection giới hạn.
Kích thước cố định cùng việc theo sau thứ tự chèn giúp tăng hiệu suất của các hoạt động liên quan đến dữ liệu. Và nếu dữ liệu vượt quá giới hạn, các tài liệu cũ hơn sẽ tự động bị xóa mà không cần thực hiện các dòng lệnh nào. Giao dịch Từ phiên bản 4.0 MongoDB bổ sung thêm tính năng hỗ trợ giao dịch ACID đa tài liệu. JSON WEB TOKEN JSON Web Token (JWT) là một chuỗi mã hóa dùng để truyền thông tin an toàn giữa Client – Server dưới định dạng JSON object.
Chuỗi thông 19 Chương 1: Cở sở lý thuyết tin dạng JSON là một chuỗi ký tự lộn xộn rất phức tạp và khó hiểu. Tất cả JWT đều là mã thông báo, nhưng không phải tất cả mã thông báo cũng là JWT.10: Cấu trúc JWT[6] 20 Chương 2: Khảo sát hiện trạng và mô hình hoá yêu cầu CHƯƠNG 2:KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HOÁ YÊU CẦU 2. KHẢO SÁT HIỆN TRẠNG 2.Chotroihn (https://chotroihn.vn) Website chotroihn là website thuộc công ty TNHH THƯƠNG MẠI 3M TECHCO cung cấp các loại linh kiện điện tử với mức giá phải chăng chất lượng tốt.1: Trang chủ website Chotroihn Các chức năng chính: - Xem chi tiết sản phẩm. - Xem các sản phẩm linh kiện theo từng mục danh mục.
- Tìm kiếm sản phẩm. - Đặt mua hàng (thanh toán bằng COD). - Gọi trực tuyến cửa hàng. Ưu điểm: - Giao diện dễ nhìn, làm nổi bật sản phẩm - Tương đối đủ chức năng nhu cầu người sử dụng.
- Đặt hàng không cần đăng nhập. Nhược điểm: - Chưa hỗ trợ nhiều phương thức đăng nhập 21 Chương 2: Khảo sát hiện trạng và mô hình hoá yêu cầu - Chưa có bộ lọc sản phẩm - Không thanh toán bằng nhiều phương thức.Thegioiic (https://www.com) Website thegioiic.com thuộc công ty cùng tên là Thegioiic cung cấp sản phẩm trong lĩnh vực điện tử gồm thiết kế phần cứng, phát triển phần mềm và hệ thống nhúng. Hiện nay là nhà phân phối các và cung cấp linh kiện điện tử, giúp khách hàng tiết kiệm thời gian và tiền bạc trong kinh doanh linh kiện điển tử.2: Trang chủ website Thegioiic Các chức năng chính: - Đăng nhập, đăng ký, chỉnh sửa thông tin cá nhân - Xem chi tiết sản phẩm. - Xem các sản phẩm linh kiện theo từng mục danh mục.
- Tìm kiếm sản phẩm. - Lọc sản phẩm (danh mục) - Đặt mua hàng (thanh toán bằng nhiều phương thức ATM, VNPAY, MOMO hoặc COD). 22 Chương 2: Khảo sát hiện trạng và mô hình hoá yêu cầu - Chat hoặc liên hệ trực tuyến nhân viên cửa hàng. Ưu điểm: - Có thể chuyển đổi 2 ngôn ngữ (tiếng Việt, tiếng Anh) khi dùng.
- Đăng nhập, đăng ký bằng nhiều phương thức khác nhau dù chưa có tài khoản. - Có nhiều phương thức thanh toán. - Có đủ các chức năng sử dụng. Nhược điểm: - Header còn đơn giản.
- Chưa có thể lọc được nhiều tiêu chí.Linhkienviet (http://linhkienviet.vn) Website linhkienviet.vn thuộc công ty SMD electronics. Cung cấp linh kiện, module kit.3: Trang chủ website Linhkienviet Các chức năng chính: - Đăng nhập, đăng ký, chỉnh sửa thông tin cá nhân - Xem chi tiết sản phẩm. - Xem các sản phẩm linh kiện theo từng mục danh mục. - Tìm kiếm sản phẩm (có thể tìm kiếm theo danh mục).
23 Chương 2: Khảo sát hiện trạng và mô hình hoá yêu cầu - Lọc sản phẩm theo các tiêu chí (giá, chữ cái, thời gian, …) - Đặt mua hàng (thanh toán bằng ATM hoặc COD). Ưu điểm: - Giao diện, màu sắc dễ nhìn. - Đặt hàng không cần đăng nhập. - Có đủ các chức năng sử dụng.
Nhược điểm: - Chưa hỗ trợ nhiều phương thức đăng nhập. - Không thanh toán bằng nhiều phương thức.Nshop (https://nshopvn.4: Trang chủ website Nshopvn Các chức năng chính: - Đăng nhập, đăng ký, chỉnh sửa thông tin cá nhân - Xem chi tiết sản phẩm. - Xem các sản phẩm linh kiện theo từng mục danh mục. - Tìm kiếm sản phẩm (có thể tìm kiếm theo danh mục).
- Lọc sản phẩm theo các tiêu chí (giá, nổi bật, danh mục, thời gian, …) - Đặt mua hàng (thanh toán bằng nhiều phương thức ATM, VNPAY, MOMO, Visa, … hoặc COD). Ưu điểm: 24 Chương 2: Khảo sát hiện trạng và mô hình hoá yêu cầu - Giao diện, màu sắc dễ nhìn. - Đặt hàng không cần đăng nhập. - Có đủ các chức năng sử dụng.
Nhược điểm: - Chưa hỗ trợ nhiều phương thức đăng nhập.Hshop (https://hshop.vn là cửa hàng chuyên về các sản phẩm phần cứng: Mạch lập trình, Module chức năng, Cảm biến, Mạch điều khiển và Linh kiện chế tạo Robot.5: Trang chủ website Hshop Các chức năng chính: - Đăng nhập, đăng ký, chỉnh sửa thông tin cá nhân - Xem chi tiết sản phẩm. - Xem các sản phẩm linh kiện theo từng mục danh mục. - Tìm kiếm sản phẩm. - Đặt mua hàng (thanh toán bằng ATM hoặc COD).
Ưu điểm: - Giao diện, màu sắc dễ nhìn. - Có đủ các chức năng sử dụng. Nhược điểm: 25 Chương 2: Khảo sát hiện trạng và mô hình hoá yêu cầu - Chưa hỗ trợ nhiều phương thức đăng nhập. - Không thanh toán bằng nhiều phương thức.
XÁC ĐỊNH YÊU CẦU 2.Yêu cầu chức năng nghiệp vụ Bảng 2.1: Bảng yêu cầu chức năng nghiệp vụ phía khách hàng STT Yêu cầu nghiệp vụ Loại yêu cầu Ghi chú 1 Tìm kiếm sản phẩm theo tên hoặc Tra cứu (tìm kiếm) mô tả. 2 Xem danh sách sản phẩm Tra cứu (tìm kiếm) 3 Xem chi tiết sản phẩm Tra cứu (tìm kiếm) 4 Xem danh sách đơn hàng đã đặt Tra cứu (tìm kiếm) 5 Thêm, chỉnh sửa thông tin sản Lưu trữ phẩm trong giỏ hàng 6 Đặt hàng Lưu trữ 7 Thêm đánh giá sản phẩm Lưu trữ 8 Chỉnh sửa thông tin tài khoản Lưu trữ 9 Tính tổng giá trị đơn hàng dựa trên Tính toán giá hiện tại của sản phẩm Bảng 2.2: Bảng yêu cầu chức năng nghiệp vụ phía quản trị viên STT Yêu cầu nghiệp vụ Loại yêu cầu Ghi chú 1 Thêm, chỉnh sửa thông tin sản phẩm Lưu trữ mới 2 Thêm thông tin tài khoản mới Lưu trữ 3 Thêm, chỉnh sửa thông tin danh mục Lưu trữ mới 4 Xác nhận, hủy đơn hàng Lưu trữ 5 Xem, lọc danh sách sản phẩm Tra cứu (tìm kiếm) 6 Xem, lọc danh sách tài khoản Tra cứu (tìm kiếm) 7 Xem, lọc danh sách danh mục Tra cứu (tìm kiếm) 8 Xem, lọc danh sách đơn hàng Tra cứu (tìm kiếm) 9 Tính doanh thu của cửa hàng theo Tính toán 26 Chương 2: Khảo sát hiện trạng và mô hình hoá yêu cầu ngày, tháng, năm 10 Thống kê số lượng sản phẩm theo Kết xuất trạng thái 2.Yêu cầu chức năng hệ thống Bảng 2.3: Bảng yêu cầu chức năng hệ thống STT Yêu cầu hệ thống Mô tả, ràng buộc Ghi chú 1 Cung cấp chức năng phân Phân quyền cho phía quản quyền trị gồm: quản trị viên và nhân viên.