Skip to content

DebanilBora/flask-blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Flask Blog with User Authentication & Comments

A full-featured Flask-powered blogging platform that allows users to register, log in, create blog posts, and comment on posts. The app integrates authentication, rich text editing, gravatars, and email-powered contact forms.

🚀 Live Demo

🚀 Features

🔑 User Authentication (Register, Login, Logout)

✍️ Create, Edit, Delete Blog Posts (only by author or admin)

💬 Comment System (users must log in to comment)

🖼 Gravatar Integration for user profile images

📩 Contact Form with Email Support (via Gmail SMTP)

🛡️ Password Hashing for secure login

🗄 SQLite / PostgreSQL database support

🎨 Bootstrap & CKEditor for styling and rich text editing

🛠 Tech Stack

Backend: Flask, Flask-SQLAlchemy, Flask-WTF, Flask-Login

Frontend: Bootstrap, Jinja2 Templates, CKEditor

Database: SQLite (default) / PostgreSQL (via DB_URI)

Authentication: Werkzeug Security (Password Hashing)

Email Service: smtplib (Gmail SMTP)

Deployment Ready: Render / Heroku / Any WSGI platform

⚙️ Setup & Installation 1️⃣ Clone the repository git clone https://DebanilBora/flask-blog.git cd flask-blog

2️⃣ Create & activate a virtual environment python -m venv .venv source .venv/bin/activate # Linux/Mac .venv\Scripts\activate # Windows

3️⃣ Install dependencies pip install -r requirements.txt

4️⃣ Set environment variables

Create a .env file in the project root:

FLASK_KEY=your_secret_key DB_URI=sqlite:///instance/posts.db MY_EMAIL=your_email@gmail.com MY_PASSWORD=your_app_password

⚠️ For Gmail, use an App Password (not your real password).

5️⃣ Run the app flask run

🌐 Routes Overview Route Method Description / GET Homepage with all posts /register GET/POST Register new user /login GET/POST Login user /logout GET Logout user /post/ GET/POST View single post + comments /new-post GET/POST Create new blog post /edit-post/ GET/POST Edit post (author/admin only) /delete/ GET Delete post (author/admin only) /contact GET/POST Contact form (sends email) /about GET About page /create-tables GET Initialize database tables 📸 Screenshots

(Add screenshots of homepage, login, editor, etc. here for your portfolio)

🏷 Tags

#Flask #WebDevelopment #FullStack #Python #BlogApp #Authentication #PortfolioProject

About

A Flask-based blog application with CRUD functionality, user authentication, CKEditor integration, PostgreSQL database, SMTP email support, and deployed on Render.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors