Student clubs and events platform (PHP MVC)
This repository contains the active application used to manage clubs, events, subscriptions, validation workflows, exports, and administration.
- Install dependencies:
composer install - Create local environment file:
cp .env.example .env
Copy-Item .env.example .env - Edit .env with your local credentials and URLs (see sample below)
- Create database:
CREATE DATABASE vieasso_local CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - Run local server:
php -S localhost:8000 - Open:
http://localhost:8000/index.php?page=home
APP_ENV=development APP_DEBUG=true APP_URL=http://localhost:8000 APP_NAME="Vie Etudiante EILCO"DB_HOST=localhost DB_PORT=3306 DB_NAME=vieasso_local DB_USER=root DB_PASS= DB_CHARSET=utf8mb4
MAIL_HOST=smtp.yourprovider.com MAIL_PORT=465 MAIL_ENCRYPTION=ssl MAIL_USERNAME=your_email@domain.com MAIL_PASSWORD=your_email_password MAIL_FROM=noreply@domain.com MAIL_FROM_NAME="Vie Etudiante EILCO" MAIL_TIMEOUT=15 MAIL_VERIFY_PEER=true MAIL_VERIFY_PEER_NAME=true MAIL_ALLOW_SELF_SIGNED=false
SESSION_LIFETIME=3600 CSRF_TOKEN_LIFETIME=7200 COOKIE_SECURE=false COOKIE_HTTPONLY=true COOKIE_SAMESITE=Strict SERVER_TYPE=auto
- Centralized route map in routes/web.php with auth and permission metadata
- Secure session + CSRF + security-header protections
- Club and event lifecycle with validation and rejection workflows
- Event subscriptions including AJAX toggle endpoint
- CSV exports with permission control and rate-limit safeguards
- Admin pages for analytics, audit, settings, and user management
- Layered CSS architecture (core/components/layout/pages/responsive)
| Document | Purpose |
|---|---|
| Docs/ARCHITECTURE.md | Runtime architecture and startup flow |
| Docs/MVC_STRUCTURE.md | MVC implementation responsibilities |
| Docs/ROUTING.md | Current route inventory and dispatch rules |
| Docs/API_REFERENCE.md | Controllers and models API map |
| Docs/DATABASE.md | Data model and state-driven workflows |
| Docs/SECURITY.md | Security controls and operational checklist |
| Docs/INSTALLATION.md | Local installation and troubleshooting |
| Docs/PRODUCTION_DEPLOYMENT.md | Production deployment checklist |
| Docs/CSS_ARCHITECTURE.md | CSS layering and loading rules |
| Docs/SWEETALERT2_INTEGRATION.md | SweetAlert helper usage |
| Docs/IMPLEMENTATION_REJECTION_CYCLE.md | Reject/correct/review process details |
| Docs/CONTRIBUTING.md | Contribution standards and PR checks |
| Docs/screenshots/README.md | Screenshot placeholders and naming |
composer test
composer test-unit
composer test-feature
composer security:auditThe platform supports automated reminder emails for event subscribers:
- first reminder: 48 hours before event start
- second reminder: 24 hours before event start
Run manually:
php scripts/send_event_reminders.php
php scripts/send_event_reminders.php --window=30Recommended production schedule (every 15 minutes):
*/15 * * * * php /path/to/project/scripts/send_event_reminders.php >> /path/to/project/logs/reminders.log 2>&1Use screenshot slots defined in Docs/screenshots/README.md.