Tìm hiểu Spring Boot và Xây Dựng Trang Web Mạng Xã Hội - Đồ án tốt nghiệp

Hướng dẫn xây dựng web mạng xã hội với Spring Boot từ A-Z. Tìm hiểu cách tạo ứng dụng mạng xã hội hoàn chỉnh với các tính năng xác thực, bài viết, bình luận.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2023

150
4
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CẢM ƠN

ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP

DANH MỤC HÌNH ẢNH

DANH MỤC BẢNG

PHẦN MỞ ĐẦU

1.1. Tính cấp thiết của đề tài:

1.2. Mục đích của đề tài:

1.3. Phương pháp thực hiện:

1. CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1. Java Spring boot:

1.1.1. Giới thiệu về Java Spring Boot:

1.1.1.1. Spring Framework:
1.1.1.2. Spring Boot:

2. CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH HIỆN TRẠNG

2.1. Khảo sát hiện trạng:

2.2. Xác định yêu cầu:

3. CHƯƠNG 3: MÔ HÌNH HOÁ YÊU CẦU

3.1. Mô hình kiến trúc hệ thống:

3.2. Đặc tả Usecase:

4. CHƯƠNG 4: THIẾT KẾ PHẦN MỀM

4.1. Lược đồ tuần tự:

4.2. Cơ sở dữ liệu:

4.3. Cơ sở dữ liệu trên Fire base:

5. CHƯƠNG 5: THIẾT KẾ GIAO DIỆN XỬ LÝ

5.1. Giao diện trang Đăng nhập:

5.2. Giao diện trang Đăng ký:

5.3. Giao diện trang chủ:

5.4. Giao diện trang chủ có Sidebar:

5.5. Giao diện navbar:

5.6. Giao diện bài viết:

5.7. Giao diện chi tiết bài viết:

5.8. Giao diện thả cảm xúc:

5.9. Giao diện trang Story:

5.10. Giao diện trang cá nhân:

5.11. Giao diện trang cá nhân không có bài viết:

5.12. Giao diện trang cá nhân private:

5.13. Giao diện trang chỉnh sửa thông tin:

5.14. Giao diện ảnh đại diện:

5.15. Giao diện tìm kiếm:

5.16. Giao diện đăng bài:

5.17. Giao diện nhắn tin:

6. CHƯƠNG 6: CÀI ĐẶT VÀ KIỂM THỬ ỨNG DỤNG

6.1. Kiểm thử ứng dụng:

PHẦN KẾT LUẬN

1.1. NHỮNG KẾT QUẢ ĐẠT ĐƯỢC:

1.1.1. Về kiến thức:

1.1.2. Về kinh nghiệm:

1.2. ƯU ĐIỂM VÀ NHƯỢC ĐIỂM:

1.2.1. Nhược điểm:

1.3. HƯỚNG PHÁT TRIỂN:

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Spring Boot Giới Thiệu và Tổng Quan Web Mạng Xã Hội

Ngày nay, mạng xã hội đóng vai trò thiết yếu trong cuộc sống. Nhu cầu kết nối, chia sẻ thông tin và giao lưu trực tuyến ngày càng tăng cao. Việc xây dựng web mạng xã hội trở thành một lĩnh vực hấp dẫn, đòi hỏi công nghệ mạnh mẽ và linh hoạt. Spring Boot nổi lên như một giải pháp tối ưu cho phát triển ứng dụng web dạng này. Spring Boot đơn giản hóa quá trình cấu hình, cung cấp nhiều tính năng mạnh mẽ giúp lập trình web nhanh chóng và hiệu quả. Sử dụng Java framework này, các nhà phát triển có thể tập trung vào việc xây dựng logic nghiệp vụ thay vì tốn thời gian cho các cấu hình phức tạp. Việc sử dụng Spring Boot cho phép xây dựng các REST API một cách dễ dàng, hỗ trợ tốt cho các kiến trúc Microservices. Điều này đặc biệt quan trọng đối với các ứng dụng Web mạng xã hội cần khả năng mở rộng và bảo trì cao. Spring Boot cũng tích hợp tốt với nhiều loại Database như MySQL, PostgreSQL, và MongoDB, đáp ứng đa dạng yêu cầu lưu trữ dữ liệu. Vấn đề Authentication, AuthorizationSecurity cũng được Spring Security hỗ trợ mạnh mẽ, đảm bảo an toàn cho hệ thống. Quan trọng hơn, Spring Boot có cộng đồng hỗ trợ lớn và tài liệu phong phú, giúp các nhà phát triển giải quyết các vấn đề một cách nhanh chóng. Theo đồ án tốt nghiệp từ Đại học Sư phạm Kỹ thuật TP.HCM, Spring Boot cung cấp các tính năng RAD (Rapid Application Development), giúp phát triển ứng dụng nhanh chóng và hiệu quả.

1.1. Ưu Điểm Vượt Trội của Spring Boot trong Phát Triển Web

Spring Boot mang lại nhiều lợi ích rõ rệt trong việc xây dựng web. Khả năng tự động cấu hình giúp giảm thiểu công sức và thời gian thiết lập ban đầu. Các dependency starter đơn giản hóa việc quản lý thư viện, tránh các xung đột phiên bản. Việc nhúng server trực tiếp vào ứng dụng giúp việc triển khai trở nên dễ dàng hơn, đặc biệt trên môi trường Cloud như AWS, Azure hay Google Cloud. Spring Boot cũng hỗ trợ các công cụ Continuous IntegrationContinuous Deployment (CI/CD), giúp tự động hóa quy trình kiểm thử và triển khai. Testing, cả Unit TestingIntegration Testing, cũng được hỗ trợ tốt, đảm bảo chất lượng code. Hơn nữa, Dependency InjectionObject-Relational Mapping (ORM) thông qua Data JPA giúp code trở nên dễ bảo trì và mở rộng hơn. Với Spring Boot, việc lập trình web trở nên dễ dàng hơn bao giờ hết, cho phép tập trung vào các tính năng quan trọng của ứng dụng Web mạng xã hội. Sử dụng Thymeleaf hoặc Freemarker giúp xây dựng Frontend một cách hiệu quả. Khả năng tạo API Documentation (Swagger) giúp các nhà phát triển dễ dàng làm việc với các REST API.

1.2. Kiến Trúc Microservices và Ứng Dụng trong Mạng Xã Hội

Kiến trúc Microservices là một cách tiếp cận hiện đại trong phát triển ứng dụng web, đặc biệt phù hợp với các ứng dụng Web mạng xã hội có quy mô lớn và phức tạp. Thay vì xây dựng một ứng dụng monolithic duy nhất, các Microservices chia ứng dụng thành các dịch vụ nhỏ, độc lập, có thể triển khai và mở rộng riêng biệt. Mỗi Microservice có thể chịu trách nhiệm cho một chức năng cụ thể, ví dụ như quản lý User profiles, xử lý Friend requests, hoặc hiển thị Newsfeed. Ưu điểm của Microservices là khả năng chịu tải cao, độ tin cậy tốt, và dễ dàng bảo trì. Khi một Microservice gặp sự cố, các Microservice khác vẫn hoạt động bình thường. Việc nâng cấp và triển khai các Microservice cũng không ảnh hưởng đến toàn bộ hệ thống. Spring Boot là một lựa chọn lý tưởng để xây dựng các Microservices nhờ vào khả năng cấu hình đơn giản, hiệu năng cao, và tích hợp tốt với các công cụ quản lý Microservices. Các tính năng như Websockets cho Real-time communication, Notifications, và Messaging (RabbitMQ, Kafka) cũng được hỗ trợ mạnh mẽ, giúp xây dựng các tính năng tương tác thời gian thực cho Web mạng xã hội.

II. Thách Thức Xây Dựng Web Mạng Xã Hội và Giải Pháp Spring Boot

Xây dựng web mạng xã hội không phải là một nhiệm vụ dễ dàng. Có nhiều thách thức đặt ra, từ việc thiết kế cơ sở dữ liệu, xây dựng REST API, đảm bảo Security, đến tối ưu hiệu năng và khả năng mở rộng. Một trong những thách thức lớn nhất là quản lý lượng dữ liệu khổng lồ và đảm bảo tốc độ truy xuất nhanh chóng. Spring Boot với Data JPA và các công cụ Database như MySQL, PostgreSQL, MongoDB cung cấp các giải pháp hiệu quả cho việc quản lý dữ liệu. Việc thiết kế Database Design phù hợp là rất quan trọng để đảm bảo Performance OptimizationScalability. Ngoài ra, việc đảm bảo Security cho hệ thống cũng là một ưu tiên hàng đầu. Spring Security cung cấp các cơ chế Authentication, Authorization, OAuth2, và JSON Web Token (JWT) để bảo vệ hệ thống khỏi các cuộc tấn công. Một thách thức khác là xây dựng giao diện người dùng (UI) thân thiện và dễ sử dụng. Spring Boot tích hợp tốt với các Frontend framework như React, Angular, và Vue.js, cho phép xây dựng các giao diện người dùng hiện đại và tương tác cao. Theo kinh nghiệm của các nhà phát triển, việc chọn đúng công nghệ và kiến trúc phù hợp là chìa khóa để vượt qua các thách thức này.

2.1. Thiết Kế Cơ Sở Dữ Liệu Tối Ưu cho Ứng Dụng Mạng Xã Hội

Thiết kế Database Design hiệu quả là yếu tố then chốt để đảm bảo hiệu năng và khả năng mở rộng của ứng dụng Web mạng xã hội. Các bảng dữ liệu cần được thiết kế sao cho tối ưu hóa việc truy vấn và cập nhật dữ liệu. Ví dụ, bảng User profiles cần chứa các thông tin cơ bản như tên, email, ảnh đại diện, và các thông tin cá nhân khác. Bảng Posts cần chứa nội dung bài viết, thời gian đăng, và thông tin về người đăng. Bảng Comments cần chứa nội dung bình luận, thời gian bình luận, và thông tin về người bình luận. Các bảng Likes, Shares, và Newsfeed cũng cần được thiết kế cẩn thận để đảm bảo tốc độ truy xuất nhanh chóng. Việc sử dụng các chỉ mục (index) phù hợp cũng là rất quan trọng để tăng tốc độ truy vấn. Ngoài ra, việc lựa chọn loại Database phù hợp cũng là một yếu tố quan trọng. MySQLPostgreSQL là các lựa chọn phổ biến cho các ứng dụng Web mạng xã hội có quy mô vừa và lớn. MongoDB, một cơ sở dữ liệu NoSQL, có thể phù hợp cho các ứng dụng có yêu cầu linh hoạt về cấu trúc dữ liệu.

2.2. Bảo Mật Ứng Dụng Web Mạng Xã Hội Với Spring Security

Security là một vấn đề quan trọng hàng đầu trong xây dựng web mạng xã hội. Việc bảo vệ thông tin cá nhân của người dùng, ngăn chặn các cuộc tấn công, và đảm bảo tính toàn vẹn của dữ liệu là rất quan trọng. Spring Security cung cấp các cơ chế mạnh mẽ để bảo vệ ứng dụng khỏi các mối đe dọa. Các tính năng như Authentication (xác thực người dùng), Authorization (phân quyền truy cập), OAuth2 (ủy quyền truy cập), và JSON Web Token (JWT) (xác thực dựa trên token) giúp xây dựng một hệ thống bảo mật vững chắc. Việc sử dụng Role-based access control (RBAC) giúp quản lý quyền truy cập của người dùng một cách hiệu quả. Spring Security cũng cung cấp các biện pháp bảo vệ chống lại các cuộc tấn công phổ biến như Cross-Site Scripting (XSS) và Cross-Site Request Forgery (CSRF). Việc cấu hình Spring Security đúng cách là rất quan trọng để đảm bảo hiệu quả bảo mật. Các nhà phát triển cần hiểu rõ các cơ chế bảo mật và áp dụng chúng một cách thích hợp.

III. Hướng Dẫn Xây Dựng REST API cho Web Mạng Xã Hội Với Spring

REST API là giao diện quan trọng để FrontendBackend giao tiếp với nhau. Spring Boot giúp xây dựng REST API một cách dễ dàng. Đầu tiên, cần định nghĩa các endpoint (điểm cuối) cho các chức năng khác nhau của ứng dụng. Ví dụ, có thể có các endpoint để lấy thông tin người dùng, tạo bài viết, bình luận, và gửi tin nhắn. Sau đó, sử dụng các annotation của Spring MVC như @RestController, @RequestMapping, @GetMapping, @PostMapping, @PutMapping, và @DeleteMapping để định nghĩa các endpoint và xử lý các request (yêu cầu). Việc sử dụng các annotation như @PathVariable@RequestBody giúp trích xuất dữ liệu từ URL và body của request. Spring Boot cũng hỗ trợ việc trả về dữ liệu dưới dạng JSON một cách tự động. Việc sử dụng API Documentation (Swagger) giúp ghi lại các endpoint và tham số của API, giúp các nhà phát triển dễ dàng làm việc với API. Theo các chuyên gia, một REST API tốt cần tuân thủ các nguyên tắc RESTful, dễ sử dụng, và có hiệu năng cao.

3.1. Thiết Kế REST API Chuẩn RESTful cho Ứng Dụng Mạng Xã Hội

Thiết kế REST API theo chuẩn RESTful giúp đảm bảo tính nhất quán, dễ hiểu, và dễ bảo trì của API. Các nguyên tắc RESTful bao gồm sử dụng các HTTP method (GET, POST, PUT, DELETE) đúng mục đích, sử dụng các URL có ý nghĩa, và trả về các HTTP status code phù hợp. Ví dụ, sử dụng GET để lấy thông tin, POST để tạo mới, PUT để cập nhật, và DELETE để xóa. Sử dụng các URL như /users/{id} để lấy thông tin người dùng có ID là {id}. Trả về status code 200 OK khi thành công, 201 Created khi tạo mới thành công, 400 Bad Request khi request không hợp lệ, 404 Not Found khi không tìm thấy tài nguyên, và 500 Internal Server Error khi có lỗi xảy ra trên server. Việc tuân thủ các nguyên tắc RESTful giúp REST API trở nên dễ sử dụng và dễ tích hợp với các ứng dụng khác. Các nhà phát triển nên dành thời gian để tìm hiểu và áp dụng các nguyên tắc này.

3.2. Sử Dụng Swagger Để Tạo Tài Liệu API Tự Động Cho Ứng Dụng

API Documentation (Swagger) là một công cụ mạnh mẽ để tạo tài liệu API tự động. Swagger giúp các nhà phát triển dễ dàng tìm hiểu và sử dụng các REST API. Swagger có thể tự động tạo tài liệu từ code bằng cách sử dụng các annotation. Tài liệu Swagger bao gồm thông tin về các endpoint, tham số, kiểu dữ liệu, và các ví dụ về request và response. Swagger cũng cung cấp giao diện người dùng (UI) để thử nghiệm các API. Việc sử dụng Swagger giúp giảm thiểu công sức viết tài liệu API thủ công và đảm bảo tính chính xác và cập nhật của tài liệu. Các nhà phát triển nên sử dụng Swagger để tạo tài liệu API cho ứng dụng Web mạng xã hội của mình. Việc có tài liệu API tốt giúp tăng khả năng sử dụng và tích hợp của API.

IV. Tích Hợp Frontend Với React Angular Vue

Frontend đóng vai trò quan trọng trong việc cung cấp trải nghiệm người dùng tốt. Spring Boot có thể tích hợp tốt với các Frontend framework phổ biến như React, Angular, và Vue.js. Việc sử dụng REST API giúp Frontend giao tiếp với Backend để lấy và cập nhật dữ liệu. Mỗi framework có những ưu và nhược điểm riêng. React nổi bật với Virtual DOM và component-based architecture. Angular cung cấp một framework đầy đủ tính năng với Dependency Injection và TypeScript. Vue.js là một framework nhẹ nhàng, dễ học, và linh hoạt. Theo kinh nghiệm của các nhà phát triển, việc chọn framework phù hợp phụ thuộc vào yêu cầu cụ thể của dự án và kinh nghiệm của đội ngũ phát triển.

4.1. Xây Dựng Giao Diện Người Dùng UI Với React và Spring Boot

React là một thư viện JavaScript phổ biến để xây dựng giao diện người dùng (UI). React sử dụng Virtual DOM để tăng tốc độ render và component-based architecture để tái sử dụng code. Việc tích hợp React với Spring Boot thông qua REST API giúp xây dựng các ứng dụng Web mạng xã hội có hiệu năng cao và tương tác cao. React có thể sử dụng các thư viện như Axios hoặc Fetch API để gửi các request đến Spring Boot API. Spring Boot có thể trả về dữ liệu dưới dạng JSON để React hiển thị. Việc sử dụng các công cụ build như Webpack giúp đóng gói code ReactSpring Boot thành các file tĩnh để triển khai.

4.2. Kết Hợp Angular Với Spring Boot Để Phát Triển Ứng Dụng Web

Angular là một framework JavaScript đầy đủ tính năng để xây dựng giao diện người dùng (UI). Angular sử dụng Dependency Injection và TypeScript để tăng tính bảo trì và khả năng mở rộng của code. Việc tích hợp Angular với Spring Boot thông qua REST API giúp xây dựng các ứng dụng Web mạng xã hội có cấu trúc rõ ràng và dễ bảo trì. Angular có thể sử dụng HttpClient để gửi các request đến Spring Boot API. Spring Boot có thể trả về dữ liệu dưới dạng JSON để Angular hiển thị. Angular CLI giúp tạo project Angular và build code một cách dễ dàng.

V. Ứng Dụng Thực Tế Spring Boot Phát Triển Web Mạng Xã Hội

Spring Boot được ứng dụng rộng rãi trong việc phát triển ứng dụng web. Nhiều dự án mã nguồn mở và thương mại đã sử dụng Spring Boot để xây dựng các ứng dụng Web mạng xã hội có quy mô lớn và phức tạp. Các ví dụ bao gồm các ứng dụng quản lý cộng đồng, các ứng dụng chia sẻ nội dung, và các ứng dụng kết nối người dùng. Spring Boot cung cấp các công cụ và thư viện cần thiết để xây dựng các tính năng như User profiles, Friend requests, Posts, Comments, Likes, Shares, Newsfeed, và Search functionality. Việc sử dụng Spring Boot giúp giảm thiểu thời gian phát triển và tăng tính ổn định của ứng dụng.

5.1. Triển Khai Spring Boot trên Nền Tảng Cloud AWS Azure Google Cloud

Deployment là một bước quan trọng trong quá trình phát triển ứng dụng web. Spring Boot có thể được triển khai trên nhiều nền tảng Cloud như AWS, Azure, và Google Cloud. Việc sử dụng các dịch vụ Cloud giúp tăng khả năng mở rộng, độ tin cậy, và giảm chi phí vận hành. Spring Boot hỗ trợ các công cụ để tạo các file JAR hoặc WAR có thể triển khai trên các nền tảng Cloud. Việc sử dụng các dịch vụ như Docker và Kubernetes giúp tự động hóa quy trình triển khai và quản lý ứng dụng.

5.2. Tối Ưu Hiệu Năng và Khả Năng Mở Rộng Cho Web Mạng Xã Hội

Performance OptimizationScalability là các yếu tố quan trọng để đảm bảo ứng dụng Web mạng xã hội có thể xử lý lượng truy cập lớn và đáp ứng nhu cầu của người dùng. Spring Boot cung cấp các công cụ và kỹ thuật để tối ưu hiệu năng và khả năng mở rộng. Các kỹ thuật như caching, load balancing, và database sharding giúp tăng tốc độ truy xuất dữ liệu và phân phối tải trên nhiều server. Việc sử dụng các công cụ monitoring và profiling giúp xác định các bottleneck và tối ưu code. Việc thiết kế kiến trúc Microservices cũng giúp tăng khả năng mở rộng của ứng dụng.

VI. Kết Luận và Hướng Phát Triển Web Mạng Xã Hội Dùng Spring Boot

Spring Boot là một lựa chọn lý tưởng cho việc xây dựng web mạng xã hội. Spring Boot cung cấp các công cụ và thư viện cần thiết để xây dựng các ứng dụng có quy mô lớn và phức tạp. Việc sử dụng Spring Boot giúp giảm thiểu thời gian phát triển, tăng tính ổn định, và dễ dàng bảo trì. Trong tương lai, Spring Boot sẽ tiếp tục phát triển và cung cấp các tính năng mới để đáp ứng nhu cầu ngày càng tăng của các nhà phát triển. Các hướng phát triển tiềm năng bao gồm tích hợp tốt hơn với các công nghệ Frontend mới, hỗ trợ tốt hơn cho các kiến trúc Microservices, và cung cấp các công cụ AI để cá nhân hóa trải nghiệm người dùng.

6.1. Tương Lai Của Spring Boot Trong Phát Triển Ứng Dụng Web

Tương lai của Spring Boot rất hứa hẹn. Với sự phát triển nhanh chóng của công nghệ, Spring Boot sẽ tiếp tục được cải tiến và bổ sung các tính năng mới để đáp ứng nhu cầu của các nhà phát triển. Các xu hướng phát triển tiềm năng bao gồm tích hợp tốt hơn với các công nghệ Frontend mới như WebAssembly, hỗ trợ tốt hơn cho các kiến trúc Microservices với các công cụ quản lý container như Docker và Kubernetes, và cung cấp các công cụ AI để cá nhân hóa trải nghiệm người dùng. Spring Boot cũng sẽ tiếp tục tập trung vào việc đơn giản hóa quá trình phát triển và tăng năng suất cho các nhà phát triển.

6.2. Các Công Nghệ Hỗ Trợ Kết Hợp Với Spring Boot Để Tạo Mạng Xã Hội

Ngoài Spring Boot, có nhiều công nghệ khác có thể kết hợp để tạo ra một ứng dụng Web mạng xã hội hoàn chỉnh. Các công nghệ Frontend như React, Angular, và Vue.js giúp xây dựng giao diện người dùng (UI) thân thiện và tương tác cao. Các cơ sở dữ liệu như MySQL, PostgreSQL, và MongoDB giúp lưu trữ và quản lý dữ liệu. Các công cụ Cloud như AWS, Azure, và Google Cloud giúp triển khai và mở rộng ứng dụng. Các công cụ Messaging như RabbitMQ và Kafka giúp xây dựng các tính năng tương tác thời gian thực. Việc lựa chọn các công nghệ phù hợp phụ thuộc vào yêu cầu cụ thể của dự án và kinh nghiệm của đội ngũ phát triển.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI từ nội dung tài liệu gốc; tài liệu do người dùng đóng góp và được kiểm duyệt trước khi xuất bản. Báo lỗi nội dung.

20/09/2025
Tìm hiểu spring boot và xây dựng trang web mạng xã hội

Trích đoạn nội dung tài liệu

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. Java Spring boot: Hình 1.1: Logo Spring Boot [1] 1. Giới thiệu về Java Spring Boot: 1. Spring Framework: Spring là một framework phát triển các ứng dụng bằng ngôn ngữ Java được sử dụng rộng rãi và phổ biến, nó giúp tạo các ứng dụng đơn giản và nhanh chóng, nhưng có hiệu năng cao, dễ sử dụng.

Trên thực tế, Spring framework là tập hợp gồm rất nhiều các dự án nhỏ khác nhau như: Spring MVC (sử dụng để xây dựng các ứng dụng trên nền tảng web), Spring Data, Spring Boot,…Để phát triển một ứng dụng web cơ bản sử dụng Spring framework, bạn cần trải qua ít nhất 5 công đoạn sau: ● Tạo một project sử dụng Maven với các dependency cần thiết. ● Tạo một tập tin web đuôi (.xml) để khai báo DispatcherServlet (thuộc Spring MVC). ● Một tập tin có cấu hình của Spring MVC. 19 ● Trả về một class Controller khi có request đến.

● Cuối cùng là phải có một web server phục vụ triển khai ứng dụng lên chạy. Spring Framework được xây dựng dựa trên 2 nguyên tắc design chính là: Dependency Injection và Aspect Oriented Programming. Những tính năng core (cốt lõi) của Spring có thể được sử dụng để phát triển Java Desktop, ứng dụng mobile, Java Web. Mục tiêu chính của Spring là giúp phát triển các ứng dụng J2EE một cách dễ dàng hơn dựa trên mô hình sử dụng POJO (Plain Old Java Object).2: Kiến trúc Spring Framework [1] 1.

Spring Boot: Spring Boot là một module của Spring Framework, cung cấp các tính năng RAD (Rapid Application Development) – phát triển ứng dụng nhanh. Nó giúp cho các lập trình 20 viên chúng ta đơn giản hóa quá trình lập trình một ứng dụng với Spring, chỉ tập trung vào việc phát triển business cho ứng dụng. Spring Boot dùng để tạo các ứng dụng độc lập dựa trên Spring. Nó không yêu cầu phải cấu hình XML.

Nó là một chuẩn cho cấu hình thiết kế phần mềm, tăng cao năng xuất cho developer.3: Spring boot flow architecture [1] Các đặc điểm của Spring Boot: ● SpringApplication: SpringApplication là một class giúp khởi chạy các ứng dụng từ hàm main thuận tiện. Để bắt đầu ứng dụng, bạn chỉ cần gọi các method run. ● Profiles: Spring Boot Profiles sẽ cung cấp một cách phân chia các cấu hình cho từng môi trường. Các annotation là @Component hoặc @Configuration có thể sẽ được đánh dấu profiles để giới hạn thời điểm hoặc môi trường sẽ được tải lên.

● Externalized Configuration: Externalized Configuration cho phép bạn có khả năng cấu hình được từ bên ngoài. Vì vậy, một ứng dụng được xây dựng có thể được vận hành và hoạt động trên nhiều môi trường khác nhau. Để thực hiện Externalized 21 Configuration bạn có thể sử dụng các file properties, YAML, các tham số command line hay các biến môi trường. ● Logging: Spring Boot sử dụng common logging cho tất cả các chức năng log nội bộ.

Các dependency logging được quản lý mặc định, chúng ta không nên cần sửa dependency logging nếu không có yêu cầu tùy biến (customization) thực sự cần. Ưu điểm: Spring có những ưu điểm sau: ● Hội tụ đầy đủ các tính năng của Spring framework. ● Đơn giản hóa cấu hình và xây dựng được các ứng dụng độc lập có khả năng chạy bằng java-jar nhờ các dependency starter. ● Dễ dàng deploy vì các ứng dụng server được nhúng trực tiếp vào ứng dụng để tránh những khó khăn khi triển khai lên môi trường production mà không cần thiết phải tải file WAR.

● Cấu hình ít, tự động được hỗ trợ bất cứ khi nào cho chức năng spring như tăng năng suất, giảm thời gian viết code và không yêu cầu XML config. ● Cung cấp nhiều plugin, số liệu, cấu hình ứng dụng từ bên ngoài. Giới thiệu về Reactjs: ReactJS là một thư viện JavaScript mã nguồn mở được phát triển bởi Facebook, ra mắt vào năm 2013 với mục đích để xây dựng giao diện người dùng. Nó được sử dụng rộng rãi để xây dựng các trang web SPA (Single Page Application) và các ứng dụng trên nền tảng di động.

Nó rất dễ sử dụng và cho phép người dùng có thể tạo các component UI có thể tái sử dụng, dễ dàng hơn bằng HTML-style code đơn giản. Nó là một trong những tính năng tốt và dễ sử dụng.5: Giới thiệu Reactjs [2] ReactJS có các tính năng hết sức nổi bật bao gồm: ● JSX: viết tắt của JavaScript extension, nó là React extension , giúp cho việc thay đổi cây DOM Components: Một trang web được xây dựng bằng ReactJS là một sự kết hợp nhiều component lại với nhau chứ không phải chung một Template như bình thường. Các component cũng như các hàm JavaScript bình thường, giúp tạo ra các code dễ dàng bằng cách tách các logic ra thành các đoạn code độc lập có thể tái sử dụng. Chúng ta có thể sử dụng component dưới dạng function hoặc class, ngoài ra các component còn có state và props.

● Virtual DOM: ReactJS tạo một thứ gọi là Virtual DOM (DOM ảo). Đúng như tên gọi, nó là một copy của DOM thật trên trang web đó. ReactJS dùng những DOM ảo đó để tìm đúng những DOM thật cần được cập nhật khi có bất kỳ sự kiện nào làm các thành phần bên trong nó thay đổi. ● Javascript Expressions: Biểu thức JS có thể sử dụng trong file .js bằng cách sử dụng cặp dấu ngoặc nhọn “{}”.

Ưu điểm: Reactjs có những ưu điểm sau: 24 ● Vì ReactJS sử dụng DOM ảo để cache cấu trúc dữ liệu trong bộ nhớ và chỉ những thay đổi cuối cùng mới được cập nhật vào trong DOM trình duyệt. Điều này làm cho ứng dụng trở nên nhanh hơn. ● Bạn có thể tạo các component theo từng chức năng mà bạn muốn bằng cách sử dụng tính năng react component. Các component này có thể tái sử dụng theo nhu cầu của bạn, đồng thời việc tạo các component theo từng chức năng cũng giúp cho việc bảo trì sau này trở nên dễ dàng hơn.

● ReactJS là một opensource, vì vậy cũng rất dễ cho những bạn mới bắt đầu tìm hiểu nó. ● Trong những năm gần đây, ReactJS đang trở nên phổ biến hơn và được duy trì bởi Facebook và Instagram. Ngoài ra nó cũng được sử dụng bởi các công ty nổi tiếng như Apple, Netflix, … ● Facebook vẫn đang duy trì, phát triển, và cho ra những thay đổi mới. Vì thế bạn cứ yên tâm sử dụng ReactJS cho những dự án của bạn hoặc những dự án dành do doanh nghiệp.

● ReactJS có thể được sử dụng để xây dựng giao diện người dùng cho cả các ứng dụng dành cho máy tính và các ứng dụng di động. ● Dễ dàng cho việc test và debug, vì hầu hết các code đều được thực hiện bằng JavaScript chứ không phải bằng HTML. Giới thiệu về Firebase: Firebase là một nền tảng được phát triển bởi Google được sử dụng để phát triển các ứng dụng di động và các website bao gồm các API vô cùng đơn giản và rất mạnh giúp chúng ta xây dựng các hệ thống không cần tới Backend. Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây – cloud cùng với hệ thống máy chủ vô cùng mạnh mẽ của Google.

Firebase storage: Hình 1. Firebasse real-time database: Firebase realtime database là một cơ sở dữ liệu thời gian thực, NoSQL được lưu trữ đám mây cho phép bạn lưu trữ và đồng bộ dữ liệu. Dữ liệu được lưu trữ dưới dạng cây Json, và được đồng bộ theo thời gian thực đối với mọi kết nối. Cả một cơ sở dữ liệu là một cây json lớn, với độ trễ thấp, Firebase realtime database cho phép bạn xây dựng các ứng dụng cần độ realtime như app chat, hay game online… 27 Hình 1.8: Firebase real-time database [3] Các khả năng chính của Realtime Database: ● Realtime: Firebase Realtime Database sử dụng đồng bộ dữ liệu mối khi dữ liệu có thay đổi, mọi thiết bị được kết nối sẽ nhận được thay đổi trong vài mili giây.

● Offline: Khi người dùng ngoại tuyến, dữ liệu sẽ được lưu trên bộ nhớ cache của thiết bị và tự động đồng bộ khi bạn trực tuyến. Tất cả là tự động ● Accessible from Client Devices: Firebase Realtime Database có thể truy cập từ một thiết bị mobile hoặc trình duyệt web. Nó không cần một ứng dụng server nào cả. Bảo mật và xác thực dữ liệu có thể thông qua các Rule bảo mật của Firebase Realtime Database, các rule được thực thi khi dữ liệu được đọc hoặc ghi.9: Firebase gửi dữ liệu tới client [3] 1.

Ưu điểm: Firebase có những ưu điểm sau: ● Triển khai ứng dụng nhanh chóng: Bởi không phải quan tâm đến phần backend cùng các API tốt, hỗ trợ đa nền tảng, Firebase tiết kiệm rất nhiều thời gian quản lý và đồng bộ tất cả dữ liệu cho người dùng. Song song đó, nó còn cung cấp hosting và hỗ trợ xác thực thông tin khách hàng khiến việc triển khai ứng dụng nhanh chóng hơn. ● Bảo mật: Hoạt động trên nền tảng đám mây cloud, sử dụng kết nối thông qua giao thức bảo mật SSL và cho phép phân quyền người dùng cơ sở dữ liệu bằng Javascript, các đặc điểm này của Firebase giúp nâng cao độ bảo mật cho các ứng dụng. ● Sự ổn định: Hầu hết các ứng dụng trên nền tảng Firebase luôn hoạt động ổn định vì chúng được viết dựa trên nền tảng cloud cung cấp bởi Google.

Hơn nữa, nhờ Firebase mà việc nâng cấp hay bảo trì Server cũng diễn ra khá đơn giản mà không cần phải dừng lại. Colaborative filtering là gì? [9] Hình 1.10: Collaborative filtering algorithm [4] Collaborative filtering là thuật toán lọc tương tác, nó dựa trên các hoạt động của các người dùng khác nhau trên cùng một đối tượng, hoặc tương tác giữa các người dùng để từ đó suy ra mức độ quan tâm của các người dùng với đối tượng đó hoặc giữa các người dùng với nhau. Đầu vào của thuật toán là một ma trận tiện ích (ultility matrix) chứa giá trị rating của các cặp (user, item). Mỗi cột là các rating mà một user đã rate và mỗi dòng là các rating của một item được rate.

Có 2 phương pháp chính được sử dụng trong collaborative filtering bao gồm: Neighborhood-based collaborative Filtering và Matrix Fractorization. Neighborhood-based collaborative Filtering: [10] Hình 1.11: Neighborhood-based collaborative Filtering [4] Neighborhood-based Collaborative Filtering: Phương pháp gợi ý các items dựa trên sự tương quan (similarity) giữa các users và/hoặc items. Có thể hiểu rằng đây là cách gợi ý tới một user dựa trên những users có hành vi tương tự. Phương pháp này được chia thành 2 hướng nhỏ, là User-User Collaborative Filtering (uuCF) và Item-Item Collaborative Filtering (iiCF) - uuCF: Tư tưởng của hướng tiếp cận này là tìm ra những nhóm user tương tự nhau.

Từ đó, dự đoán mức độ yêu thích của một user dựa trên những users khác cùng nhóm.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ