PHẦN MỞ ĐẦU 1. Tính cấp thiết của đề tài Việc phát triển website mạng xã hội không chỉ là một thách thức thú vị mà còn là dấu hiệu của sự cấp bách và quan trọng trong thời đại công nghệ ngày nay. Các website mạng xã hội chủ yếu đóng vai trò là cầu nối, tạo không gian trao đổi, chia sẻ thông tin giữa cộng đồng người dùng. Với sự phát triển của Internet, việc tạo ra các nền tảng mạng xã hội cho phép mọi người kết nối và tương tác một cách thuận tiện, góp phần làm phong phú thêm cộng đồng trực tuyến.
Vấn đề này tạo cơ hội cho phát triển kinh tế, kinh doanh. Các trang mạng xã hội thành công không chỉ thu hút người dùng mà còn tạo ra không gian quảng cáo, tiếp thị sẵn có cho doanh nghiệp. Các doanh nghiệp có thể sử dụng nền tảng này để mở rộng cơ sở khách hàng và cải thiện kết quả kinh doanh. Việc tạo ra một môi trường trực tuyến an toàn và tích cực, với những vấn đề các tin đồn và thông tin sai lệch, việc xây dựng một mạng xã hội chất lượng là rất quan trọng.
Điều này không chỉ giúp người dùng tránh xa những thông tin độc hại mà còn giúp xây dựng một cộng đồng trực tuyến năng động và có ý thức. Suy cho cùng, trong thế giới công nghệ ngày càng phát triển, đề tài website mạng xã hội không chỉ là một công trình nghiên cứu mà còn là sự đóng góp tích cực cho sự tiến bộ của xã hội. Chúng em mang đến những giải pháp sáng tạo để hỗ trợ các quá trình tương tác, giao tiếp và trao đổi thông tin trong cộng đồng một cách hiệu quả và bền vững. Mục tiêu của đề tài Trong đề tài lần này, nhóm chúng em tập trung nghiên cứu công nghệ Spring Boot và VueJs cũng như việc ứng dụng hiệu quả các công nghệ này trong việc xây dụng một trang web.
Từ đó, chúng em tiến hành áp dụng các công nghệ này để xây dựng một website mạng xã hội có đầy đủ các chức năng như sau: 25 PHẦN MỞ ĐẦU - Kết nối với bạn bè, người thân thông qua số điện thoại. - Đăng các bài viết tích hợp hình ảnh, video để có thể chia sẻ các khoảnh khắc trong cuộc sống. - Tương tác với những bài đăng của bạn bè một cách dễ dàng, thuận tiện. - Nhắn tin với bạn bè, hỗ trợ gọi video.
Nội dung nghiên cứu - Tìm hiểu RESTful API với công nghệ Spring Boot. - Tìm hiểu cách quản lý cơ sở dữ liệu trên MySQL. - Tìm hiểu xây dựng giao diện với framework VueJs. - Tìm hiểu về websocket để xây dựng ứng dụng phản ứng thời gian thực.
- Tìm hiểu Vercel để triển khai phần FrontEnd của website. - Tìm hiểu Railway để triển khai phần BackEnd của website. - Tìm hiểu Azure SQL để triển khai phần Database của website. - Tìm hiểu WebSocket để gửi thông báo cho người dùng khi có tin nhắn mới.
- Tìm hiểu WebRTC để tích hợp chức năng gọi video cho trang web. Phương pháp nghiên cứu Để thực hiện đề tài, nhóm đã sử dụng các phương pháp sau: - Phương pháp phân tích yêu cầu đề tài: phân tích các chức năng nghiệp vụ của các trang mạng xã hội lớn như Zalo, Facebook; tìm hiểu về nhu cầu thực tế của người dùng. - Phương pháp nghiên cứu tài liệu: tham gia các khóa học liên quan đến công nghệ; đọc document, đọc các bài viết liên quan, đọc các tài liệu tham khảo, xem video hướng dẫn về công nghệ. - Phương pháp chuyên gia: nhờ sự góp ý, giúp đỡ, tư vấn từ giảng viên hướng dẫn và các thầy cô trong khoa Công nghệ thông tin trường Đại học Sư phạm Kỹ thuật TP.
26 PHẦN MỞ ĐẦU 1. Ý nghĩa khoa học và thực tiễn Mục tiêu của đề tài là phát triển một mạng xã hội giúp mọi người kết nối, nhắn tin và chia sẻ các khoảnh khắc trong cuộc sống thông qua một trang web với giao diện thân thiện và dễ sử dụng. Nền tảng trực tuyến này sẽ là nơi người dùng có thể xây dựng và duy trì mối quan hệ với những người có cùng sở thích, nghề nghiệp, công việc hoặc đơn giản là giữ liên lạc với bạn bè và gia đình. 27 PHẦN NỘI DUNG - CHƯƠNG 1: CƠ SỞ LÝ THUYẾT PHẦN NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.
Giới thiệu về Spring Framework 1. Spring Framework là gì? Hình 1. Định nghĩa Spring Framework Spring Framework là một nền tảng phát triển ứng dụng Java mạnh mẽ và phổ biến. Nó cung cấp một mô hình lập trình và một tập hợp các thành phần để phát triển các ứng dụng di động, web, dịch vụ web và các ứng dụng doanh nghiệp Java.
Spring Framework giúp giải quyết nhiều vấn đề trong phát triển phần mềm, bao gồm quản lý vòng đời đối tượng, quản lý phụ thuộc, xử lý ngoại lệ, bảo mật và tích hợp dễ dàng với các công nghệ và thư viện khác. Các thành phần chính của Spring Framework - Inversion of Control (IoC): Spring Framework thực hiện mô hình IoC, nơi nó quản lý vòng đời và phụ thuộc của các đối tượng. Điều này giúp giảm sự ràng buộc tại thời điểm biên dịch và tạo điều kiện cho việc kiểm thử và tái sử dụng linh hoạt hơn. - Dependency Injection (DI): Spring hỗ trợ DI, một khía cạnh quan trọng của IoC.
DI cho phép các đối tượng nhận các phụ thuộc của chúng từ bên ngoài, thay vì tự tạo ra các phụ thuộc của mình. Điều này giúp tăng tính linh hoạt và tái sử dụng của mã. - Spring MVC: Là một phần của Spring Framework, Spring MVC (Model-View- Controller) cung cấp một cơ chế phát triển ứng dụng web linh hoạt. Nó cho phép 28 PHẦN NỘI DUNG - CHƯƠNG 1: CƠ SỞ LÝ THUYẾT phân tách logic ứng dụng thành các thành phần chính như mô hình dữ liệu, xử lý yêu cầu và hiển thị giao diện người dùng.
- Spring Boot: Spring Boot là một phần mở rộng của Spring Framework, tập trung vào việc giảm thiểu sự cấu hình và tăng tốc độ phát triển ứng dụng. Nó cung cấp các cấu hình mặc định thông minh và cung cấp một máy chủ ứng dụng nhúng để triển khai ứng dụng một cách dễ dàng. - Spring Data: Spring Data cung cấp một cách thuận tiện để tương tác với cơ sở dữ liệu. Nó tự động tạo ra mã SQL và cung cấp một lớp trừu tượng hóa cho phép truy vấn dữ liệu dễ dàng và linh hoạt.
- Spring Security: Đây là một mô-đun mạnh mẽ của Spring Framework, cung cấp các tính năng bảo mật cho ứng dụng. Spring Security hỗ trợ xác thực, ủy quyền và quản lý phiên làm việc. Giới thiệu về Spring Boot 1. Định nghĩa Spring Boot Hình 2.
Định nghĩa Spring Boot Spring Boot là phần mở rộng của Spring Framework, được thiết kế để giúp người phát triển xây dựng ứng dụng Java dễ dàng và nhanh chóng. Nó cung cấp một cách tiếp cận có cấu trúc và hiệu quả để phát triển các ứng dụng Java độc lập và tự chủ (standalone) bằng cách sử dụng Spring và các tiện ích có sẵn trong Spring. Spring Boot giảm độ phức tạp của việc cấu hình và triển khai ứng dụng bằng cách sử dụng các giả định mặc định và cấu hình tự động. Điều này giúp người phát triển tập trung vào việc viết mã nguồn chức năng thực sự của ứng dụng mà không mất nhiều thời gian để cấu hình và triển khai.
29 PHẦN NỘI DUNG - CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. Một số tính năng của Spring Boot - Embedded Server: Spring Boot đi kèm với các máy chủ nhúng như Tomcat, Jetty, hoặc Undertow, giúp triển khai ứng dụng một cách đơn giản mà không cần máy chủ bên ngoài. - Spring Boot Starter: Cung cấp các tập tin jar mà bạn có thể thêm vào dự án để tự động cấu hình các tính năng cụ thể, giảm bớt công việc cấu hình tốn thời gian. - Auto-Configuration: Spring Boot sử dụng cơ chế tự động cấu hình để xác định và cấu hình các bean dựa trên các thư viện có sẵn trong classpath của ứng dụng.
- Spring Boot Actuator: Cung cấp các endpoint để theo dõi và quản lý ứng dụng trong quá trình chạy. Lợi ích của việc sử dụng Spring Boot - Spring Boot tự động cấu hình các thành phần của ứng dụng dựa trên các quy ước và yêu cầu thông thương giúp ta tiết kiệm thời gian và công sức trong việc cấu hình. - Spring Boot tích hợp các máy chủ nhúng như Tomcat hoặc Jetty giúp ta triển khai ứng dụng 1 cách dễ dàng mà không cần cấu hình một máy chủ bên ngoài. - Spring Boot sử dụng công cụ quản lý Dependency như Maven hoặc Gradle giúp quản lý các Dependency một cách tự động, tránh việc xảy ra xung đột phiên bản của Dependency.
- Spring Boot tích hợp tốt với các công nghệ phổ biến như Hibernate, JPA, Spring Security, giúp ta có thể bắt đầu thực hiện dự án một cách nhanh chóng và dễ dàng hơn. - Spring Boot tích hợp tốt với các framework thực hiện Unit Test phổ biến như JUnit và Mockito, giúp thực hiện các Unit Test một cách dễ dàng và hiệu quả. - Spring Boot tối ưu hóa hiệu suất và khả năng mở rộng của ứng dụng Java do nó sử dụng các cấu hình mặc định tối ưu và cung cấp các công cụ hỗ trợ để tăng cường hiệu suất và mở rộng ứng dụng dễ dàng khi cần thiết. Giới thiệu về Spring Security 30 PHẦN NỘI DUNG - CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.
Định nghĩa Spring Security Hình 3. Định nghĩa Spring Security Spring Security là một phần của Spring Framework, được thiết kế để cung cấp các cơ chế bảo mật mạnh mẽ và linh hoạt cho ứng dụng Java. Nó giúp bảo vệ ứng dụng khỏi các mối đe dọa bảo mật bằng cách cung cấp các tính năng như xác thực (authentication), ủy quyền (authorization), và quản lý phiên làm việc (session management). Lợi ích của việc sử dụng Spring Security - Spring Security giúp ứng dụng đạt được một mức độ bảo mật cao, giảm nguy cơ bị tấn công và lộ thông tin quan trọng.
- Với các tính năng sẵn có và tích hợp chặt chẽ với Spring Framework, việc triển khai bảo mật trở nên nhanh chóng và dễ dàng. - Spring Security giúp quản lý quyền truy cập một cách linh hoạt và hiệu quả thông qua việc sử dụng các biểu thức điều kiện và các quy tắc ủy quyền. - Spring Security hỗ trợ nhiều phương thức xác thực khác nhau, từ xác thực cơ bản đến xác thực OAuth, giúp ứng dụng tương tác với nhiều hệ thống khác nhau một cách dễ dàng. Giới thiệu về Spring Data JPA 1.
Định nghĩa Spring Data JPA 31 PHẦN NỘI DUNG - CHƯƠNG 1: CƠ SỞ LÝ THUYẾT Hình 4.