Skip to content

GAVRS1/Blog-Platform

Repository files navigation

Blog-Platform

C# .NET PostgreSQL Redis Entity Framework Core React Vite Tailwind CSS


English | Русский

Project description

Blog-Platform is a content publishing platform (articles, photos, videos, audio) with social interactions. The backend is built with ASP.NET and Entity Framework Core, PostgreSQL is used as the database, Redis for caching, and SignalR for real-time communication. The frontend is React + Vite with Tailwind CSS.

✨ Key features

  • 👥 Users & profiles: registration, authentication, profile settings, privacy controls.
  • 📝 Content publishing: create posts with different media types.
  • 💬 Comments & messaging: commenting, private chats, real-time notifications.
  • ❤️ Reactions: likes for posts and comments.
  • 🛡️ Moderation: reports, blocks, appeals.

🏗️ Architecture

The project is split into layers:

  • Core — domain models and contracts.
  • Data — EF Core context and repositories.
  • Services — business logic.
  • WebAPI — HTTP API, auth, SignalR hubs.
  • Frontend — client application.

📦 Tech stack

  • Backend: .NET 10, ASP.NET Web API, EF Core, Npgsql, SignalR, Redis.
  • Frontend: React, Vite, Tailwind CSS, DaisyUI, React Query.

🚀 Local setup

1) Backend

dotnet restore

dotnet run --project BlogContent.WebAPI/BlogContent.WebAPI

Migrations are applied automatically on startup.

2) Frontend

cd blogplatform-frontend
npm install
npm run dev

⚙️ Configuration

Settings are read from appsettings.json and/or environment variables.

Required values:

  • ConnectionStrings:DefaultConnection — PostgreSQL connection string.
  • Jwt:Key, Jwt:Issuer, Jwt:Audience — JWT settings.

Optional (recommended):

  • Redis:ConnectionString — Redis for cache/sessions.
  • Turnstile:SecretKey — Cloudflare Turnstile secret.
  • Email:* — SMTP/SendGrid credentials.
  • EmailTemplates:* — email templates.
  • EmailVerification:* — email verification policy.
  • MediaStorage:* — upload limits and mime types.
  • Cors:AllowedOrigins — frontend domains.

⚠️ Do not commit real secrets. Use environment variables for production.

🖼️ Screenshots & Video

Profile page Lenta page

🎬 video 🎬 video 🎬 video

About

Платформа для публикации контента на C#, WPF, EF Core, PostgreSQL

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages