/home/techb158/workloadmatch.com
Edit: /home/techb158/workloadmatch.com/DEPLOY_CHECKLIST.md (1992B)
# Course Management System — Deployment Checklist
## Before Upload
- [ ] Backup server files (especially `includes/psl-config.php` with live credentials)
- [ ] Export current database (`mysqldump -u USER -p DB_NAME > backup.sql`)
## Server Prep
- [ ] Verify PHP version ≥ 8.0 (`php -v`)
- [ ] Verify MySQL version ≥ 8.0
- [ ] Enable required PHP extensions: `mysqli`, `mbstring`, `openssl`, `json`, `curl`
- [ ] Ensure `.env` file exists at project root (see `.env.example`)
- [ ] Fill in `.env` with real database credentials, reCAPTCHA key, encryption keys
- [ ] Set `SECURE=true` in `.env` if HTTPS is enabled
- [ ] Set correct file permissions:
- `chmod 640 .env`
- `chmod 755 includes/` directories
- `chmod 644 *.php` files
## Upload Steps
1. Upload ALL files via FTP/SFTP (preserve directory structure)
2. **Or** upload the archive package and extract
## Post-Upload Verification
- [ ] Visit login page (`index.php`) — page loads with CSS
- [ ] Log in as Admin — redirects to `Admin/dashboard.php` with metrics
- [ ] Log in as Master — redirects to `Master/dashboard.php`
- [ ] Log in as Manager — redirects to `Manager/dashboard.php` with dashboard metrics
- [ ] Log in as Teacher — redirects to `Teacher/dashboard.php`
- [ ] Verify reCAPTCHA works on login form
- [ ] Test password reset flow (`forgetpassword.php` → `reset.php`)
- [ ] Check schedule generation pages load
- [ ] Check API endpoints (`api/reports_schedule_by_course.php`, `api/reports_schedule_by_group.php`)
- [ ] Verify no fatal errors in PHP error log
## Password Migration
- Existing SHA-512 hashes remain valid until first login
- On successful login, passwords are transparently upgraded to bcrypt
- No manual migration needed
## If Something Breaks
- Check `error_log` or enable PHP error display temporarily
- Verify `.env` file is readable and contains correct values
- Check that `includes/psl-config.php` and `config_loader.php` exist
- Verify database connection from server