Skip to content

hoaht-8203/BlogManagement

Repository files navigation

OurBlog - Blog Management System

OurBlog là một hệ thống quản lý blog hiện đại, được xây dựng bằng ASP.NET Core cho backend và Next.js cho frontend. Hệ thống hỗ trợ đăng ký, đăng nhập, quản lý bài viết và tương tác với người dùng.

🛠️ Technology Stack

Backend

ASP.NET Core PostgreSQL Redis JWT MailKit Swagger

Frontend

Next.js TypeScript Tailwind CSS React Query

Công nghệ sử dụng

Backend

  • ASP.NET Core 8.0
  • Entity Framework Core
  • PostgreSQL
  • Redis cho caching
  • JWT Authentication
  • MailKit cho gửi email
  • AutoMapper
  • Swagger/OpenAPI

Frontend

  • Next.js 14
  • TypeScript
  • Tailwind CSS
  • React Query
  • React Hook Form
  • Zod validation

Tính năng chính

  • 🔐 Xác thực và phân quyền người dùng

    • Đăng ký/đăng nhập thông thường
    • Đăng nhập bằng Google
    • JWT Authentication
    • Role-based Authorization
  • 📧 Gửi email tự động

    • Email chào mừng khi đăng ký
    • Email chứa mật khẩu cho tài khoản Google
    • Email đặt lại mật khẩu
  • 📝 Quản lý bài viết

    • Tạo, chỉnh sửa, xóa bài viết
    • Phân loại bài viết theo danh mục
    • Tìm kiếm và lọc bài viết
  • 👥 Quản lý người dùng

    • Phân quyền người dùng (Admin, User)
    • Quản lý thông tin cá nhân
    • Đổi mật khẩu

Cài đặt và chạy

Yêu cầu hệ thống

  • .NET 8.0 SDK
  • Node.js 18+
  • PostgreSQL
  • Redis
  • Git

Backend

  1. Clone repository:
git clone https://github.com/hoaht-8203/BlogManagement.git
cd BlogManagement/blog_server
  1. Cài đặt dependencies:
dotnet restore
  1. Cập nhật connection string trong appsettings.json:
{
  "ConnectionStrings": {
    "DbConnection": "Host=localhost;Username=your_username;Password=your_password;Database=blog_db",
    "RedisConnection": "localhost:6379"
  }
}
  1. Chạy migrations:
dotnet ef database update
  1. Chạy ứng dụng:
dotnet run

Frontend

  1. Di chuyển vào thư mục frontend:
cd ../blog_client
  1. Cài đặt dependencies:
npm install
  1. Tạo file .env.local:
NEXT_PUBLIC_API_URL=http://localhost:5010
NEXT_PUBLIC_GOOGLE_CLIENT_ID=your_google_client_id
  1. Chạy ứng dụng:
npm run dev

Cấu hình Email

  1. Tạo tài khoản Gmail
  2. Bật 2-Step Verification
  3. Tạo App Password
  4. Cập nhật cấu hình trong appsettings.json:
{
  "Email": {
    "SmtpServer": "smtp.gmail.com",
    "SmtpPort": 587,
    "SmtpUsername": "your_email@gmail.com",
    "SmtpPassword": "your_app_password",
    "FromEmail": "your_email@gmail.com",
    "FromName": "OurBlog"
  }
}

Cấu hình Google OAuth

  1. Tạo project trên Google Cloud Console
  2. Bật Google Sign-In API
  3. Tạo OAuth 2.0 credentials
  4. Thêm authorized origins và redirect URIs
  5. Cập nhật cấu hình trong appsettings.json:
{
  "GoogleAuth": {
    "ClientId": "your_client_id",
    "ClientSecret": "your_client_secret"
  }
}

Cấu hình Redis

  1. Cài đặt Redis trên máy local hoặc sử dụng Redis Cloud
  2. Cập nhật connection string trong appsettings.json:
{
  "ConnectionStrings": {
    "RedisConnection": "localhost:6379"
  }
}

Redis được sử dụng để cache:

  • Thông tin người dùng
  • Danh mục bài viết
  • Các dữ liệu thường xuyên truy cập

API Documentation

API documentation có sẵn tại /swagger khi chạy backend server.

Contact

About

OurBlog là một hệ thống quản lý blog hiện đại, được xây dựng bằng ASP.NET Core cho backend và Next.js cho frontend. Hệ thống hỗ trợ đăng ký, đăng nhập, quản lý bài viết và tương tác với người dùng.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors