https://github.com/1999azzar/lilyopencms
A comprehensive Flask-based content management system with advanced SEO features, multimedia management, and robust user permissions. Built for modern web publishing with automatic image optimization, comprehensive sitemap generation, and enterprise-grade security.
https://github.com/1999azzar/lilyopencms
cms-backend cms-experiment cms-framework python
Last synced: 7 days ago
JSON representation
A comprehensive Flask-based content management system with advanced SEO features, multimedia management, and robust user permissions. Built for modern web publishing with automatic image optimization, comprehensive sitemap generation, and enterprise-grade security.
- Host: GitHub
- URL: https://github.com/1999azzar/lilyopencms
- Owner: 1999AZZAR
- License: cc0-1.0
- Created: 2025-08-27T18:34:51.000Z (about 1 month ago)
- Default Branch: master
- Last Pushed: 2025-09-07T06:34:31.000Z (about 1 month ago)
- Last Synced: 2025-09-07T08:33:35.000Z (about 1 month ago)
- Topics: cms-backend, cms-experiment, cms-framework, python
- Language: HTML
- Homepage:
- Size: 25.8 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LilyOpenCms - Modern Content Management System
A comprehensive Flask-based content management system with advanced SEO features, multimedia management, and robust user permissions. Built for modern web publishing with automatic image optimization, comprehensive sitemap generation, and enterprise-grade security.
## Features
### Recent System Improvements (2025-09-08)
- **✅ Aggressive Query Caching System**: Advanced caching with background refresh, smart preloading, and extended cache times
- Background refresh system that refreshes cache at 80% of timeout
- Smart preloading with prediction patterns for related queries
- Extended cache times (2x) for aggressive mode performance
- Preload queue system for background query execution
- Cache warming functionality for common queries on startup
- Enhanced statistics tracking (preloads, background refreshes, prediction accuracy)
- Aggressive caching decorators: `@cache_frontend_critical`, `@cache_user_dashboard`, `@cache_public_content`, `@cache_navigation_data`
- Applied to all major route files for maximum performance impact
- Thread-safe cache operations with proper locking
- Smart cache invalidation with pattern matching
- **✅ SSR Optimization Dashboard**: Live refresh functionality with dynamic DOM updates
- Read-only endpoints for SSR statistics and cache stats
- Settings endpoints for template caching configuration
- Dynamic DOM updates without full page reload
- Settings persistence to `instance/app_settings.json`
- **✅ Comment Edit & Delete System**: Comprehensive comment management with inline editing and deletion in user library
- **✅ User Image Management**: Dedicated image management page with upload, edit, delete, and visibility controls
- **✅ Enhanced Profile Layout**: Optimized profile.html to use more viewport width with improved spacing and layout
- **✅ Content Deletion Request System**: Role-based content deletion with admin approval workflow for news and albums
- **✅ SQLAlchemy Relationship Fixes**: Fixed User.news and User.albums relationships with explicit foreign_keys
- **✅ Content Deletion Management UI**: Admin interface for managing content deletion requests with bulk operations
- **✅ Enhanced Content Security**: Only admin-tier users can delete content directly, others must request approval
- **✅ Smart Routing System**: Role-based dashboard routing (admin/superuser/owner → `/settings`, general users → `/dashboard`)
- **✅ Template Context Integration**: Added `get_user_dashboard_url()` function to Flask template context processors
- **✅ Consistent Navigation Experience**: All dashboard links now use smart routing for seamless navigation
- **✅ Enhanced User Management System**: Advanced user listing with pagination, search, and filtering
- **✅ User Creation API**: Admin user creation with role assignment and premium status
- **✅ User Statistics Dashboard**: Real-time user statistics and role distribution
- **✅ Backup API Endpoints**: Resolved 404 errors for roles and permissions
- **✅ Permission Management**: Centralized permission system with 80+ granular permissions
- **✅ Admin Sidebar Enhancement**: Sub-group navigation with permission-based visibility
- **✅ Comprehensive Endpoint Testing**: 95% success rate with full authentication testing
- **✅ Template Path Fixes**: All admin template paths corrected and verified
- **✅ Authentication Enhancement**: Session-based testing with proper CSRF token handling
- **✅ Error Handling**: Robust error handling and fallback mechanisms implemented
- **✅ DOCX Upload Tool Enhancement**: Added quick link to news management for seamless workflow integration### Content Management
- **Advanced News Management**: Create, edit, delete articles with rich text editing (edit via `/settings/create_news?news_id=`, redirects back to `/settings/manage_news` or album chapters if `album_id` present)
- **Album Management System**: Create albums containing multiple news/articles as chapters, like a novel structure
- **Public Album Pages**: Dedicated album listing, detail pages, and chapter reader with markdown support
- **Related Content Discovery**: Related albums carousel and author's other works sections
- **Comment System**: Nested comments with like/dislike functionality, moderation, spam detection, and reporting system
- **Rating System**: 5-star rating system with statistics, analytics, and distribution tracking for news and albums
- **SEO Optimization**: Per-article SEO management (meta descriptions, keywords, Open Graph tags, Twitter Cards, Schema Markup)
- **Content Scheduling**: Schedule posts for future publication
- **Bulk Operations**: Mass edit, delete, and categorize content
- **Content Archiving**: Archive old content while preserving access
- **Content Duplication**: Clone articles for quick content creation
- **Revision History**: Track changes and restore previous versions
- **Related Articles**: Smart content suggestions
- **Enhanced Settings Management**: Advanced admin dashboard with tabbed interface, real-time search, and optimized JavaScript architecture### Media Management
- **Automatic Image Optimization**: WebP conversion, compression, and multiple thumbnail sizes
- **User Image Management**: Dedicated image management page with upload, edit, delete, and visibility controls
- **Image Visibility Control**: Toggle image visibility with proper permission checks
- **Image Gallery Integration**: Seamless integration with content creation workflows
- **YouTube Integration**: Embed and manage YouTube videos
- **Gallery Management**: Organize and display image collections
- **Media Usage Tracking**: See which images are used where
- **Bulk Upload**: Multiple file upload with progress tracking
- **CDN Ready**: Optimized for content delivery networks### User & Permission System
- **Smart Routing System**: Role-based dashboard routing (admin/superuser/owner → `/settings`, general users → `/dashboard`)
- **Template Context Integration**: Automatic dashboard selection based on user role
- **Enhanced User Management**: Advanced user listing with pagination, search, and filtering
- **User Creation System**: Admin user creation with role assignment and premium status
- **User Statistics Dashboard**: Real-time user statistics and role distribution
- **Custom Role System**: Beyond basic admin/general roles with 14 custom roles
- **Granular Permissions**: Matrix-based access control with 80+ granular permissions
- **Centralized Permission System**: Permission management with role-based inheritance
- **User Activity Tracking**: Login history, content creation, admin actions
- **Account Management**: Profile pictures, bios, social links
- **User Performance Metrics**: Track user contributions and activity
- **Account Suspension**: Temporary and permanent account restrictions
- **Registration Approval**: Admin-controlled user registration
- **Backup API Endpoints**: Resolved 404 errors for roles and permissions### SEO & Analytics
- **SEO Leveling System**: Hierarchical SEO management with content-specific SEO taking precedence over root SEO
- **Comprehensive Sitemaps**: XML sitemaps for all content types
- **SEO Score Calculation**: Automated SEO scoring (0-100)
- **Meta Tag Management**: Complete meta tag control
- **Schema Markup**: JSON-LD structured data generation
- **Social Media Optimization**: Open Graph and Twitter Card support
- **Analytics Dashboard**: Content performance metrics
- **Search Engine Optimization**: URL slugs, canonical URLs, robots.txt### Security & Performance
- **Advanced Security**: Rate limiting, input validation, CSRF protection
- **File Upload Security**: Virus scanning, type restrictions
- **Session Management**: Secure session handling with auto-logout
- **Database Security**: SQL injection protection with parameterized queries
- **Aggressive Query Caching**: Advanced caching system with background refresh, smart preloading, and extended cache times
- **Performance Optimization**: Redis caching, database optimization, lazy loading, progressive images, externalized JavaScript modules
- **Performance Monitoring**: Real-time metrics, slow query detection, cache management
- **Frontend Optimization**: Externalized JavaScript files for better caching and faster loading
- **Cache Statistics**: Comprehensive cache performance tracking with preloads, background refreshes, and prediction accuracy### Premium & Subscription System
- **Premium Content**: Exclusive content for subscribers
- **Subscription Management**: Multiple subscription tiers
- **Ad-Free Experience**: Premium users get ad-free browsing
- **Content Gating**: Protect premium content with subscription requirements
- **Payment Integration**: Ready for payment gateway integration### Content Deletion Request System
- **Consistent Workflow**: All users (including admins) must request content deletion for approval
- **Request Workflow**: Any user can request deletion of any content for admin approval
- **Admin Approval**: Content moderators and admins approve/reject deletion requests
- **Bulk Operations**: Efficient bulk approve/reject functionality for multiple requests
- **Request Management**: Dedicated admin interface for managing deletion requests
- **Audit Trail**: Complete tracking of who requested, when, and approval status
- **Enhanced Security**: Prevents unauthorized content deletion while maintaining consistent workflownn### 🌐 Public API Endpointsn- **Multiplatform Access**: JSON endpoints for mobile apps, desktop clients, and third-party integrationsn- **News API**: Public endpoints for news articles and lists with filtering and paginationn- **Albums API**: Public endpoints for albums, chapters, and related contentn- **User Profiles API**: Public user profile data, statistics, and library accessn- **Categories & Tags API**: Public access to content categories and tag systemn- **Comments API**: Public comment retrieval with threading and moderationn- **Unified Search API**: Cross-content search with type filtering and paginationn- **No Authentication Required**: All endpoints are publicly accessible for multiplatform usage### Comment & Rating System
- **Nested Comments**: Threaded comment system with replies
- **Inline Comment Editing**: Edit comments directly in the user library with real-time updates
- **Comment Deletion**: Delete comments with confirmation dialogs and DOM updates
- **Like/Dislike System**: Users can like or dislike comments
- **Comment Moderation**: Admin approval system with spam detection
- **Comment Reporting**: Users can report inappropriate comments
- **Spam Detection**: Automatic spam filtering with configurable rules
- **User Library Integration**: Comment management in user library with edit/delete capabilities
- **5-Star Rating System**: Rate news articles and albums (1-5 stars)
- **Rating Statistics**: Average ratings, distribution, and analytics
- **Rating Analytics**: Comprehensive rating dashboard for admins
- **User Rating History**: Track all ratings by specific users
- **Content Rating Protection**: Prevent duplicate ratings per user
- **Rating Distribution**: Visual breakdown of 1-5 star ratings
- **Top Rated Content**: Discover highest-rated articles and albums### Achievement System
- **Comprehensive Gamification**: Track user activities and award achievements
- **Streak Tracking**: Login, activity, and reading streaks with daily consistency
- **Contribution Achievements**: Content creation milestones (articles, albums, images)
- **Exploration Achievements**: Content engagement (comments, ratings, reading)
- **Community Achievements**: Social interactions (likes, comments received)
- **Milestone Achievements**: Level progression and point accumulation
- **Points & Leveling**: Point-based progression system with automatic level-ups
- **Achievement Categories**: Organized into 7 categories with visual indicators
- **Progress Tracking**: Detailed progress history and completion rates
- **Real-time Notifications**: Instant achievement unlock notifications
- **Achievement Dashboard**: Comprehensive user achievement overview
- **Performance Optimized**: Efficient tracking with database indexes and cleanup## Tech Stack
### Backend
- **Python 3.8+** - Core programming language
- **Flask 2.x** - Web framework
- **SQLAlchemy** - ORM and database management
- **Safe Migration System** - Custom database migration system
- **Flask-Login** - Authentication system
- **Flask-WTF** - Form handling and CSRF protection
- **Pillow (PIL)** - Image processing and optimization### Frontend
- **Tailwind CSS** - Utility-first CSS framework
- **JavaScript (ES6+)** - Modern JavaScript with externalized modules for optimal caching
- **SimpleMDE** - Markdown editor
- **Swiper.js** - Touch slider for featured content
- **Advanced Search System** - Real-time search with dedicated results tab and highlighted matches### Database
- **SQLite** - Default database (production-ready alternatives supported)
- **PostgreSQL/MySQL** - Production database options### Deployment
- **Gunicorn** - WSGI server
- **Passenger** - Alternative WSGI server
- **Docker** - Containerization ready## Installation
### Prerequisites
- Python 3.8 or higher
- pip package manager
- Git
- Redis (for performance optimizations)### Quick Start
1. **Clone the repository**
```bash
git clone
cd LilyOpenCms
```
2. **Create virtual environment**```bash
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
```
3. **Install dependencies**```bash
pip install -r requirements.txt
```
4. **Set up Redis (Required for performance optimizations)****Ubuntu/Debian:**
```bash
sudo apt update
sudo apt install redis-server
sudo systemctl start redis-server
sudo systemctl enable redis-server
```**macOS:**
```bash
brew install redis
brew services start redis
```**Windows:**
```bash
# Download from https://redis.io/download
# Or use WSL2 with Ubuntu instructions above
```**Using the provided setup script:**
```bash
chmod +x optimizations/setup_redis.sh
./optimizations/setup_redis.sh
```
5. **Set up environment variables**```bash
cp .env.example .env
# Edit .env with your configuration
```
6. **Initialize database**```bash
flask db upgrade
```
7. **Seed initial data (optional)**```bash
cd helper
python generate_user.py
python add_chategories.py
python add_fake_news.py
python add_fake_images.py
python add_videos.py
python init_footer_data.py
```
8. **Set up achievement system (optional)**```bash
# Initialize achievement system with default categories and achievements
python helper/init_achievement_system.py# Test the achievement system
python test/test_achievement_system.py
```
9. **Run the application**```bash
python main.py
```Open `http://127.0.0.1:5000` in your browser.
### Redis Configuration
The application uses Redis for caching and performance optimizations. Make sure Redis is running before starting the application.
**Verify Redis is running:**
```bash
redis-cli ping
# Should return: PONG
```**Test Redis connection from Python:**
```bash
python -c "import redis; r = redis.Redis(); print('Redis connection:', r.ping())"
```**Redis Configuration Options:**
- **Default**: `redis://localhost:6379/0`
- **With Password**: `redis://:password@localhost:6379/0`
- **Custom Host/Port**: Set `REDIS_HOST` and `REDIS_PORT` in `.env`## Documentation
### Core Documentation
- **[Documentation Index](docs/README.md)** - Complete documentation index and navigation
- **[API Documentation](docs/api.md)** - Complete API reference with endpoints and examples
- **[Admin UI Guide](docs/admin_ui.md)** - Comprehensive admin interface documentation
- **[Sitemap Documentation](docs/SITEMAP_DOCUMENTATION.md)** - Complete sitemap system guide
- **[Development Roadmap](docs/TODO.md)** - Current development status and progress tracking
- **[Achievement System Guide](docs/ACHIEVEMENT_SYSTEM_GUIDE.md)** - Comprehensive achievement system documentation### Performance & Optimization
- **[Performance & Optimizations – Comprehensive](docs/PERFORMANCE_OPTIMIZATIONS_COMPREHENSIVE.md)** - Complete performance guide with quick start and advanced topics
- **[Performance Optimization Guide](docs/PERFORMANCE_OPTIMIZATION.md)** - Comprehensive performance optimization
- **[Performance Quick Start](docs/PERFORMANCE_QUICK_START.md)** - Quick setup for performance features
- **[Advanced Optimizations](docs/ADVANCED_OPTIMIZATIONS.md)** - Advanced optimization techniques
- **[Optimization Reorganization](docs/OPTIMIZATION_REORGANIZATION.md)** - Optimization system structure### System Implementation
- **[Current System Status](docs/CURRENT_SYSTEM_STATUS.md)** - Current implementation status overview
- **[Implementation Summary](docs/IMPLEMENTATION_SUMMARY.md)** - Current system implementation status
- **[Final Implementation Summary](docs/FINAL_IMPLEMENTATION_SUMMARY.md)** - Complete implementation overview
- **[Premium System Implementation](docs/PREMIUM_SYSTEM_IMPLEMENTATION.md)** - Premium content system guide
- **[Premium Content & Subscription – Comprehensive](docs/PREMIUM_SYSTEM_COMPREHENSIVE.md)** - Premium content and subscription system
- **[Subscription System Status](docs/SUBSCRIPTION_SYSTEM_STATUS.md)** - Subscription feature status
- **[Comment & Rating System – Comprehensive](docs/COMMENT_RATING_COMPREHENSIVE.md)** - Complete comment and rating system documentation
- **[Comment Rating System](docs/COMMENT_RATING_SYSTEM.md)** - Comment and rating system documentation
- **[Premium Content System](docs/PREMIUM_CONTENT_SYSTEM.md)** - Premium content and subscription features
- **[Weighted Rating System](docs/WEIGHTED_RATING_SYSTEM.md)** - Advanced rating algorithms and analytics
- **[Unified News System](docs/UNIFIED_NEWS_SYSTEM.md)** - News and article management system
- **[Contact Details Guide](docs/CONTACT_DETAILS_GUIDE.md)** - Contact information management
- **[SEO Leveling System](docs/seo_leveling_system.md)** - Hierarchical SEO management with content-specific overrides
- **[SEO Leveling Comprehensive](docs/SEO_LEVELING_COMPREHENSIVE.md)** - Hierarchical SEO management system### UI/UX & Design
- **[Card Design System](docs/CARD_DESIGN_SYSTEM.md)** - Complete card design system with 4 distinct designs
- **[Card Design Troubleshooting](docs/CARD_DESIGN_TROUBLESHOOTING.md)** - Troubleshooting guide for card design issues### Ads & Marketing
- **[Ads Injection System – Comprehensive](docs/ADS_INJECTION_COMPREHENSIVE.md)** - Ads injection architecture and roadmap
### Content & Media
- **[Album View Count Implementation](docs/ALBUM_VIEW_COUNT_IMPLEMENTATION.md)** - View count tracking for albums
- **[Share System Fix](docs/SHARE_SYSTEM_FIX.md)** - Social sharing system implementation### Deployment & Configuration
- **[Deployment Guide](docs/DEPLOYMENT_GUIDE.md)** - Complete deployment guide for DirectAdmin hosting and other environments
## SEO Leveling System
The SEO Leveling System implements a hierarchical approach to SEO data management, ensuring that content-specific SEO takes precedence over root SEO settings. This prevents the root SEO from always taking over and allows for proper content-specific optimization.
### Key Features
- **Hierarchical SEO Management**: Content-specific SEO takes precedence over root SEO
- **URL Pattern Detection**: Automatic detection of news articles (`/news//`) and albums (`/album//`)
- **Content-Specific Overrides**: News and album SEO fields override root SEO settings
- **Template Integration**: Updated `base.html` to use unified `seo_data` structure
- **SEO Override Blocks**: Enhanced `reader.html` and `album_detail.html` with content-specific SEO blocks
- **Proper OG Types**: Articles use `og:type=article`, albums use `og:type=book`
- **Fallback System**: Root SEO provides sensible defaults when content-specific SEO is not available### SEO Hierarchy (Priority Order)
1. **Content-Specific SEO** (Highest Priority)
- News/Article SEO
- Album SEO
- Chapter SEO
2. **Root SEO** (Fallback)- Page-specific root SEO settings
- Default values
3. **Brand Defaults** (Lowest Priority)- Brand identity settings
- Hardcoded fallbacks### Implementation Details
- **Context Processor**: `inject_seo_data()` handles SEO leveling logic
- **URL Detection**: Automatic detection of content types based on URL patterns
- **Template Blocks**: Content templates can override SEO data using template blocks
- **Backward Compatibility**: Existing SEO functionality remains unchanged
- **Performance Optimized**: Efficient SEO data retrieval and cachingFor detailed implementation information, see [SEO Leveling System Documentation](docs/seo_leveling_system.md).
### Development
- **[Development Roadmap](docs/TODO.md)** - Current development status and future plans
- **[Helper Scripts README](helper/README.md)** - Helper scripts documentation and usage
- **[Routes Utils README](routes/utils/README.md)** - Permission and role management system documentation## Configuration
### Environment Variables
Create a `.env` file in the root directory:
```env
# Flask Configuration
SECRET_KEY=your-secret-key-here
FLASK_ENV=development
FLASK_DEBUG=True# Database Configuration
DATABASE_URI=sqlite:///instance/LilyOpenCms.db# File Upload Configuration
MAX_CONTENT_LENGTH=16777216 # 16MB max file size
UPLOAD_FOLDER=static/uploads# Email Configuration (optional)
MAIL_SERVER=smtp.gmail.com
MAIL_PORT=587
MAIL_USE_TLS=True
MAIL_USERNAME=your-email@gmail.com
MAIL_PASSWORD=your-app-password# YouTube API (optional)
YOUTUBE_API_KEY=your-youtube-api-key# External Services (optional)
GOOGLE_ANALYTICS_ID=GA-XXXXXXXXX-X# Performance Optimization (optional)
REDIS_URL=redis://localhost:6379/0
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
```## Performance Optimizations
LilyOpenCms includes comprehensive performance optimizations organized in the `optimizations/` package:
### Quick Setup
```bash
# Install Redis and configure performance optimizations
chmod +x optimizations/setup_redis.sh
./optimizations/setup_redis.sh# Access performance dashboard
# Visit: http://localhost:5000/admin/performance
```### Key Features
- **Aggressive Query Caching**: Advanced caching system with background refresh, smart preloading, and extended cache times
- **Redis Caching**: Fast data retrieval with intelligent cache invalidation
- **Database Optimization**: Connection pooling, query optimization, automatic indexing
- **Frontend Optimization**: Lazy loading, progressive images, asset optimization, externalized JavaScript modules
- **Performance Monitoring**: Real-time metrics, slow query detection, cache management
- **JavaScript Optimization**: Externalized modules for better caching and faster loading times
- **Cache Statistics**: Comprehensive performance tracking with preloads, background refreshes, and prediction accuracy### Documentation
- [Performance Optimization Guide](docs/PERFORMANCE_OPTIMIZATION.md)
- [Quick Start Guide](docs/PERFORMANCE_QUICK_START.md)
- [Advanced Optimizations](docs/ADVANCED_OPTIMIZATIONS.md)
- [Optimizations Package README](optimizations/README.md)## API Endpoints
### Content Management
- `GET /api/news` - List news articles with filtering
- `POST /api/news` - Create new article
- `PUT /api/news/` - Update article
- `DELETE /api/news/` - Delete article (admin-tier users only)
- `POST /api/news//request-deletion` - Request article deletion (non-admin users)
- `GET /api/news/deletion-requests` - Get news deletion requests (admin only)
- `POST /api/news//approve-deletion` - Approve news deletion request (admin only)
- `POST /api/news//reject-deletion` - Reject news deletion request (admin only)
- `PATCH /api/news//visibility` - Toggle visibility
- `PATCH /api/news//archive` - Archive article
- `PATCH /api/news//unarchive` - Unarchive article
- `POST /api/news//duplicate` - Duplicate article
- `GET /api/albums` - List albums with filtering
- `POST /api/albums` - Create new album
- `PUT /api/albums/` - Update album
- `DELETE /api/albums/` - Delete album (admin-tier users only)
- `POST /admin/albums//request-deletion` - Request album deletion (non-admin users)
- `GET /admin/albums/deletion-requests` - Get album deletion requests (admin only)
- `POST /admin/albums//approve-deletion` - Approve album deletion request (admin only)
- `POST /admin/albums//reject-deletion` - Reject album deletion request (admin only)
- `PATCH /api/albums//visibility` - Toggle album visibility
- `PATCH /api/albums//archive` - Archive album
- `PATCH /api/albums//unarchive` - Unarchive album
- `POST /api/albums//chapters` - Add chapter to album
- `DELETE /api/albums//chapters/` - Remove chapter from album### Comment System
- `GET /api/comments//` - Get comments for news/album with pagination
- `POST /api/comments` - Create new comment (requires authentication)
- `PUT /api/comments/` - Update comment with success response (owner or admin only)
- `DELETE /api/comments/` - Delete comment with success response (owner or admin only)
- `GET /api/account/library/comments` - Get user's library comments with edit/delete capabilities
- `POST /api/comments//like` - Like/unlike comment
- `POST /api/comments//report` - Report comment for moderation
- `GET /admin/comments` - Admin comment moderation interface
- `POST /admin/comments//approve` - Approve comment (admin only)
- `POST /admin/comments//reject` - Reject comment (admin only)
- `POST /admin/comments//mark-spam` - Mark comment as spam (admin only)
- `POST /admin/comments//delete` - Admin delete comment### Rating System
- `GET /api/ratings//` - Get rating statistics for news/album
- `POST /api/ratings` - Create or update rating (requires authentication)
- `DELETE /api/ratings//` - Delete user's rating
- `GET /api/ratings/stats` - Get overall rating statistics
- `GET /api/ratings/user/` - Get all ratings by specific user
- `GET /admin/ratings` - Admin rating management interface
- `POST /admin/ratings//delete` - Admin delete rating
- `GET /admin/ratings/analytics` - Admin rating analytics dashboard### Public Album Pages
- `GET /albums` - Public album listing page with filtering and search
- `GET /album//` - Album detail page with author info and chapters
- `GET /album//chapter//` - Chapter reader with markdown support### Media Management
- `GET /api/images` - List images with filtering
- `POST /api/images` - Upload image
- `PUT /api/images/` - Update image
- `DELETE /api/images/` - Delete image
- `PATCH /api/images//visibility` - Toggle image visibility
- `GET /user//images` - User image management page
- `POST /user//images/upload` - Upload image to user gallery
- `PUT /user//images//update` - Update user image
- `DELETE /user//images//delete` - Delete user image
- `GET /api/youtube_videos` - List YouTube videos
- `POST /api/youtube_videos` - Add YouTube video
- `PUT /api/youtube_videos/` - Update video
- `DELETE /api/youtube_videos/` - Delete video### User Management
- `GET /api/users` - List users with pagination, search, and filtering (role, status, verification)
- `POST /api/users` - Create user with role assignment and premium status
- `GET /api/users//details` - Get comprehensive user details and statistics
- `POST /api/users//reset-password` - Reset user password (admin only)
- `GET /api/users/stats` - Get overall user statistics and role distribution
- `GET /api/pending/stats` - Get pending registration statistics
- `PUT /api/users/` - Update user
- `DELETE /api/users/` - Delete user
- `PATCH /api/users//verify` - Toggle user verification
- `PATCH /api/users//status` - Toggle user status
- `POST /api/users//suspend` - Suspend user
- `POST /api/users//unsuspend` - Unsuspend user
- `GET /api/registrations/pending` - Get pending registrations
- `POST /api/registrations//approve` - Approve registration
- `POST /api/registrations//reject` - Reject registration
- `POST /api/user/request-account-deletion` - Request account deletion (general users only)
- `GET /api/users/deletion-requests` - Get account deletion requests (admin only)
- `POST /api/users//approve-deletion` - Approve account deletion request (admin only)
- `POST /api/users//reject-deletion` - Reject account deletion request (admin only)### Roles & Permissions
- `GET /api/roles` - List roles (backup implementation in routes_users.py)
- `POST /api/roles` - Create role
- `PUT /api/roles/` - Update role
- `DELETE /api/roles/` - Delete role
- `GET /api/permissions` - List permissions (backup implementation in routes_users.py)
- `POST /api/permissions` - Create permission
- `PUT /api/permissions/` - Update permission
- `DELETE /api/permissions/` - Delete permission### Navigation Management
- `GET /api/navigation-links` - List navigation links
- `POST /api/navigation-links` - Create navigation link
- `PUT /api/navigation-links/` - Update navigation link
- `DELETE /api/navigation-links/` - Delete navigation link
- `POST /api/navigation-links/bulk-update` - Bulk update navigation links### SEO & Analytics
- `GET /sitemap.xml` - Main sitemap
- `GET /sitemap-news.xml` - News-specific sitemap
- `GET /sitemap-index.xml` - Sitemap index
- `GET /robots.txt` - Search engine directives
- `GET /api/analytics/visitors` - Visitor statistics
- `GET /api/analytics/content` - Content analytics
- `GET /api/analytics/activity` - Activity logs
- `GET /api/analytics/performance` - Performance metrics### Premium & Subscription
- `GET /api/subscriptions/plans` - Get subscription plans
- `POST /api/subscriptions/create` - Create subscription
- `POST /api/subscriptions/cancel` - Cancel subscription
- `GET /api/subscriptions/status` - Get subscription status
- `POST /api/subscriptions/update-ad-preferences` - Update ad preferences
- `GET /api/subscriptions/check-premium-access` - Check premium access## Authentication & Authorization
### User Roles
- **SUPERUSER**: Full system access with all permissions
- **ADMIN**: Content and user management with limited system access
- **GENERAL**: Basic content creation and personal management### Smart Routing System
- **Role-Based Navigation**: Automatic dashboard routing based on user role
- **Admin/Superuser/Owner**: Redirected to `/settings` (admin dashboard)
- **General Users**: Redirected to `/dashboard` (reader dashboard)
- **Template Integration**: All dashboard links use smart routing via `get_user_dashboard_url()` function
- **Login Integration**: Login redirects use the same smart routing logic
- **Consistent Experience**: Seamless navigation across all templates### Permission System
- **Enhanced User Management**: Advanced user listing with pagination, search, and filtering
- **User Creation System**: Admin user creation with role assignment and premium status
- **User Statistics Dashboard**: Real-time user statistics and role distribution
- **Granular Permissions**: Matrix-based access control with 80+ granular permissions
- **Centralized Permission System**: Permission management with role-based inheritance
- **Role-based Access**: Automatic permission assignment based on roles
- **Activity Logging**: Comprehensive audit trails for all actions
- **Session Management**: Secure session handling with auto-logout
- **Comprehensive Testing**: All endpoints tested with different user roles
- **Template Path Verification**: All admin templates properly configured
- **Error Handling**: Robust error handling for permission violations
- **Backup API Endpoints**: Resolved 404 errors for roles and permissions## SEO Features
### Sitemap Generation
- **Main Sitemap**: All content types with proper priorities
- **News Sitemap**: News-specific optimization with publication dates
- **Sitemap Index**: For large sites with multiple sitemaps
- **SEO Integration**: Uses meta_robots, seo_slug, priorities, and changefreq### SEO Management
- **Meta Tags**: Description, keywords, author, language, robots
- **Open Graph**: Social media optimization for Facebook, LinkedIn
- **Twitter Cards**: Twitter-specific optimization
- **Schema Markup**: JSON-LD structured data for search engines
- **SEO Scoring**: Automated SEO analysis (0-100 scale)
- **Canonical URLs**: Prevent duplicate content issues
- **URL Optimization**: SEO-friendly slugs and redirects## UI/UX Features
### Design System
- **Tailwind CSS**: Utility-first styling with custom configuration
- **Responsive Design**: Mobile-first approach with breakpoint optimization
- **Dark Mode**: Theme switching capability with persistent preferences
- **Toast Notifications**: User feedback system with multiple types
- **Loading States**: Comprehensive loading indicators and skeleton screens### Components
- **Dynamic Sidebar**: Role-based navigation with collapsible sections
- **Pagination**: Efficient content browsing with configurable page sizes
- **Search & Filter**: Advanced content discovery with multiple filters and real-time search results
- **Bulk Operations**: Efficient content management with batch processing
- **Modal System**: Reusable modal components for forms and confirmations
- **Data Tables**: Sortable, filterable tables with bulk actions
- **Tabbed Interfaces**: Advanced tabbed navigation with search integration and state management## Database Models
### Core Models
- **User**: Authentication, profiles, roles, permissions, activity tracking
- **News**: Articles with SEO, scheduling, archiving, related content
- **Album**: Album management with chapters, completion status, hiatus tracking, author relationships
- **AlbumChapter**: Chapter relationships between albums and news articles
- **Category**: Content organization with hierarchical structure
- **Image**: Media management with optimization, usage tracking
- **YouTubeVideo**: Video content with metadata and embedding
- **TeamMember**: Team management with roles and contact information### Comment & Rating Models
- **Comment**: User comments on news/albums with moderation, spam detection, nested replies
- **CommentLike**: Like/dislike system for comments with user tracking
- **CommentReport**: Comment reporting system for inappropriate content
- **Rating**: 5-star rating system for news/albums with statistics and analytics### SEO & Brand Models
- **BrandIdentity**: Brand assets, colors, typography, guidelines
- **SocialMedia**: Social media links and platform management
- **ContactDetail**: Contact information and location data
- **NavigationLink**: Navigation menu management with internal/external links### Legal & Policy Models
- **PrivacyPolicy**: Privacy policy content and versioning
- **MediaGuideline**: Media guidelines and usage policies
- **VisiMisi**: Vision and mission statements
- **Penyangkalan**: Disclaimer and legal disclaimers
- **PedomanHak**: Rights and guidelines documentation### System Models
- **UserRole**: Role definitions and permissions
- **Permission**: Granular permission system
- **CustomRole**: Custom role creation and management
- **UserActivity**: Activity logging and audit trails
- **ShareLog**: Social sharing tracking and analytics## Deployment
### Development
```bash
python main.py
```### Production with Gunicorn
```bash
gunicorn --bind 0.0.0.0:8000 main:app
```### Production with Passenger
```bash
# Configure passenger_wsgi.py
passenger start
```### Docker Deployment
```dockerfile
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "main:app"]
```## Testing
### Running Tests
```bash
# Install dependencies
pip install -r requirements.txt# Run all tests
python test/run_tests.py# Run quick tests
python test/quick_test.py# Run comprehensive endpoint tests (NEW)
python test/test_comprehensive_endpoints.py# Run specific tests
python test/test_seo_leveling.py
python test/test_authentication.py
python test/test_user_management.py
```### Test Coverage
- **Core System Tests**: Authentication, user management, database models
- **Performance Tests**: Monitoring, caching, optimization
- **Feature Tests**: Comments, ratings, assets, navigation
- **SEO Tests**: SEO leveling system, content-specific SEO overrides
- **Infrastructure Tests**: Redis connection, subscription system
- **Comprehensive Endpoint Tests**: Full endpoint testing with different user roles (no login, general, admin, superuser)
- **Authentication & Authorization Tests**: Session-based testing with proper CSRF token handling
- **Template Path Tests**: Verification of all admin template paths and rendering
- **Permission System Tests**: Role-based access control verification across all endpoints### SEO Leveling Test
The SEO leveling system includes comprehensive tests to verify:
- ✅ Content-specific SEO takes precedence over root SEO
- ✅ URL pattern detection for news and album pages
- ✅ Template integration with SEO override blocks
- ✅ Proper OG types (article for news, book for albums)
- ✅ Fallback system with root SEO and brand defaults```bash
# Run SEO leveling test specifically
python test/test_seo_leveling.py
```### Comprehensive Endpoint Testing (NEW)
The system includes comprehensive endpoint testing with session-based authentication:
- ✅ **95% Success Rate**: 28/30 endpoints working correctly
- ✅ **Authentication Testing**: All user roles (general, admin, superuser) tested
- ✅ **Permission System**: Role-based access control verified
- ✅ **Template Paths**: All admin template paths fixed and verified
- ✅ **Session Management**: Proper CSRF token handling and session management
- ✅ **Error Handling**: Comprehensive error handling and fallback mechanisms**Test Coverage:**
- Comment moderation endpoints
- Rating management endpoints
- Ads management endpoints
- Analytics endpoints
- User management endpoints
- Subscription endpoints
- SEO management endpoints```bash
# Run comprehensive endpoint tests
python test/test_comprehensive_endpoints.py
```## Contributing
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request### Development Guidelines
- Follow PEP 8 Python style guide
- Write tests for new features
- Update documentation for API changes
- Use conventional commit messages
- Ensure all tests pass before submitting PR## License
This project is licensed under the CC0 License - see the [LICENSE](LICENSE) file for details.
## Support
- **Documentation**: Check the [docs/](docs/) folder for comprehensive guides
- **Issues**: Report bugs via GitHub Issues
- **Discussions**: Use GitHub Discussions for questions
- **Email**: Contact the development team## Acknowledgments
- Flask community for the excellent web framework
- Tailwind CSS for the utility-first CSS framework
- All contributors who have helped improve LilyOpenCms---
**LilyOpenCms** - Modern content management for the digital age.