A modern full-stack blogging platform built with ASP.NET Core Blazor Server featuring authentication, role-based authorization, rich text editing, image uploads, nested comments, and responsive UI design.
- User registration and login
- Email confirmation
- Password reset & recovery
- Two-factor authentication (2FA)
- ASP.NET Core Identity integration
- Role-based access control
- Admin
- Author
- Reader
- Create, update, and delete blog posts
- Rich text editor using Quill.js
- Upload images with Cloudinary
- Category-based organization
- Pagination support
- Search and filtering
- Nested/threaded comments
- Replies to comments
- Edit & delete comments
- Recursive comment handling
- Browse posts by category
- Multiple pre-seeded categories
- Category filtering
- Become an author workflow
- Personal posts dashboard
- Manage created posts
- Search and filter personal content
Used for:
- Image uploads
- Image hosting
- Image deletion
Used for:
- Email confirmation
- Password reset emails
- Identity notifications
- Responsive design
- MudBlazor components
- Modern card-based layouts
- Loading skeletons
- Snackbar notifications
- Mobile-friendly interface
| Technology | Purpose |
|---|---|
| ASP.NET Core Blazor Server | Frontend + Backend |
| Entity Framework Core | ORM |
| PostgreSQL | Database |
| ASP.NET Identity | Authentication |
| MudBlazor | UI Components |
| Cloudinary | Image Hosting |
| SendGrid | Email Services |
| SignalR | Real-time Communication |
| Quill.js | Rich Text Editor |
Components/
├── Pages/
├── Shared/
├── Layout/
└── Account/
Data/
├── ApplicationDbContext
└── Models
Services/
├── PostService
├── CommentsService
├── ImageUploadService
└── EmailSender
- Secure authentication cookies
- HTTPS & HSTS support
- Role-based route protection
- Transaction-safe deletions
- Token expiration handling
- Register accounts
- Browse posts
- Search articles
- Filter by category
- Comment on posts
- Become authors
- Create blog posts
- Upload images
- Edit/delete posts
- Manage personal dashboard
- Interact with comments
- Access protected routes
- Manage content
- Moderate platform features
- .NET SDK
- PostgreSQL
- Cloudinary account
- SendGrid account
git clone <repository-url>
cd DotnetBlogUpdate appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "YOUR_CONNECTION_STRING"
},
"CloudinarySettings": {
"CloudName": "YOUR_CLOUD_NAME",
"ApiKey": "YOUR_API_KEY",
"ApiSecret": "YOUR_API_SECRET"
},
"SendGrid": {
"ApiKey": "YOUR_SENDGRID_API_KEY"
}
}dotnet ef database updatedotnet run- Like/Dislike system
- Bookmarks
- Draft posts
- Notifications
- Tags system
- Analytics dashboard
- Docker deployment
- CI/CD pipeline