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.
Status:
![]()
![]()
Note: Render free tier sleeps after ~15 minutes of inactivity. The first request can take 15-30s (cold start); don't confuse this with an outage.
| Service | URL |
|---|---|
| π Live App | https://modern-blog-tkzl.onrender.com/ |
| π REST API Docs | https://modern-blog-tkzl.onrender.com/docs |
| π· GraphQL Playground | https://modern-blog-tkzl.onrender.com/graphql |
- 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
- 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 |
| CI | GitHub Actions (pytest) |
| Keep-alive | GitHub Actions cron (every 4 min) |
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
- Python 3.11+
- pip
# 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.pyThe 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
- Build Command:
- 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 |
| Automated tests (pytest) | β Complete |
| CI/CD with GitHub Actions | β Complete |
Health endpoint (/health) |
β Complete |
"This project showcases how AI can accelerate development while maintaining code quality and architectural integrity."
β Star this repo if you found it helpful!
| Links | |
|---|---|
| π Live Demo | π API Docs |
| π· GraphQL | π Report Issue |

