MỞ ĐẦU Phương pháp nghiên cứu - Phương pháp nghiên cứu lý thuyết ● Các tài liệu liên quan đến nghiệp vụ quản lý bán hàng và bán hàng. ● Tìm hiểu về cơ sở lý thuyết Spring boot và ReactJS. ● Hiểu về cách thức hoạt động của Client - Server. - Phương pháp quan sát ● Quan sát hoạt động của các web buôn bán thiết bị điện tử - Phương pháp điều tra, phân tích ● Điều tra, phân tích tình trạng, sản phẩm,.
● Phân tích thực trạng các trang web buôn bán hiện nay. - Phương pháp khảo sát ● Khảo sát thực trạng mua hàng thiết bị điện tử hiện nay. Kết quả đạt được Qua quá trình nghiên cứu và thực hiện đồ án tiểu luận chuyên ngành, đề tài chúng em đã giải quyết được các vấn đề sau: - Xây dựng được hệ thống website sàn giao dịch thương mại điện tử kinh doanh thiết bị điện tử đáp ứng được yêu cầu của đề tài. - Xây dựng hệ thống quản lý thông tin bán hàng.
- Xây dựng hệ thống người giao hàng - Xây dựng hệ thống phân tích tình cảm nhằm đánh giá sản phẩm một cách khách quan cho người bán và người quản lý - Xây dựng thành công các chức năng của hệ thống. - Kết nối với hệ thống phân tích tình cảm thông qua Flask - Vận hành ứng dụng với cơ chế Client - Server kết nối thông qua API giữa Spring boot và ReactJS. - Triển khai web lên các dịch vụ hosting. 16 Phần 2: NỘI DUNG Phần 2 : NỘI DUNG 1.
Chương 1: CƠ SỞ LÝ THUYẾT 1. Giới thiệu Spring Framework Spring Framework (thường được gọi là Spring) là một framework mã nguồn mở nhằm phát triển J2EE dễ dàng hơn. Spring Framework sử dụng nhiều kỹ thuật khác nhau như AOP (Aspect-Oriented Programming), POJO (Plain Old Java Object) và DI (dependency injection) để phát triển các ứng dụng doanh nghiệp. Spring Framework được chia thành các module.
Có thể tùy chọn các module cần thiết cho ứng dụng. Trọng tâm của các module là core container, bao gồm các mô hình cấu hình và cơ chế DI (dependency injection). Ngoài ra Spring Framework còn cung cấp hỗ trợ cơ bản cho các kiến trúc ứng dụng khác nhau. Kiến trúc Spring Framework 17 Phần 2: NỘI DUNG.
Tổng quan quan Restful API 1. REST là gì? REST được định nghĩa là “REpresentational State Transfer” và được thiết kế để tận dụng các giao thức HTTP hiện có khi được sử dụng cho các API Web. Nó rất linh hoạt ở chỗ nó không bị ràng buộc với tài nguyên hoặc phương thức và có khả năng xử lý các cuộc gọi và định dạng dữ liệu khác nhau. Vì REST API không bị ràng buộc ở định dạng XML, nên nó có thể trả về nhiều định dạng khác tùy thuộc vào những gì cần thiết.
Nếu một dịch vụ tuân thủ phong cách này, thì nó được coi là một ứng dụng “ RESTful”. REST cho phép các thành phần truy cập và quản lý các chức năng trong một ứng dụng khác. API là gì? API (hay Application Programming Interface) cung cấp phương thức tương tác giữa hai hệ thống. RESTful API là gì? Một RESTful API (hay Application Programming Interface) sử dụng các yêu cầu HTTP để GET, PUT, POST và DELETE dữ liệu theo các tiêu chuẩn REST.
Điều này cho phép hai phần mềm giao tiếp với nhau. Về bản chất, REST API là một tập hợp các lệnh gọi từ xa sử dụng các phương thức tiêu chuẩn để trả về dữ liệu ở một định dạng cụ thể. Các hệ thống tương tác theo cách này có thể rất khác nhau. Mỗi ứng dụng có thể sử dụng một ngôn ngữ lập trình, hệ điều hành, cơ sở dữ liệu riêng… Một hệ thống có thể dễ dàng giao tiếp và hiểu các ứng dụng khác là nơi RESTful API được sử dụng như một hệ thống tương tác.
Các phương thức HTTP Trong HTTP , có năm phương thức thường được sử dụng trong Kiến trúc dựa trên REST, tức là POST, GET, PUT, PATCH và DELETE. Chúng tương ứng với các 18 Phần 2: NỘI DUNG hoạt động tạo, đọc, cập nhật và xóa (hoặc CRUD) tương ứng. Có những phương pháp khác ít được sử dụng hơn như OPTIONS và HEAD. \ - GET: Nó được sử dụng để đọc (hoặc truy xuất) một biểu diễn của tài nguyên.
- POST: Nó thường được sử dụng nhất để tạo tài nguyên mới. Cụ thể, nó được sử dụng để tạo các tài nguyên cấp dưới. - PUT: Nó được sử dụng để cập nhật các khả năng. Tuy nhiên, PUT cũng có thể được sử dụng để tạo tài nguyên trong trường hợp ID tài nguyên được chọn bởi máy khách thay vì máy chủ.
Nói cách khác, nếu PUT là một URI chứa giá trị của ID tài nguyên không tồn tại. - PATCH: Nó được sử dụng để sửa đổi các khả năng. Yêu cầu PATCH chỉ cần chứa các thay đổi đối với tài nguyên chứ không phải toàn bộ tài nguyên. Điều này tương tự như PUT, nhưng phần thân chứa một tập hợp các hướng dẫn mô tả cách sửa đổi tài nguyên hiện đang nằm trên máy chủ để tạo ra một phiên bản mới.
- DELETE: Nó được sử dụng để xóa tài nguyên được xác định bởi URI. Spring boot là gì? Spring boot là một framework dễ dàng khởi động và phát triển các ứng dụng Spring. Nó cung cấp các giá trị mặc định cho cấu hình code và annotation nhanh chóng bắt đầu dự án Spring mới. Nó tuân theo phương pháp tiếp cận “Opinionated Defaults Configuration” để tránh nhiều code bản mẫu và cấu hình nhằm cải thiện quy trình kiểm tra tích hợp, kiểm tra đơn vị và phát triển.
Ưu điểm Ưu điểm của Spring boot là: - Rất dễ dàng để phát triển các ứng dụng dựa trên Spring với Java hoặc Groovy. - Nó giảm rất nhiều thời gian phát triển và tăng năng suất. - Nó tránh viết nhiều Boilerplate Code, Annotation và cấu hình XML. - Rất dễ dàng để tích hợp ứng dụng Spring boot với hệ sinh thái Spring của nó như Spring JDBC, Spring ORM, Spring Data, Spring Security,… - Nó tuân theo phương pháp tiếp cận "Opinionated Defaults Configuration" để giảm bớt thời gian của nhà phát triển 19 Phần 2: NỘI DUNG - Nó cung cấp các máy chủ HTTP nhúng như Tomcat, Jetty,…để phát triển và kiểm tra các ứng dụng web rất dễ dàng.
- Nó cung cấp công cụ CLI (Command Line Interface) để phát triển và thử nghiệm các ứng dụng Spring Boot (Java hoặc Groovy) từ dấu nhắc lệnh rất dễ dàng và nhanh chóng. - Nó cung cấp rất nhiều plugin để phát triển và kiểm tra ứng dụng Spring boot rất dễ dàng bằng cách sử dụng công cụ xây dựng như Maven và Gradle - Nó cung cấp rất nhiều plugin để hoạt động với CSDL được nhúng và trong bộ nhớ rất dễ dàng. Mục tiêu chính của Spring Boot Mục tiêu chính của Spring boot là: - Để tránh cấu hình XML hoàn toàn. - Để tránh xác định thêm cấu hình Annotation.
- Để tránh viết nhiều lệnh import. - Để cung cấp một số giá trị mặc định để bắt đầu nhanh các dự án mới trong thời gian ngắn. - Để cung cấp phương pháp tiếp cận Opinionated Development. Hạn chế Spring Boot Framework có một hạn chế.
Quá trình chuyển đổi các dự án Spring Framework hiện tại hoặc kế thừa thành ứng dụng Spring boot hơi tốn thời gian nhưng chúng ta có thể chuyển đổi tất cả các loại dự án thành ứng dụng Spring boot. Rất dễ dàng để tạo các dự án hoàn toàn mới/Greenfield bằng Spring Boot. Spring Security là gì? Spring Security là một Framework rất phổ biến và và được sử dụng rộng rãi, Chức năng chính của nó là quản lý xác thực và ủy quyền ở cả cấp độ yêu cầu web và yêu cầu phương thức. Lợi ích đáng kể nhất của Framework này là nó vừa mạnh mẽ vừa rất dễ thích ứng.
Mặc dù nó tuân thủ các quy ước đã thiết lập của Spring, nhưng các lập trình viên có thể chọn giữa các điều khoản mặc định và sửa đổi nó theo các yêu cầu cụ thể của họ. Spring Security hoạt động trên bốn khái niệm cốt lõi sau: 20 Phần 2: NỘI DUNG - Xác thực (Authentication) - Ủy quyền (Authorization) - Lưu trữ mật khẩu (Password Storage) - Bộ lọc Servlet (Servlet Filters) 1. Ưu điểm Đây là một số ưu điểm chính của bảo mật Spring - Bảo vệ chống lại các cuộc tấn công như session fixation và clickjacking. - Tích hợp Spring MVC.
- Hỗ trợ cấu hình Java. - Portable - Tích hợp API Servlet - Bảo vệ chống lại các cuộc tấn công brute force. Các đặc điểm nổi bật Các tính năng của spring security: - Hỗ trợ một số phương thức xác thực khác nhau như: xác thực dựa trên biểu mẫu đăng nhập, xác thực bằng chứng chỉ người dùng với X509, xác thực LDAP, xác thực windows. - Các phương thức xác thực và quyền truy cập người dùng hoàn toàn độc lập với nhau.
- Được tích hợp rất tốt với một số giải pháp đăng nhập SSO (single sign‐on) khác nhau như: Central Authentication Service (CAS), OpenID, Siteminder và OAuth. - Cung cấp xác thực ẩn danh hay đăng nhập với tư cách khách. - Nó có hỗ trợ ghi nhớ tích hợp sẵn khi để tự động đăng nhập. - Hỗ trợ tích hợp với javax.HttpServletRequest để các phương thức getRemoteUser() và isUserInRole(String) sẽ hoạt động với thông tin xác thực do Spring Security cung cấp.
- Có thể buộc người dùng truy cập ứng dụng web chỉ bằng HTTP an toàn. - Hỗ trợ mã hóa mật khẩu. 21 Phần 2: NỘI DUNG - Nó cung cấp khả năng bảo vệ tích hợp chống lại các cuộc tấn công session fixation bằng cách thay đổi HTTP session được sử dụng trong quá trình đăng nhập. - Có thể kiểm soát riêng quyền truy cập vào tài nguyên URL, lệnh gọi phương thức dịch vụ và đối tượng miền.
Tổng quan ReactJS 1. React Js là gì ReactJS là thư viện JavaScript (cấp phép theo Facebook Inc) được sử dụng để xây dựng các thành phần giao diện người dùng có thể tái sử dụng(components), có tính tương tác cao, trình bày dữ liệu thay đổi theo thời gian. Đặc điểm ReactJs Một trong những đặc điểm của React là thư viện này không chỉ hoạt động trên phía client, mà còn được render trên server và có thể kết nối với nhau. React so sánh sự thay đổi giữa các giá trị của lần render này với lần render trước và cập nhật thay đổi trên DOM.
Components trong ReactJs Components: React được xây dựng xung quanh các component, chứ không dùng template như các framework khác. Trong React, chúng ta xây dựng trang web sử dụng những thành phần (component) nhỏ. Chúng ta có thể tái sử dụng một component ở nhiều nơi, với các trạng thái hoặc các thuộc tính khác nhau, trong một component lại có thể chứa thành phần khác.