Skip to content

elyse502/QuickBlog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

78 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

π“‚ƒπŸ–Š QUICKBLOG ✍️ α―“βž€

AI-Powered Blogging Platform with Intelligent Content Generation

Last Commit Languages License Version

Powered by cutting-edge AI and modern technologies:

React Google Gemini Express MongoDB ImageKit Tailwind CSS

LIVE - DEMO 🌐

Visit the πŸ‘‰ LINK πŸ”—

User Interface Admin Dashboard
UI Home

Table of Contents


Overview

QUICKBLOG is a revolutionary blogging platform that combines traditional content management with artificial intelligence to provide:

  • πŸ€– AI Content Generation: Automatically generate blog posts using Google Gemini
  • πŸ“ Rich Text Editor: Advanced editing with Quill.js integration
  • πŸ‘¨β€πŸ’Ό Admin Dashboard: Complete content management system
  • πŸ’¬ Comment System: Engage readers with interactive discussions
  • πŸ–ΌοΈ Media Management: Optimized image handling with ImageKit
  • πŸ“± Responsive Design: Seamless experience across all devices

Built with the MERN stack and integrated with Google's Gemini AI for intelligent content creation.


Key Features

πŸ€– AI-Powered Blogging

  • Content Generation: Generate complete blog posts from prompts
  • Topic Suggestions: AI-driven content ideas and outlines
  • SEO Optimization: AI-assisted meta descriptions and titles
  • Content Enhancement: Improve existing articles with AI suggestions

🎨 Advanced Editor

  • Quill.js Integration: Rich text editor with formatting options
  • Markdown Support: Dual editing capabilities
  • Image Embedding: Drag-and-drop image uploads
  • Auto-save: Never lose your work with automatic saving

πŸ‘¨β€πŸ’Ό Admin Dashboard

  • Blog Management: Create, edit, and delete blog posts
  • Comment Moderation: Approve, delete, and manage user comments
  • Analytics: View blog performance and reader engagement
  • User Management: Manage authors and contributors

πŸ‘₯ Community Features

  • Comment System: Threaded comments with replies
  • User Profiles: Reader engagement and profiles
  • Social Sharing: Easy content distribution
  • Newsletter Integration: Email subscription management

πŸ–ΌοΈ Media Management

  • ImageKit Integration: Optimized image storage and delivery
  • Automatic Optimization: Image compression and resizing
  • CDN Delivery: Fast global content delivery
  • Gallery Management: Organized media library

Tech Stack

Frontend (Client)

  • React 19 - Latest React with concurrent features
  • Vite - Next-generation build tool
  • Tailwind CSS - Utility-first CSS framework
  • Axios - HTTP client for API calls
  • React Router DOM - Client-side routing
  • Quill.js - Rich text editor
  • React Hot Toast - User notifications
  • Marked - Markdown parsing
  • Moment.js - Date formatting
  • Framer Motion - Smooth animations

Backend (Server)

  • Node.js - JavaScript runtime environment
  • Express 6 - Web application framework
  • MongoDB - NoSQL database with Mongoose ODM
  • Google Gemini AI - Advanced AI content generation
  • ImageKit - Image optimization and CDN
  • JWT - Authentication tokens
  • Multer - File upload handling
  • CORS - Cross-origin resource sharing
  • Bcrypt - Password hashing

DevOps & Deployment

  • Vercel - Frontend deployment platform
  • Render/Railway - Backend deployment
  • MongoDB Atlas - Cloud database service
  • ImageKit CDN - Media content delivery

Architecture

QuickBlog/
β”œβ”€β”€ client/                 # React Frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ assets/        # Static assets
β”‚   β”‚   β”œβ”€β”€ components/    # Reusable components
β”‚   β”‚   β”‚   β”œβ”€β”€ BlogCard.jsx      # Blog post preview
β”‚   β”‚   β”‚   β”œβ”€β”€ CommentSection.jsx # Comments and replies
β”‚   β”‚   β”‚   β”œβ”€β”€ RichTextEditor.jsx # Quill.js editor
β”‚   β”‚   β”‚   β”œβ”€β”€ SearchBar.jsx     # Blog search functionality
β”‚   β”‚   β”‚   β”œβ”€β”€ Sidebar.jsx       # Navigation and categories
β”‚   β”‚   β”‚   └── ...               # Other components
β”‚   β”‚   β”œβ”€β”€ pages/         # Route pages
β”‚   β”‚   β”‚   β”œβ”€β”€ Admin/           # Admin dashboard pages
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Dashboard.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ BlogManagement.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Comments.jsx
β”‚   β”‚   β”‚   β”‚   └── Analytics.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Blog/            # Blog-related pages
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ BlogPost.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ CreateBlog.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ EditBlog.jsx
β”‚   β”‚   β”‚   β”‚   └── BlogList.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Home.jsx         # Landing page
β”‚   β”‚   β”‚   β”œβ”€β”€ Login.jsx        # Authentication
β”‚   β”‚   β”‚   └── Profile.jsx      # User profile
β”‚   β”‚   β”œβ”€β”€ context/       # React context
β”‚   β”‚   β”‚   └── AppContext.jsx   # Global state management
β”‚   β”‚   β”œβ”€β”€ hooks/         # Custom React hooks
β”‚   β”‚   β”œβ”€β”€ utils/         # Utility functions
β”‚   β”‚   β”œβ”€β”€ index.css      # Global styles
β”‚   β”‚   └── main.jsx       # Application entry point
β”‚   β”œβ”€β”€ package.json       # Dependencies and scripts
β”‚   └── vite.config.js     # Vite configuration
β”‚
β”œβ”€β”€ server/                # Express Backend
β”‚   β”œβ”€β”€ config/           # Configuration files
β”‚   β”œβ”€β”€ controllers/      # Business logic
β”‚   β”‚   β”œβ”€β”€ blogController.js    # Blog CRUD operations
β”‚   β”‚   β”œβ”€β”€ aiController.js      # Gemini AI integration
β”‚   β”‚   β”œβ”€β”€ commentController.js # Comment management
β”‚   β”‚   β”œβ”€β”€ userController.js    # User authentication
β”‚   β”‚   └── adminController.js   # Admin operations
β”‚   β”œβ”€β”€ middleware/       # Custom middlewares
β”‚   β”‚   β”œβ”€β”€ auth.js              # JWT authentication
β”‚   β”‚   β”œβ”€β”€ upload.js            # File upload handling
β”‚   β”‚   └── admin.js             # Admin role verification
β”‚   β”œβ”€β”€ models/          # Database models
β”‚   β”‚   β”œβ”€β”€ Blog.js              # Blog post schema
β”‚   β”‚   β”œβ”€β”€ Comment.js           # Comment schema
β”‚   β”‚   β”œβ”€β”€ User.js              # User schema
β”‚   β”‚   └── Category.js          # Category schema
β”‚   β”œβ”€β”€ routes/          # API routes
β”‚   β”‚   β”œβ”€β”€ blogRoutes.js        # Blog endpoints
β”‚   β”‚   β”œβ”€β”€ aiRoutes.js          # AI generation endpoints
β”‚   β”‚   β”œβ”€β”€ commentRoutes.js     # Comment endpoints
β”‚   β”‚   β”œβ”€β”€ userRoutes.js        # User endpoints
β”‚   β”‚   └── adminRoutes.js       # Admin endpoints
β”‚   β”œβ”€β”€ package.json     # Dependencies and scripts
β”‚   └── server.js        # Server entry point
└── README.md            # Project documentation

Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • npm (v8 or higher)
  • MongoDB Atlas account or local MongoDB
  • Google Gemini API account
  • ImageKit account

Installation

  1. Clone the repository:
git clone https://github.com/elyse502/QuickBlog.git
cd QuickBlog
  1. Install client dependencies:
cd client && npm install
  1. Install server dependencies:
cd ../server && npm install

Environment Variables

Client (.env)

VITE_API_BASE_URL=http://localhost:5000
VITE_IMAGEKIT_URL_ENDPOINT=your-imagekit-endpoint
VITE_IMAGEKIT_PUBLIC_KEY=your-imagekit-public-key

Server (.env)

MONGODB_URI=your-mongodb-connection-string
GEMINI_API_KEY=your-google-gemini-key
IMAGEKIT_PRIVATE_KEY=your-imagekit-private-key
JWT_SECRET=your-jwt-secret-key
ADMIN_EMAIL=your-admin-email
PORT=5000
  1. Start the development servers:
# Terminal 1 - Start backend
cd server && npm run server

# Terminal 2 - Start frontend
cd client && npm run dev

AI Capabilities

🧠 Google Gemini Integration

  • Content Generation: Generate complete blog posts from topics
  • Outline Creation: AI-powered article structure generation
  • SEO Optimization: Meta descriptions and keyword suggestions
  • Content Improvement: Enhance existing articles with AI

πŸ“ Smart Writing Assistant

  • Grammar Checking: AI-powered writing corrections
  • Tone Adjustment: Modify writing style and voice
  • Plagiarism Check: Ensure content originality
  • Readability Score: Optimize content for target audience

🎯 Content Strategy

  • Topic Research: AI-driven content ideas
  • Trend Analysis: Identify popular topics
  • Audience Targeting: Content tailored to reader demographics
  • Performance Prediction: Estimate engagement potential

Admin Dashboard

πŸ“Š Dashboard Overview

  • Blog Statistics: Total posts, views, comments
  • Performance Metrics: Reader engagement analytics
  • Recent Activity: Latest comments and posts
  • Quick Actions: Common admin operations

🎨 Blog Management

  • Create New Blog: Rich text editor with AI assistance
  • Edit Existing Posts: In-place editing and updates
  • Bulk Operations: Multiple post management
  • Category Management: Organize content by topics

πŸ’¬ Comment Moderation

  • Approve/Delete: Manage user comments
  • Spam Detection: AI-powered spam filtering
  • User Management: Handle commenter accounts
  • Moderation Logs: Track all moderation actions

πŸ“ˆ Analytics & Insights

  • Traffic Analysis: Page views and visitor statistics
  • Popular Content: Most read blog posts
  • User Engagement: Comments and social shares
  • SEO Performance: Search ranking and visibility

API Endpoints

Authentication Routes (/api/auth)

Method Endpoint Description
POST /register User registration
POST /login User login
GET /profile Get user profile
PUT /profile Update user profile

Blog Routes (/api/blogs)

Method Endpoint Description
GET / Get all blog posts
GET /featured Get featured posts
GET /category/:category Get posts by category
GET /search Search blog posts
GET /:id Get specific blog post
POST / Create new blog post (Admin)
PUT /:id Update blog post (Admin)
DELETE /:id Delete blog post (Admin)

AI Routes (/api/ai)

Method Endpoint Description
POST /generate-blog Generate blog content
POST /generate-outline Generate article outline
POST /improve-content Enhance existing content
POST /suggest-topics Get content ideas

Comment Routes (/api/comments)

Method Endpoint Description
GET /blog/:blogId Get comments for blog
POST / Add new comment
PUT /:id Update comment
DELETE /:id Delete comment
POST /:id/reply Reply to comment

Admin Routes (/api/admin)

Method Endpoint Description
GET /dashboard Get admin dashboard data
GET /comments Get all comments for moderation
PUT /comments/:id/approve Approve comment
DELETE /comments/:id Delete comment
GET /analytics Get blog analytics

Deployment

Frontend (Vercel)

Deploy with Vercel

Backend (Render/Railway)

Deploy with environment variables configured for:

  • MongoDB Atlas connection
  • Google Gemini API integration
  • ImageKit configuration
  • JWT secret key

Database (MongoDB Atlas)

# Recommended: MongoDB Atlas Cloud
https://www.mongodb.com/atlas

Production Environment

# Production environment variables
MONGODB_URI=your-production-mongodb-uri
GEMINI_API_KEY=your-production-gemini-key
JWT_SECRET=your-production-jwt-secret
NODE_ENV=production

Performance

  • ⚑ Fast Loading: Vite-optimized build process
  • 🎯 SEO Optimized: Server-side rendering ready
  • πŸ“± Mobile First: Responsive Tailwind design
  • πŸ”’ Security: JWT authentication and input validation
  • πŸ’Ύ Efficient Queries: MongoDB optimized indexing
  • πŸ–ΌοΈ Image Optimization: ImageKit CDN delivery

Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • Follow React best practices and hooks
  • Use meaningful commit messages
  • Write comprehensive documentation
  • Test all AI integration features
  • Ensure responsive design compliance

License

Distributed under the MIT License. See LICENSE for more information.


Support

For support, email elyseniyibizi502@gmail.com or create an issue in the GitHub repository.


πŸ“ž Contact

For any questions or support, please contact:

LinkedIn @phenrysay pH-7


QUICKBLOG - Where AI meets creative writing! πŸš€

Built with ❀️ using the MERN stack and Google's Gemini AI technology.

⬆ Back to Top