A comprehensive, enterprise-grade project management system designed to securely track and manage development projects. Built with PHP, MySQL, and modern web technologies.
- Project Management: Full CRUD operations with status tracking and priority management
- Task Management: Hierarchical task system with dependencies and time tracking
- Interactive Dashboard: Real-time KPIs and data visualization with Chart.js
- Calendar Integration: Timeline visualization for project schedules
- Advanced Reporting: 5 comprehensive report types with CSV export
- User Authentication: Secure login with bcrypt hashing and session management
- Role-Based Access: Admin and user roles with permission control
- Progressive Web App: Installable with offline capabilities
- WCAG 2.1 AA Compliance: Full accessibility support
- Responsive Design: Mobile-friendly Bootstrap 5 interface
- PHP 8.x - Server-side scripting with OOP
- MySQL - Relational database with normalized schema
- PDO - Secure database connections with prepared statements
- Apache - Web server (via XAMPP)
- HTML5 & CSS3 - Modern semantic markup and styling
- Bootstrap 5 - Responsive CSS framework
- JavaScript ES6+ - Modern client-side functionality
- Chart.js - Dynamic data visualization
- Calendar.js - Interactive timeline visualization
- SortableJS - Drag-and-drop functionality
- bcrypt - Password hashing
- CSRF Protection - Cross-site request forgery prevention
- Session Management - Secure user sessions
- Service Workers - PWA capabilities and caching
- Input Validation - Comprehensive data sanitization
Before setting up Code Bunker, ensure you have:
- XAMPP (or similar LAMP stack) with:
- PHP 8.0 or higher
- MySQL 5.7 or higher
- Apache 2.4 or higher
- Web browser (Chrome, Firefox, Safari, Edge)
- Git (for version control)
- Download XAMPP from https://www.apachefriends.org/
- Install XAMPP and start Apache and MySQL services
- Verify installation by visiting
http://localhost
# Navigate to your XAMPP htdocs directory
cd /Applications/XAMPP/xamppfiles/htdocs # macOS
cd C:\xampp\htdocs # Windows
cd /opt/lampp/htdocs # Linux
# Clone the repository
git clone https://github.com/SamBunker/code-bunker.git
cd code-bunker
# Access MySQL via XAMPP
mysql -u root -p
# Import the database
source database/schema.sql
- Open phpMyAdmin at
http://localhost/phpmyadmin
- Create a new database named
code_bunker
- Import the
database/schema.sql
file - Verify all tables are created successfully
-
Update Base URL (if needed):
// In config/config.php, update the BASE_URL constant define('BASE_URL', 'http://localhost/code-bunker/');
-
Database Connection (if needed):
// In config/database.php, update connection details if different private $host = 'localhost'; private $dbname = 'code_bunker'; private $username = 'root'; private $password = '';
Run the setup script to create your first admin user:
# Visit in your browser
http://localhost/code-bunker/setup_admin.php
Follow the prompts to create your administrator account.
Visit http://localhost/code-bunker/
and log in with your admin credentials.
code-bunker/
βββ config/
β βββ database.php # Database connection class
β βββ config.php # Application configuration
βββ includes/
β βββ auth.php # Authentication functions
β βββ functions.php # Core utility functions
β βββ header.php # Common header
β βββ footer.php # Common footer
βββ assets/
β βββ css/
β β βββ style.css # Custom styles
β βββ js/
β β βββ main.js # JavaScript functionality
β βββ uploads/ # File uploads
βββ pages/
β βββ dashboard.php # Main dashboard
β βββ projects.php # Project management
β βββ tasks.php # Task management
β βββ calendar.php # Timeline view
β βββ reports.php # Reporting system
β βββ settings.php # Admin settings
βββ database/
β βββ schema.sql # Database schema
βββ api/ # Future API endpoints
βββ logs/ # Application logs
- Login at
http://localhost/code-bunker/
- Configure Settings - Visit Settings page to customize features
- Create Users - Add team members with appropriate roles
- Set up Projects - Create your first project with tasks
- Customize Categories - Define project and task categories
- Login with credentials provided by administrator
- View Dashboard - See overview of your assigned projects and tasks
- Manage Tasks - Update task status and log time spent
- Add Notes - Document progress and important information
- Generate Reports - Create progress reports for stakeholders
Access the Settings page to enable/disable features:
- Budget tracking
- Calendar view
- File uploads
- Notifications
- Advanced reporting
- Project Categories: Define custom project types
- Task Types: Create specific task categories
- Priority Levels: Customize priority settings
- Status Workflows: Modify available statuses
- Password Hashing: bcrypt with salt rounds
- SQL Injection Prevention: PDO prepared statements
- CSRF Protection: Token-based form protection
- Session Security: Timeout and regeneration
- Input Validation: Comprehensive sanitization
- Role-Based Access: Admin/User permission levels
Code Bunker includes 5 comprehensive report types:
- Summary Dashboard - Overview statistics and trends
- Project Status Reports - Breakdown by status with metrics
- Task Completion Analysis - Performance by priority/status
- Team Productivity Reports - Individual performance metrics
- Timeline Reports - Project deadlines and progress tracking
All reports support:
- Dynamic date range filtering
- CSV export functionality
- Visual charts and graphs
- Real-time data updates
Code Bunker is built with accessibility in mind:
- WCAG 2.1 AA compliant
- Skip navigation links
- ARIA attributes and roles
- Keyboard navigation support
- Screen reader optimization
- High contrast color schemes
- Installable on desktop and mobile devices
- Offline capabilities with service worker caching
- Push notifications support (configurable)
- Responsive design for all screen sizes
-
Enable PHP error reporting in
config/config.php
:define('DEBUG_MODE', true);
-
Monitor logs in the
logs/
directory -
Use the test utilities:
test.php
- General testingtest_db.php
- Database connectivity testing
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-feature
) - Commit your changes (
git commit -am 'Add new feature'
) - Push to the branch (
git push origin feature/new-feature
) - Create a Pull Request
This project is open source and available under the MIT License.
Samuel Bunker
- GitHub: github.com/SamBunker
- Project: Code Bunker
"Database connection failed"
- Verify MySQL service is running in XAMPP
- Check database credentials in
config/database.php
- Ensure
code_bunker
database exists
"Permission denied"
- Check file permissions on uploads directory
- Verify web server has write access to logs directory
"Page not found"
- Verify BASE_URL setting in
config/config.php
- Check Apache virtual host configuration
"Login not working"
- Run
setup_admin.php
to create initial user - Check session configuration in PHP
- Check the Issues page
- Review configuration settings
- Check application logs in
logs/error.log
- Verify XAMPP services are running
To update Code Bunker:
- Backup your database and files
- Pull latest changes:
git pull origin main
- Run any database migrations if provided
- Clear browser cache and restart services
Code Bunker - Secure project management for development teams.