Project Overview
Dashboard Dilemmas is a PHP-based web application that integrates with WordPress for user authentication and uses MySQL for data storage. The application manages ethical dilemmas games, client analytics, and performance comparisons.Root Directory Structure
Core Directories
/assets/
Frontend resources organized by type:
/includes/
Core functionality and shared components:
| File | Purpose |
|---|---|
config.php | Site configuration and constants |
db.php | Database connection management |
auth.php | Authentication and session handling |
functions.php | Shared utility functions (121KB) |
header.php | Common header template |
footer.php | Common footer template |
sidebar.php | Navigation sidebar |
breadcrumbs.php | Breadcrumb navigation |
cache.php | Caching utilities |
admin_log.php | Admin activity logging |
class-phpass.php | Password hashing library |
weekly_report_email.php | Email reporting system |
migration_utils.php | Data migration helpers |
/dev/
Development tools and testing utilities:
Checks
Checks
Validation and verification scripts:
check-user.php- User authentication verificationcheck_columns.php- Database column validationcheck_games.php- Game data integrity checks
Debug
Debug
Debugging and inspection tools:
debug_areas.php- Area functionality debuggingdebug_db.php- Database connection testingdebug_pagination.php- Pagination logic testingdebug_relation.php- Relationship validationdebug_schema.php- Schema structure inspectiondebug_winners.php- Winners calculation debugging
Tests
Tests
Unit and integration tests:
test-hash.php- Password hashing teststest-session.php- Session management teststest-smtp.php- Email functionality teststest-wp-auth.php- WordPress authentication teststest-wp-mail.php- WordPress mail integration teststest_answers.php- Answer processing tests
/sql/
Database schemas and migration files:
| File | Description |
|---|---|
database.sql | Main database schema |
users.sql | User table definitions |
clients.sql | Client organization schema |
areas_schema.sql | Business areas structure |
compare_schema.sql | Comparison analytics schema |
update_analytics_schema.sql | Analytics tables |
add_performance_indexes.sql | Performance indexes |
optimizations.sql | Database optimizations |
mock_comparison_data.sql | Test/sample data |
migrate_questions_transversal.sql | Question migration |
migrate_clients_v2.sql | Client data migration |
/migrate/
Data migration scripts for database updates:
add_logo_col.php- Add logo column to tablesload_mock_data.php- Load test datamigrate_answers.php- Migrate answer datamigrate_clients.php- Client data migrationmigrate_clients_v2.php- Updated client migrationmigrate_compare.php- Comparison data migrationmigrate_funnel_table.php- Funnel analytics migrationupdate_analytics_schema.php- Analytics schema updates
Application Pages
Main application entry points in the root directory:Core Pages
Dashboard
index.php - Main dashboardAuthentication
login.php, logout.php - User authenticationGames
games.php, game_detail.php, game_user_detail.phpClients
clients.php, client_detail.php, my_company.phpFeature Pages
- Analytics:
analytics.php- Performance analytics - Areas:
areas.php,area_detail.php- Business area management - Questions:
questions.php,question_detail.php- Question bank - Certificates:
certificates.php,generate_certificate.php- Certificate generation - Comparisons:
compare.php,compare_clients.php- Client comparisons - Feedback:
feedback.php- User feedback system
Export & API
export_clients.php- Client data exportexport_csv.php- CSV export functionalityexport_questions.php- Question exportexport_winners.php- Winners data exportapi_user_detail.php- User API endpointapi_send_certificate.php- Certificate delivery API
Utilities
cron_email_reminders.php- Scheduled email remindersinspect_dilemas.php- Dilemma inspection toollist_meta.php- Metadata listinglist_tables.php- Database table inspectorget-hash.php- Password hash generator
Configuration Files
.htaccess
Apache configuration for URL rewriting and caching:
The caching strategy uses a 4-hour cache with
must-revalidate for CSS and JavaScript files, allowing cache-breaking via query string versioning.Database Tables
The application uses the following WordPress-prefixed tables:de_app_users- Application usersde_app_games- Game sessionsde_app_clients- Client organizationsde_app_answers- User responsesde_app_questions- Question bankde_app_areas- Business areasde_app_comparison- Comparison analyticsde_app_funnel- Funnel trackingde_app_admin_log- Admin activity log
Key Dependencies
PHP Libraries
- PHPMailer - Email sending (via WordPress)
- PHPass - Password hashing
JavaScript Libraries
- Chart.js - Data visualizations
- Quill - Rich text editing
- Tom Select - Advanced dropdowns
- html2pdf - PDF generation
- pptxgen - PowerPoint export
- Tailwind CSS - Utility-first styling
- Lucide - Icon system
WordPress Integration
The application integrates with WordPress for:- Authentication - User login via WordPress credentials
- Email - PHPMailer from WordPress core
- Database - Shared WordPress database connection
includes/config.php:
Next Steps
Setup Guide
Set up your development environment
Deployment
Deploy to production with Apache