Khởi đầu, chức năng chính và kiến trúc kỹ thuật của trang mạng "Bạn Bè Blog" (phiên bản v1) - win 789 club

| May 6, 2025 min read

Ngày 03 tháng 04 năm 2024
Lĩnh vực: Công nghệ thông tin

Vào tháng 7 năm ngoái, tôi đã phát triển một trang web độc lập để thu thập các blog ——“Bạn Bè Blog - www.boyouquan.com”. Trang web này đã tồn tại trong suốt chín tháng qua với sự vận hành ổn định của các tính năng. Bài viết này sẽ tổng kết lại lý do tạo dựng trang web này và giới thiệu về các chức năng chính cũng như kiến trúc kỹ thuật dựa trên phiên bản mới nhất hiện tại (v1.10).

1. Lý do thành lập

Dù ngày nay chúng ta đang sống trong kỷ nguyên của video ngắn, blog vẫn là một phần không thể thiếu của thế giới internet cổ xưa. Tuy nhiên, những blog chất lượng, dù thuộc loại sinh hoạt hay công nghệ, vẫn tiếp tục có tác động lớn đến xã hội.

Chính bản thân tôi là một người yêu thích và kiên trì với việc viết blog cá nhân. Khi lướt web, mỗi khi gặp phải một blog độc lập thú vị, tôi luôn có cảm giác gần gũi và muốn lưu trữ nó ngay lập tức.

Nếu có một nền tảng có khả năng kết nối tất cả các blog độc lập lại với nhau thì thật tuyệt vời! Điều đó sẽ giúp chúng ta sở hữu một kho báu khổng lồ. Và chính vì vậy, một trang web thu thập blog dựa trên RSS đã ra đời!

i88win win 789 club 2. Chức năng chính

“Ban Bè Blog” cung cấp hai loại giao diện: trang mở và trang quản trị ở phía sau. Giao diện trước dùng cho người dùng truy cập công khai, còn giao diện sau phục vụ cho việc quản lý hệ thống.

Hiện tại, “Ban Bè Blog” cung cấp các chức năng chính sau đây:

  • Thu thập blog:
    Trang web hỗ trợ hai chế độ thu thập blog: tự động gửi bởi người dùng và thu thập thủ công từ phía quản trị. Sau khi gửi yêu cầu tự động, bài đăng sẽ được đưa vào quy trình kiểm duyệt ở phía sau. Nếu được chấp nhận, blog sẽ xuất hiện trên trang “Quảng trường Blog”. Nếu bị từ chối, chủ blog sẽ nhận được thông báo qua email.

  • Hiển thị tổng hợp bài viết:
    Mỗi giờ, “Ban Bè Blog” sẽ tuần tra địa chỉ RSS của từng blog một lần. Nếu phát hiện bài viết mới, hệ thống sẽ lưu trữ và hiển thị chúng trên trang chủ mục “Mới nhất”. Các bài viết được đánh dấu là “Đề xuất” sẽ xuất hiện trong mục “Đề xuất” trên trang chủ.

  • Bài viết chọn lọc hàng tháng:
    Do tốc độ cập nhật quá nhanh của các bài viết trên trang chủ, một số bài viết thú vị có thể dễ dàng bị chìm mất. Do đó, trang “Chọn lọc hàng tháng” đã được thiết lập để lưu trữ mười bài viết được đề xuất phổ biến nhất mỗi tháng, giúp người đọc quan tâm có thể xem lại bất kỳ lúc nào.

  • Hiển thị chi tiết blog:
    Mỗi blog đều có một trang chi tiết riêng, nơi hiển thị thông tin cơ bản, biểu đồ thống kê dữ liệu (số bài viết được thu thập trong vòng một năm qua, lượt xem bài viết trong vòng một năm qua và số lần tương tác “Thần Du Hành Tinh”), danh sách các bài viết đã được thu thập và gợi ý ngẫu nhiên các blog khác ở cuối trang.

  • Thần Du Hành Tinh:
    Tính năng “Thần Du Hành Tinh” cho phép chuyển hướng ngẫu nhiên đến một blog. Nếu một blog đã thêm liên kết “Thần Du Hành Tinh”, khi hệ thống chuyển hướng đến một blog ngẫu nhiên, URL của người khởi tạo cũng sẽ được gắn kèm. Tính năng này tăng cường tương tác giữa các blogger, giúp tăng lượt truy cập và khuyến khích thăm hỏi lẫn nhau.

Cũng có một số chức năng bổ sung khác mà không được mô tả trực tiếp, chẳng hạn như quản trị backend, thông báo qua email, nhiệm vụ thu thập bài viết theo lịch trình, nhiệm vụ kiểm tra khả dụng của blog, dịch vụ thu thập ảnh đại diện Gravatar và logic kiểm soát chống spam.

3. Kiến trúc kỹ thuật

3.1 Kiến trúc ứng dụng

Ứng dụng “Ban Bè Blog” là một dự án Java được quản lý bằng Maven, tích hợp cả frontend và backend. Nó sử dụng các công nghệ Spring Boot + Thymeleaf + MyBatis. Trong đó, Spring Boot đóng vai trò là khung tổng thể của dự án, module SpringMVC chịu trách nhiệm xử lý yêu cầu và tiêm phụ thuộc, module Thymeleaf thực hiện render template, module MyBatis đảm nhiệm việc truy cập cơ sở dữ liệu. Cơ sở dữ liệu được sử dụng là MariaDB.

Kiến trúc ứng dụng “Ban Bè Blog” tuân theo mô hình ba lớp kinh điển từ trên xuống dưới: Lớp điều khiển (Controller Layer), lớp logic nghiệp vụ (Service Layer) và lớp truy cập dữ liệu (DAO Layer).

  • Lớp điều khiển bao gồm một nhóm controller SpringMVC, chịu trách nhiệm nhận yêu cầu, xác thực tham số, gọi dịch vụ và trả về kết quả.
  • Lớp logic nghiệp vụ chứa một nhóm dịch vụ, thực hiện xử lý các nghiệp vụ chính.
  • Lớp truy cập dữ liệu chứa một nhóm interface MyBatis, đảm nhiệm giao tiếp với cơ sở dữ liệu.

Ngoài ra, lớp scheduler (Scheduler Layer) và lớp helper (Helper Layer) bao gồm một loạt các nhiệm vụ định thời và các công cụ trợ giúp.

3.2 Kiến trúc triển khai dịch vụ

Việc triển khai dịch vụ của “Ban Bè Blog” tương đương với việc triển khai một ứng dụng Java. Để đảm bảo tính sẵn sàng cao, tầng trên cùng của ứng dụng sử dụng Nginx làm proxy ngược, trong khi tầng dưới cùng cần kết nối với một instance MariaDB.

w9bet register 3.3 Cấu hình và chạy chương trình

Để biết cách cấu hình và chạy chương trình trên môi trường local, vui lòng tham khảo tài liệu hướng dẫn trong kho GitHub của “Ban Bè Blog” (github.com/leileiluoluo/boyouquan).

Ngoài ra, mã nguồn của chương trình “Ban Bè Blog” đã được công khai. Bạn có thể tự do sử dụng nếu có nhu cầu, chỉ cần ghi chú ở chân trang rằng “Trang web này được xây dựng bằng chương trình nguồn mở của Ban Bè Blog (www.boyouquan.com)”.

4. Kết luận

Tóm lại, bài viết này đã giới thiệu về lý do thành lập, các chức năng chính và kiến trúc kỹ thuật của “Ban Bè Blog”. Tôi rất hoan nghênh những ai quan tâm tham gia theo dõi trên GitHub và nhiệt liệt mời các bạn tham gia cộng đồng của chúng tôi!