β Yappuccino
A platform for Certified Yappers
π₯ Live Demo
π Overview
Yappuccino is a social blogging platform where you can share posts, comment, vote, and repost. Platform integrates n8n AI agent to automatically summarize posts.
[!NOTE]
Detailed Project Overview & Analysis
Explore the complete project overview, including UML Diagrams and in-depth explanations, provided by Cognition here.
π Key Features
π€ AI Integration & Automation
- n8n AI workflow - for automated summaries
- Multiple LLM API Providers - Groq & DeepSeek
- Real-time webhooks trigger instant processing
- Added Admin Panel - AI Summary Dashboard - for viewing and monitoring processes with live stats provided
π Content Management
- Rich Text Editor: CKEditor 5 integration with image upload
- Tag System: Create and manage tags with auto-slugs and aliases
- Post Management: Full CRUD operations with draft support
- Content Filtering: Advanced filtering and sorting options
π₯ Social Features
- Voting System: Upvote/downvote posts and comments
- Comment System: Nested comments with threading
- Repost Functionality: Share content with attribution
- User Profiles: Customizable profiles with activity tracking
π¨ User Experience
- Responsive Design: Mobile-first approach with touch-friendly interface
- Real-time Interactions: AJAX-powered voting and commenting
- Search Functionality: Full-text search across posts and content
- Tag-based Navigation: Browse content by categories
π User Management
- Authentication System: Registration, login, password reset
- Profile Management: Image uploads, privacy settings
- Activity Tracking: View user's posts, comments, and interactions
- Settings Panel: Comprehensive user preferences
π οΈ Technical Stack
Backend
- Framework: Django 5.2.1
- Database: SQLite (development) / PostgreSQL (production ready)
- Authentication: Django's built-in auth system
- File Storage: Django's file handling with Pillow for images
Frontend
- CSS Framework: Bootstrap 4.0
- JavaScript: jQuery with custom AJAX implementations
- Icons: Bootstrap Icons
- Fonts: Google Fonts (Roboto Condensed, Underdog)
π Installation & Setup
Prerequisites
- Python 3.8+
- pip (Python package installer)
- Virtual environment (recommended)
Quick Start
-
Clone the repository
git clone https://github.com/jafarbekyusupov/yappuccino.git cd yappuccino -
Create virtual environment
python -m venv venv source venv/bin/activate[!NOTE] On Windows:
python -m venv venv venv\Scripts\activate -
Install dependencies
pip install -r requirements.txt -
Set up the database
python manage.py makemigrations python manage.py migrate -
Create a superuser
python manage.py createsuperuser -
Run the development server
python manage.py runserver -
Access the application
- Main site: http://127.0.0.1:8000/
- Admin panel: http://127.0.0.1:8000/admin/
π§ Troubleshooting
HTTPS Error on Development Server
Problem: Getting SSL/HTTPS errors when running python manage.py runserver
Symptoms:
code 400, message Bad request syntax ('\x16\x03\x01\x06Γ\x01\x00\x06ΒΌ\x03\x03%')
You're accessing the development server over HTTPS, but it only supports HTTP.
Solutions:
-
Switch to HTTP manually:
http://127.0.0.1:8000 β https://127.0.0.1:8000 β -
Clear browser cache/HSTS for localhost:
- Chrome: Go to chrome://net-internals/#hsts β Delete localhost
- Or use incognito/private mode
- HTTPS in development:
- Packages already included in requirements.txt, install if you didnt
pip install -r requirements.txt - If you DID install requirement.txt, then just run the following command:
python manage.py runserver_plus --cert-file cert.pem
π¨ Customization
Styling
- Main styles in
blog/static/blog/main.css - Component styles in
blog/static/blog/components.css - Color scheme defined in CSS variables
Configuration
- Django settings in
blogpost/settings.py - CKEditor configuration for rich text editing
- Bleach settings for content sanitization
π§ API Endpoints
AJAX Endpoints
POST /post/<id>/vote/<type>/- Vote on postsPOST /post/<id>/comment/- Add commentsPOST /comment/<id>/vote/- Vote on commentsGET /tag-suggestions/- Tag autocomplete
π± Mobile Support
The application includes comprehensive mobile support:
- Responsive design for all screen sizes
- Touch-friendly interface elements
- Mobile-optimized navigation
- Swipe gestures for interactions
π Deployment
Production Checklist
- [ ] Set
DEBUG = False - [ ] Configure allowed hosts
- [ ] Set up production database (PostgreSQL recommended)
- [ ] Configure static file serving
- [ ] Set up media file handling
- [ ] Set environment variables