π Modern Blog Platform
Developed with AI Assistance π€ + Human Expertise π¨βπ»
A full-stack blogging platform built with FastAPI for the backend and Vue 3 for a modern reactive frontend, featuring a stunning glassmorphism UI with dark/light theme support and an integrated GraphQL Explorer .
π Authentication & Users
User registration with validation
Secure login with password hashing (Werkzeug)
Profile management (name, bio, location, website)
Account deletion with cascade post removal
Create, read, update, delete posts
Status workflow: Published , Draft , Review , Archived
Tag system (up to 5 tags per post)
Word count and excerpt generation
Content editor with character limits
π Dashboard & Analytics
Platform-wide statistics (total users, posts)
Most active user tracking
User statistics (post count, word count, average words)
Last post date tracking
Real-time search with autocomplete
Result highlighting
Post filtering by status
Demo content fallback when database is empty
Full CRUD operations via GraphQL
Interactive GraphQL Explorer in frontend
Strawberry GraphQL with type safety
GraphiQL IDE integrated
ππ Dark/Light Theme - Persistent toggle with localStorage
β¨ Glassmorphism UI - Frosted glass aesthetic with backdrop blur
π¨ Gradient Backgrounds - Animated particle effects
π± Fully Responsive - Optimized for desktop, tablet, and mobile
π Toast Notifications - Non-intrusive feedback system
β¬οΈ Scroll to Top - Floating navigation button
π« Smooth Animations - Vue transition effects throughout
Component
Technology
Version
Framework
FastAPI
0.100.0
ORM
SQLAlchemy
1.4.46
Server
Uvicorn
0.23.2
GraphQL
Strawberry
Latest
Validation
Pydantic
(bundled)
Security
Werkzeug
2.3.7
Runtime
Python
3.11.9
Component
Technology
Version
Framework
Vue 3 (CDN)
Composition API
Styling
Tailwind CSS
3.3.0
Icons
Font Awesome
6.0.0
Fonts
Google Fonts
Oswald + Poppins
Environment
Engine
Notes
Development
SQLite
Local blog.db
Production
PostgreSQL
Render.com managed
Service
Configuration
Platform
Render.com
Runtime
Python 3.11
Build Command
pip install -r requirements.txt
Start Command
python main.py
Auto-deploy
GitHub integration
modern-blog/
βββ main.py # FastAPI application entry point
βββ database.py # Database configuration (SQLite/PostgreSQL)
βββ graphql_schema.py # Strawberry GraphQL schema (CRUD)
βββ requirements.txt # Python dependencies
βββ runtime.txt # Python version (3.11.9)
βββ build.sh # Build script for Render
βββ .env # Environment variables
βββ models/
β βββ models.py # SQLAlchemy models (User, Post)
β βββ schemas.py # Pydantic schemas for validation
βββ templates/
β βββ index.html # Single Page Application (Vue 3)
βββ static/
βββ favicon.ico
βββ images/ # Screenshots and assets
Method
Endpoint
Description
POST
/api/auth/register
Register new user
POST
/api/auth/login
User login
GET
/api/auth/me
Get current user
PUT
/api/auth/profile
Update profile
DELETE
/api/auth/profile
Delete account
Method
Endpoint
Description
GET
/api/posts
List all posts
POST
/api/posts
Create new post
GET
/api/posts/my-posts
Get user's posts
GET
/api/posts/{id}
Get specific post
PUT
/api/posts/{id}
Update post
DELETE
/api/posts/{id}
Delete post
Method
Endpoint
Description
GET
/api/dashboard/stats
Platform statistics
GET
/api/users/{id}/stats
User statistics
URL: /graphql
IDE: GraphiQL (built-in)
{
posts {
id
title
content
excerpt
status
tags
authorName
createdAt
}
}
Create Post
mutation {
createPost (postData : {
title : " My New Post"
content : " Post content here..."
excerpt : " Brief description"
status : " Published"
tags : " [\" tech\" , \" news\" ]"
authorName : " John Doe"
}) {
id
title
status
createdAt
}
}
Update Post
mutation {
updatePost (id : 1 , postData : {
title : " Updated Title"
status : " Published"
}) {
id
title
status
}
}
Delete Post
mutation {
deletePost (id : 1 )
}
The frontend includes an interactive GraphQL Explorer accessible from the Dashboard Metrics panel after login:
Query editor with syntax highlighting
Variables input (JSON format)
Real-time result display
Pre-loaded example queries
Error handling display
# Clone the repository
git clone https://github.com/MarceloAdan73/Modern-Blog.git
cd Modern-Blog
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run the application
python main.py
The application will be available at http://localhost:10000
Field
Value
Username
user
Password
123456
Connect your GitHub repository
Configure the following:
Build Command: pip install -r requirements.txt
Start Command: python main.py
Environment: Python 3.11
Add PostgreSQL database (optional, uses SQLite locally)
Enable auto-deploy from main branch
The application automatically detects PostgreSQL connection strings and switches from SQLite accordingly.
Milestone
Status
FastAPI backend with SQLAlchemy ORM
β
Complete
User authentication system
β
Complete
Post CRUD with status workflow
β
Complete
Tag system
β
Complete
Dashboard analytics
β
Complete
Glassmorphism UI with dark/light theme
β
Complete
GraphQL API with Strawberry
β
Complete
Interactive GraphQL Explorer
β
Complete
Render.com deployment
β
Complete
Real-time search
β
Complete
Marcelo
"This project showcases how AI can accelerate development while maintaining code quality and architectural integrity."
β Star this repo if you found it helpful!