A modern, high-performance social media platform built with Flask and Vue.js, featuring real-time updates, asynchronous processing, and intelligent caching.
-
Robust Authentication - Secure JWT-based user authentication system
-
Content Management
-
Create, edit, and delete posts with images
-
Rich text support with safe HTML handling
-
-
Social Networking
-
Follow/unfollow system
-
Personalized feed based on followed users
-
User search functionality
-
-
Interaction
-
Comment on posts
-
User profiles with engagement metrics
-
-
Asynchronous Processing
-
CSV export of user data
-
Monthly engagement reports (HTML/PDF)
-
Daily activity reminders
-
-
Performance Optimization
-
Redis-based caching with intelligent expiry
-
Batch processing for heavy operations
-
-
Backend: Flask (Python 3.7+)
-
Frontend: Vue.js with CLI
-
Database: SQLite with SQLAlchemy ORM
-
Caching: Redis
-
Task Queue: Celery
-
UI Framework: Bootstrap
-
Template Engine: Jinja2 (for emails)
-
Python 3.7 or higher
-
Node.js 14.x or higher
-
Redis server
-
MailHog (for local email testing)
-
Clone the repository
git clone https://github.com/faizanxmulla/flask-blog-app-v2.git cd flask-blog-app-v2
-
Set up the backend
cd backend python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate` pip install -r requirements.txt
-
Set up the frontend
cd frontend npm install
-
Start required services
# Terminal 1 redis-server # Terminal 2 mailhog
-
Start the backend services
# Terminal 1 - API Server cd backend python main.py # Terminal 2 - Celery Worker cd backend celery -A main.celery worker -l info # Terminal 3 - Celery Beat cd backend celery -A main.celery beat --max-interval 1 -l info
-
Start the frontend development server
cd frontend npm run serve
The application will be available at http://localhost:8080
-
User: Stores user data, authentication info, and social metrics
-
Post: Contains post content, metadata, and relationships
-
Comment: Manages user interactions on posts
-
Follow: Handles user-to-user relationships
RESTful architecture with the following main endpoints:
-
Authentication:
/api/register
,/api/login
,/api/token/refresh
-
Posts:
/api/post
,/api/post/<post_id>
-
Feed:
/api/feed
-
User:
/api/user
,/api/profile/<username>
-
Social:
/api/follow/<username>
,/api/unfollow/<username>
We welcome contributions! Please follow the steps below:
-
Fork the repository
-
Create your feature branch (
git checkout -b feature/newFeature
) -
Commit your changes (
git commit -m 'Add some newFeature'
) -
Push to the branch (
git push origin feature/newFeature
) -
Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
-
Inspired by modern social media platforms
-
Built as part of the Modern Application Development - II course (Course ID:
BSCS2006
)
Do ⭐ the repository, if it inspired you, gave you ideas for your own project or helped you in any way !!!