ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN 1 TÌM HIỂU REACTJS-SPRINGBOOT FRAMEWORK Giảng viên hướng dẫn: ThS. Nguyễn Công Hoan Sinh viên thực hiện: Nguyễn Hoàng Thái Dương 19521409 Nguyễn Âu Duy 19521423 TP.Hồ Chí Minh,2022 ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN 1 TÌM HIỂU REACTJS-SPRINGBOOT FRAMEWORK Giảng viên hướng dẫn: ThS. Nguyễn Công Hoan Sinh viên thực hiện: Nguyễn Hoàng Thái Dương 19521409 Nguyễn Âu Duy 19521423 TP.Hồ Chí Minh,2022 LỜI CẢM ƠN Nhóm xin gửi lời cảm ơn chân thành đến thầy Nguyễn Công Hoan đã tận tình giảng dạy, hướng dẫn chúng em trong suốt thời gian học vừa qua và các bạn học đã góp ý và giúp đỡ nhóm trong quá trình thực hiện đồ án này. Do kiến thức và thời gian thực hiện hạn chế, đồ án của nhóm vẫn còn nhiều thiếu sót.
Nhóm rất mong nhận được góp ý của Thầy Cô và các bạn để đồ án của nhóm được hoàn thiện. Nhóm sinh viên thực hiện Nguyễn Hoàng Thái Dương-Nguyễn Âu Duy 3 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN. HCM, ngày … tháng 6 năm 2022 GVHD ThS. Nguyễn Công Hoan Mục Lục I.
Thông tin nhóm. Tổng quan đề tài .1 Giới thiệu đề tài .2 Nội dung đề tài .3 Mục tiêu hướng tới. Công nghệ sử dụng .2 Visual Studio Code .4 Microsoft SQL Server .6 Ngôn ngữ Java .7 Ngôn ngữ thiết kế Web HTML-CSS-Javascript. Các khái niệm chính trong React (ReactJs).4 Props và State.
Cách hoạt động. Nhược điểm. Ưu điểm và Tại sao nên dùng ReactJs. Các framework-package liên quan đến ReactJs.
Nhược điểm của Spring Boot. Ưu điểm của Spring Boot. Các thư viện được sử dụng trong Spring Boot. Xây dựng back-end cho đồ án bằng Spring Boot.
TRANG WEB MINH HỌA. Giới thiệu ứng dụng web .2 Hướng giải quyết .3 Giới thiệu ứng dụng phát triển. Product Requirement Document .4 Analystics – Phân tích. Màn hình minh họa .2 Trang sản phẩm quần áo.3 Trang sản phẩm phụ kiện .4 Trang chi tiết sản phầm .5 Trang giỏ hàng.6 Trang đăng nhập.
KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN. Kết quả đạt được. Hướng phát triển. TÀI LIỆU THAM KHẢO.
56 Danh Mục Hình Ảnh Hình I-1 Intellij Logo ___________________________________________ 3 Hình I-2 VS code Logo__________________________________________ 4 Hình I-3 Postman Logo__________________________________________ 4 Hình I-4 SQL Server Logo _______________________________________ 5 Hình I-5 Github Logo ___________________________________________ 5 Hình I-6 Java logo _____________________________________________ 6 Hình I-7 Logo HTML-CSS-Javascript ______________________________ 7 Hình I-8 Logo Bootstrap _________________________________________ 8 Hình II-1 Mô hình DOM trong ứng dụng ReactJs ____________________ 10 Hình II-2 Ví dụ về JSX _________________________________________ 11 Hình II-3 Ví dụ về component ___________________________________ 12 Hình II-4 Ví dụ props __________________________________________ 13 Hình II-5 Component Lifecycle __________________________________ 14 Hình II-6 Top các framework phát triển Web theo năm 2021 ___________ 18 Hình II-7 useState _____________________________________________ 19 Hình II-8 useEffect ____________________________________________ 19 Hình II-9 React-Router _________________________________________ 21 Hình II-10 useNavigate _________________________________________ 22 Hình II-11useLocation _________________________________________ 22 Hình II-12 useParam ___________________________________________ 23 Hình II-13 Link _______________________________________________ 24 Hình II-14 Redux Model________________________________________ 25 Hình II-15 ReduxToolkit Slice, AsyncThunk ________________________ 26 Hình III-1 Hibernate: các hàm tương ứng sẽ có các anotation query và câu lệnh query tương ứng ________________________________________________ 29 Hình III-2 Ví dụ về việc sử dụng anotation _________________________ 30 Hình III-3 Cấu trúc file đồ án ____________________________________ 32 Hình IV-1 Trang ______________________________________________ 47 Hình IV-2 Trang quần áo _______________________________________ 48 Hình IV-3 Trang chưa sản phẩm phụ kiện __________________________ 48 Hình IV-4 ___________________________________________________ 48 Hình IV-5 Trang chi tiết sản phẩm ________________________________ 49 Hình IV-6 Trang đặt hàng tông ___________________________________ 50 Hình IV-7 Trang giỏ hàng đặt hàng _______________________________ 51 Hình IV-8 Trang đăng nhập _____________________________________ 51 Hình IV-9 Trang đăng ký _______________________________________ 52 Hình V-1 Kiến trúc áp dụng _____________________________________ 53 I. Thông tin nhóm BẢNG PHÂN CÔNG THỰC HIỆN ĐỒ ÁN MÔN HỌC Nguyễn Hoàng Thái Dương Nguyễn Âu Duy MSSV: 19521409 MSSV: 19521423 Xử lý front-end Xử lý back-end Tìm hiểu ReactJs Xử lý Database Tìm hiểu SpringBoot SV thực hiện 1 SV thực hiện 2 (Ký tên) (Ký tên) Nguyễn Hoàng Thái Dương Nguyễn Âu Duy 2. Tổng quan đề tài 2.1 Giới thiệu đề tài Với sự phát triển nhảy vọt của công nghệ thông tin hiện nay, Internet ngày càng giữ vai trò quan trọng trong các lĩnh vực khoa học kĩ thuật và đời sống. Internet là tập hợp kết nối giữa các máy tính, là một mạng máy tính toàn cầu mà bất kì ai 1 cũng có thể truy cập bằng latop, PC, các thiết bị di dộng, thiết bị gia dụng thông minh,….
Vì thế cùng với sự lớn mạnh của Internet thì hàng loạt các sản phẩm mang tính thương mại ra đời với quy mô từ nhỏ đến lớn ở các ngành nghề, lĩnh vực liên quan và phổ biến,thông dụng ở mọi lĩnh vực khác. Internet đã tạo ra một cuộc cách mạng trao đổi thông tin trong mọi lĩnh vực văn hóa, y tế, xã hội, giáo dục,… nhờ đó góp phần thúc đẩy sự phát triển cảu thế giới. Trong đó nổi bật là các sản phẩm, thiết bị thương mại điện tử mà mọi người đều có thể sử dụng dễ dàng và hữu ích. Việc mua bán bây giờ không chỉ thông qua xem hàng – mua hàng trực tiếp mà còn có thể giao dịch qua các trang Web thương mại điện tử một cách tiện lợi nhưng vẫn đảm bảo được sự uy tín, chất lượng từ sản phẩm mà các doanh nghiệp, cửa hàng, siêu thị, cá nhan… cung cấp cho khách hàng cũng như sự hỗ trợ và chính sách bán hàng.
Việc để tạo ra một trang Web bán hàng bắt mắt, tiện lợi cho người mua là một trong những vấn đề đang được quan tâm hàng đầu. Có rất nhiều cách để tạo ra một trang Web như thông qua các phần mềm thứ ba để tạo với những người thích thiết kế giao diện nhưng không có hiểu biết sâu rộng về lập trình hay lập trình với các ngôn ngữ, framework hỗ trợ phát triển ứng dụng Web : .NET, HTML-CSS, Javascript, Bootsrap, Vue.js, Angular… Trong đó nhóm đã chọn ReactJs cho phần thiết kế giao diện người dùng (front-end) và framework Java SpringBoot cho phần xử lý tác vụ logic, kết nối Database để xây dựng một ứng dụng Web bán hàng online.2 Nội dung đề tài Thông qua việc tìm hiểu về Reactjs và SpringBoot nhóm sẽ áp dụng để thiết kế ứng dụng web để có thể hiểu sâu và thành thạo các kiến thức đã tìm hiểu. 2 Việc sử dụng các package – tính năng – thư viện liên quan đến ReactJs và Spring Boot sẽ được trình bày chi tiết trong quá trình tìm hiểu cũng như thiết kế ứng dụng Web.3 Mục tiêu hướng tới • Việc tìm hiểu và áp dụng sẽ giúp các thành viên trong nhóm có cơ hội học hỏi, tiếp thu, mở rộng những kiến thức mới về các framework cũng như cách để xây dựng các ứng dụng từ framework với quá trình thế nào. Từ đó không chỉ giúp nhóm có thêm kinh nghiệm để thiết kế các ứng dụng khác liên quan đến Reactjs và SpringBoot mà còn có thể hỗ trợ cho công việc thực tập, làm việc trong tương lai.
• Ngoài ra nhóm còn muốn dùng những gì mình đã thu hoạch được đề có thể giúp những lập trình việc đang muốn tìm hiểu về cả hai framework này để có thể làm tài liệu tham khảo. Công nghệ sử dụng Những công nghệ, tool,framework liên quan mà nhóm đã sử dụng trong quá trình thực hiện: 3.1 Intellij Được phát hành lần đầu tiên vào năm 2001, IntelliJ IDEA là một môi trường phát triển tích hợp cho Windows, macOS và Linux. Nó chủ yếu được sử dụng để phát triển phần mềm bằng ngôn ngữ lập trình Java, nhưng cũng hỗ trợ các ngôn ngữ khác hoặc tự nhiên hoặc sử dụng một plugin. Nó cũng là cơ sở cho Hình I-1 Intellij Android Studio của Google, môi trường phát triển Logo 3 chính thức để tạo các ứng dụng Android.
Nhóm sử dụng cho việc code Back-end 3.2 Visual Studio Code Visual Studio Code là một trình soạn thảo mã nguồn được phát triển bởi Microsoft dành cho Windows, Linux và macOS. Nó hỗ trợ chức năng debug,đi kèm với Git, có chức năng nổi bật cú pháp ( syntax highlighting ), smart code , snippets, và cải tiến mã nguồn. Nó cũng cho phép tùy chỉnh, do đó, người dùng có thể thay đổi theme, phím tắt, và các tùy chọn khác. Hình I-2 VS code Nó miễn phí và là phần mềm mã nguồn mở theo giấy Logo phép MIT.
Nhóm sử dụng cho việc code Front-end.3 Postman Postman là một công cụ cho phép chúng ta thao tác với API, phổ biến nhất là REST. Postman hiện là một trong những công cụ phổ biến nhất được sử dụng trong thử nghiệm các API. Với Postman, ta có thể gọi Rest API mà không cần viết dòng code nào. Hình I-3 Postman Logo Postman hỗ trợ tất cả các phương thức HTTP (GET, POST, PUT, PATCH, DELETE, …).
Bên cạnh đó, nó còn cho phép lưu lại lịch sử các lần request, rất tiện cho việc sử dụng lại khi cần. Nhóm sử dụng Postman cho việc test API.4 Microsoft SQL Server SQL Server chính là một hệ quản trị dữ liệu quan hệ sử dụng câu lệnh SQL để trao đổi dữ liệu giữa máy cài SQL Server và máy Client. Một Relational Database Management System – RDBMS gồm có: databases, datase engine và các chương trình ứng dụng dùng để quản lý các bộ phận trong RDBMS và Hình I-4 SQL Server những dữ liệu khác. Logo Các thành cơ bản trong SQL Server gồm có: Reporting Services, Database Engine, Integration Services, Notification Services, Full Text Search Service, … Tất cả kết hợp với nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc phân tích và lưu trữ dữ liệu trở nên dễ dàng hơn.
Nhóm sử dụng CSDL SQL Server làm Database cho ứng dụng.5 Github GitHub là một hệ thống quản lý dự án và phiên bản code, hoạt động giống như một mạng xã hội cho lập trình viên. Các lập trình viên có thể clone lại mã nguồn từ một repository và Github chính là một dịch vụ máy chủ repository công cộng, Hình I-5 Github Logo mỗi người có thể tạo tài khoản trên đó để tạo ra các kho chứa của riêng mình để có thể làm việc. GitHub được coi là một mạng xã hội dành cho lập trình viên lớn nhất và dễ dùng nhất với các tính năng cốt lõi như: 5 Wiki, issue, thống kê, đổi tên project, project được đặt vào namespace là user. Watch project: theo dõi hoạt động của project của người khác.
Xem quá trình người ta phát triển phầm mềm thế nào, project phát triển ra sao Follow user: theo dõi hoạt động của người khác. Github giúp ta quản lý source code dễ dàng, tracking sự thay đổi version.