V2.0 is on the horizon!
Release is set to end of June (v2.0)
Official links
https://rustcms.net - Official Website - will be released when we are live.
https://demo.rustcms.net/ - Demo version to explore the features - will be launched weeks before launch.
# RustCMS Development Roadmap
This document outlines the planned development path for RustCMS,
including completed milestones, current development priorities, and future enhancements.
## Completed Milestones
## Initial Setup
- Created project structure with the following directories:
- app/
- config/
- controllers/
- models/
- views/
- public/
- css/
- js/
- images/
- admin/
- core/
- Set up basic file organization
- Initialized progress tracking file
## Core System Development
- Created main application architecture
- Implemented core classes:
- Application.php - Main application controller
- Database.php - Database connection and query handling
- Router.php - URL routing and request handling
- Session.php - Session management and security
- Created autoloader for class loading
- Defined application routes in routes.php
- Created base controller class (BaseController.php)
- Implemented HomeController for the main page
## Frontend Development
- Created view templates:
- Main layout template (layouts/main.php)
- Home page template (home.php)
- Error pages (404.php, 500.php)
- Implemented responsive design using Bootstrap 5
- Added support for flash messages
## Installation System
- Created installation wizard with multi-step process:
- System requirements check
- Database configuration
- Site configuration
- Admin account creation
- Installation completion
- Implemented templates for each installation step
- Created configuration sample file (config.sample.php)
## Database Implementation
- Created schema.sql with tables for users, servers, news, staff, pages, settings, server votes, and server status
- Implemented database installer script
- Updated installation process to create database and admin user
## Server Management
- Created ServerController with methods for listing servers, viewing server details, and voting
- Added server status updating functionality
- Created server views directory
## Admin Panel Development
- Created admin controllers:
- DashboardController.php - Admin dashboard with statistics
- ServerController.php - Manage servers (CRUD operations)
- UserController.php - Manage users (CRUD operations)
- NewsController.php - Manage news articles (CRUD operations)
- SettingsController.php - System settings management
- Updated routes to include admin functions
- Implemented permission control for admin area access
- Created admin panel views:
- Admin layout template (layouts/admin.php)
- Dashboard view with statistics (admin/dashboard.php)
- Server management views (admin/servers/*)
- User management views (admin/users/*)
- Added CSS and JavaScript for admin functionality
- Implemented responsive admin design using Bootstrap 5
## Authentication System
- Implemented AuthController with login, registration, and logout functionality
- Created login and registration form views
- Added password hashing and security measures
- Implemented session handling for logged-in users
- Added user role-based redirects after login
- Created user registration with validation and security checks
- Set up flash messages for authentication feedback
- Added password reset functionality with secure token-based system
- Created forgot password and reset password views
- Implemented email notification for password reset requests
## User Profile System
- Implemented UserController with profile viewing and editing functionality
- Created user profile view with personal information display
- Added user social media integration (Steam, Discord)
- Implemented profile editing with validation
- Added avatar upload functionality
- Created user activity tracking
- Integrated server favorites display
## News Management System
- Implemented news article creation interface
- Added news categories and tags functionality
- Created news listing and detail views
- Implemented featured news for homepage display
- Added rich text editor for content creation
- Implemented image uploads for news articles
- Added comment system for news articles:
- User comment submission
- Comment moderation system
- Comment approval workflow
- Admin comment management interface
- Implemented social media sharing for articles
- Added view count tracking for articles
- Created related articles functionality
## Staff Management System
- Created StaffController for frontend display of staff members
- Implemented staff listing page with position grouping
- Added user profile integration for staff members
- Created admin StaffController for staff management
- Implemented admin staff listing page
- Added functionality to add new staff members
- Created edit functionality for staff positions and information
- Implemented staff deletion functionality
- Added display order control for staff members
- Created views for staff management in admin panel
- Added social media links for staff profiles (Steam, Discord)
## Custom Pages System
- Created PageController for viewing custom pages on the frontend
- Implemented custom page view with metadata support
- Created admin PageController for page management
- Implemented admin page listing view
- Added functionality to create and edit custom pages
- Implemented rich text editor for page content
- Added SEO metadata management (title, description, keywords)
- Created publish/unpublish functionality for pages
- Added navigation menu integration for custom pages
- Implemented page deletion functionality
- Created URL slug generation and management
- Added menu ordering for pages displayed in navigation
## Server Management Enhancements
- Set up RCON integration for Rust server management
- Created RustRcon core class for RCON protocol implementation
- Implemented RconController for admin panel
- Added RCON console interface for server management
- Added player management (view, kick, ban)
- Added server info display
- Added broadcast message functionality
- Implemented command execution logging
- Implemented server status monitoring cron job
- Created automated server status checking
- Added player tracking
- Implemented server information updating
## Server Statistics and Analytics
- Implemented server statistics system
- Created StatisticsController for admin panel
- Added player count charts with multiple timeframes (day, week, month, year)
- Implemented server uptime tracking and visualization
- Added peak player time analysis
- Created player growth charts
- Added player statistics functionality
- Implemented top players tracking
- Added unique player counting
- Created recent players list
- Added player connection history
## Server Backup Management
- Created BackupController for admin panel
- Implemented backup database tables
- server_backups for storing backup records
- server_backup_logs for tracking backup operations
- Added backup functionality
- Create backups of Rust servers
- Download server backups
- Restore servers from backups
- Delete backups
- Implemented backup settings management
- Backup directory configuration
- Automatic backup scheduling
- Maximum backups per server setting
- Created backup views
- Backup management overview (index.php)
- Backup history for specific servers (history.php)
- Added backup integration with RCON
- Server communication during backup operations
- Server status management during restore
- Implemented backup logging and tracking
- Record backup creation information
- Track backup operations (create, download, restore, delete)
## Server Wipe Management System
- Created WipeController for admin panel
- Implemented wipe database table (server_wipes)
- Added wipe management functionality:
- Schedule wipes with different types (map, blueprint, full)
- Execute wipes with automatic pre-wipe backups
- Cancel scheduled wipes
- Track wipe history per server
- Created wipe notification system:
- Manual notification sending through admin panel
- Automatic notification via cron job
- Player broadcasts with time remaining information
- Implemented wipe views:
- Wipe management overview (index.php)
- Wipe history for specific servers (history.php)
- Wipe scheduling form (schedule.php)
- Added integration with existing systems:
- Backup system for pre-wipe and post-wipe backups
- RCON system for server communication during wipes
- Logging of all wipe-related actions
- Created cron job for automatic wipe notifications (notify_wipes.php)
# Plugin Management System
- Created database tables for plugin management:
- server_plugins: store plugin metadata and status
- plugin_configs: store plugin configuration values
- Implemented PluginController for admin panel
- Added plugin management functionality:
- List plugins by server
- Add new plugins with file uploads
- View plugin details and configuration
- Edit plugin information and configuration
- Enable/disable plugins
- Delete plugins
- Reload plugins
- Implemented file handling for plugin management:
- Upload plugin files (.cs for Oxide/uMod)
- Upload plugin configuration files (JSON)
- Download plugin files
- Added plugin configuration management:
- Add/edit/delete configuration values
- Support multiple data types (string, number, boolean, array, object)
- Push configuration to server
- Pull configuration from server
- Created plugin management views:
- Plugin overview (index.php)
- Server plugins (server.php)
- Add plugin form (add.php)
- Plugin details (view.php)
- Edit plugin (edit.php)
- Updated admin navigation with new plugin management section
- Integrated with RCON system for server plugin
- Created sample plugin and configuration files for testing
# Player Ban Management System
Created database tables for ban management:
- player_bans: store ban information
- ban_appeals: store ban appeal records
- ban_logs: track ban-related actions
- Implemented BanController for admin panel with functionality:
- List bans by server
- Add new bans with online player selection
- View ban details with history and appeals
- Edit ban information
- Unban players with RCON integration
- Ban logging system
- Search functionality for bans across all servers
- Created ban appeals system:
- List all appeals with status
- Review and approve/reject appeals
- Automatically unban on approval
- Added ban management views:
- Ban management overview (index.php)
- Server bans (server.php)
- Add ban form (add.php)
- Ban details (view.php)
- Edit ban form (edit.php)
- Ban appeals listing (appeals.php)
- Appeal review form (review-appeal.php)
- Ban search interface (search.php)
- Updated admin navigation with new ban management section
- Added routes for ban management
- Implemented ban enforcement via RCON
- Added player Steam profile linking
- Created flexible ban durations (temporary or permanent)
## Server Performance Monitoring System
- Created database tables for performance monitoring:
- server_performance: store server performance metrics
- performance_thresholds: define alert thresholds for various metrics
- performance_alerts: track created alerts
- maintenance_windows: schedule maintenance periods
- recovery_actions: define automatic actions for threshold violations
- Implemented ServerPerformance model with comprehensive functionality:
- Save and retrieve performance metrics
- Collect metrics from Rust servers via RCON
- Threshold management and violation detection
- Alert creation and management
- Maintenance window scheduling
- Recovery action execution
- Implemented PerformanceController for the admin panel with features:
- Server performance dashboard with real-time metrics
- Performance history visualization
- Threshold management
- Alert monitoring and acknowledgment
- Maintenance window scheduling
- Recovery action configuration
- Created views for the performance monitoring system:
- Main dashboard showing server status
- Server detail page with metrics
- Historical metrics visualization
- Threshold management interface
- Alert listing and management
- Maintenance window scheduling
- Recovery action configuration
- Added cron job for automatic metric collection
- Integrated with existing RCON system for server communication
- Implemented real-time metric visualization with progress bars
## Theme System Development
- Created Theme model for theme management functionality:
- Get all available themes from filesystem
- Set and retrieve active theme information
- Manage theme-specific assets (CSS/JS)
- Support custom layouts for themes
- Handle theme variable management
- Implemented ThemeController for the admin panel:
- Theme listing and activation
- Theme customization interface
- Save theme customization values
- Generate custom CSS from templates and variables
- Created theme management views:
- Theme listing (admin/themes/index.php)
- Theme customization (admin/themes/customize.php)
- Updated BaseController to support theme integration:
- Added theme instance initialization
- Modified view rendering to support custom theme layouts
- Added layout file selection based on active theme
- Modified main layout to include theme assets:
- Added theme CSS and JS injection points
- Added support for theme variable values
- Created theme directory structure:
- app/public/themes/ for theme files
- Support for theme assets (CSS, JavaScript)
- Support for custom layouts
- Implemented sample "Dark Theme":
- Created theme configuration (theme.json)
- Added CSS template with variable placeholders
- Created custom JavaScript for theme-specific functionality
- Added custom layout override
- Implemented variable-based design system
- Added user-configurable theme settings:
- Color scheme customization
- Typography options
- Animation toggles
- UI element styling
- Added routes for theme management in routes.php
- Updated autoloader to include Theme model
- Added animation support with conditional activation
- Implemented gradient header styling for Dark theme
- Added server status display in footer for Dark theme
- Enhanced navigation with icons in Dark theme
## Notification System Implementation
- Created Notification model for notification management:
- Methods for creating notifications for individual users or roles
- Functions for retrieving user notifications with pagination
- Tracking unread notification counts
- Mark-as-read functionality for individual or all notifications
- Deletion features for notification management
- User notification preferences (email/site notifications, notification types)
- Implemented NotificationController for user-facing notification operations:
- Viewing user notifications with pagination
- Real-time unread notification count retrieval via AJAX
- Mark-as-read functionality with AJAX support
- Notification deletion
- Preferences management
- Created admin NotificationController for notification management:
- Send notifications to all users, specific roles, or selected users
- View notification statistics
- User search functionality for specific targeting
- Implemented Mailer utility for email notifications:
- PHPMailer integration
- Configuration-based SMTP setup
- HTML email templates for notifications
- Support for attachments and customization
- Created notification views:
- User notification listing with type-based styling
- User notification preferences management interface
- Admin notification creation form with recipient selection
- Admin notification statistics dashboard with charts
- Updated layouts to integrate notifications:
- Added notification badge to main layout's navigation
- Real-time notification updates with JavaScript
- Notification access in admin panel sidebar
- Added notification-specific routes
- Added full support for notification preferences:
- Email notification opt-in/out
- Notification type filtering (system, news, server, user)
- Default preferences for new users
## Event Logging System Implementation
- Created EventLog model with comprehensive logging functionality:
- Methods for logging events of different types (system, user, server, security)
- Functions for retrieving event logs with filtering and pagination
- Helper methods for common event types
- Log retention policies and cleanup functionality
- Added EventLogController for the admin panel:
- Event logs listing with filtering options (type, action, user, date range)
- View detailed event logs with metadata
- Export logs to CSV for backup and analysis
- Configure log retention settings
- Clear old logs based on retention policy
- Implemented database table for event logs:
- Storing event type, action, description
- Recording user ID and IP address
- Saving additional metadata as JSON
- Tracking timestamps for all events
- Created event logs views:
- Main event logs listing with filters (index.php)
- Event log details view (view.php)
- Event log settings (settings.php)
- Added helper functions for common system events:
- logSystemEvent for system-wide events
- logUserEvent for user-related actions
- logServerEvent for server management activities
- logSecurityEvent for security-related incidents
- Integrated event logging throughout the application:
- Authentication events (login, registration, password reset)
- User management events (create, update, delete)
- Server management operations (status change, configuration)
- System settings changes
- Security-related activities (failed logins, suspicious behavior)
- Added routes for event log management
- Updated admin navigation with event logs section
- Implemented log visualization in the admin interface
- Added export functionality for compliance and analysis
## Server Categories System
- Created ServerCategory model for server categorization:
- Methods for creating and managing server categories
- Functions for assigning servers to categories
- Support for hierarchical category structures
- Implemented server category management in the admin panel:
- Create, edit, and delete server categories
- Assign servers to multiple categories
- Reorder categories for display purposes
- Updated server listing to support category-based views:
- Filter servers by category
- Display category badges on server cards
- Category-specific server layouts
- Added server category selection in server creation/editing forms
- Created category-specific pages for showcasing servers by category:
- Vanilla servers listing
- Modded servers listing
- PvP/PvE specific server views
- Updated server search functionality to include category filters
- Enhanced navigation to include category-based server browsing
## Donation and Payment System
- Created complete donation and payment system with:
- Configurable payment gateways (PayPal integration)
- Donation store with product management
- Donation goals with progress tracking
- Donation tiers with rewards system
- Shopping cart functionality
- Order history tracking
- Admin dashboard with sales statistics
- Payment IPN handlers for automatic order processing
- Email notifications for payments
- Integration with server RCON for automatic reward delivery
## Social Media Integration System
- Created database structure for social media integration:
- Social platforms configuration table
- User social connections table
- Social posts management table
- Social webhooks table
- Feed caching table
- Social settings table
- Implemented core models:
- SocialSettings: Manage platform configurations and general settings
- SocialConnection: Handle user connections to social platforms
- SocialPost: Manage social media posts and publishing
- Created platform interface and factory pattern:
- SocialPlatformInterface: Standardized interface for all platforms
- SocialPlatformFactory: Factory pattern for platform instantiation
- Implemented Discord platform as reference implementation
- Developed controllers:
- SocialController: User-facing connection management
- Admin/SocialController: Admin panel for social media management
- Added features:
- Social login functionality with Discord, Steam, Twitter
- Profile connections management
- Social rewards for linking accounts
- Social posting system with scheduling
- Auto-sharing for news and events
- Discord widget integration
- Social feed displays
- Updated user profiles to show connected social accounts
- Added social sharing buttons for content
- Implemented webhooks for real-time platform events
## Localization System Implementation
- Created comprehensive localization system with:
- Multi-language support with language selection
- Database-driven translation management
- User language preferences
- Browser language detection
- Admin panel for language and translation management
- Import/export functionality for translations
- Translation groups for better organization
- Translation fallback to default language
- Integration with views and controllers via the trans() helper function
## Two-Factor Authentication System
- Created comprehensive two-factor authentication system with:
- Support for authenticator apps (TOTP)
- User-friendly setup wizard with QR code
- Recovery codes for emergency access
- Two-factor verification during login
- Management interface for enabling/disabling 2FA
- Regeneration of recovery codes
- Security events logging
- Profile integration for easy access
- Protection of sensitive actions with 2FA verification
## Custom Themes Upload System
- Created a complete custom themes upload and management system:
- Database structure for storing theme information
- Theme upload functionality with ZIP archive support
- Theme validation and automatic installation
- Theme settings management with customizable options
- Theme activation and deletion
- User-friendly theme management interface
- Theme preview support
- Documentation for theme development
## Anti-Piracy System
- Created anti-piracy system with Codefling integration:
- License key validation during installation
- Product verification with Codefling API
- Secure license storage mechanism
- Periodic license validation checks
- Admin license management interface
- License status notifications
- Graceful handling of license issues
Credits:
© TimRS