A comprehensive event management platform built with PHP MVC, PostgreSQL, and AJAX, developed by Team Espada.
- Secure registration and login (email/password with bcrypt hashing)
- Role-based access control (Organizer, Participant, Admin)
- User profiles with avatars and event history
- Email notifications and site alerts
- Create and modify events (title, description, date, venue, pricing, capacity)
- Category and tag management
- Promotional media upload (images and videos)
- Admin validation system
- Featured/sponsored events
- Multiple ticket types (free, paid, VIP, early bird)
- Secure payment integration (Stripe/PayPal - sandbox mode)
- QR code ticket validation
- Refund and cancellation system
- PDF ticket generation
- PHP 8.x
- PostgreSQL
- PDO
- Twig Template Engine
- symfony/*: Symfony components for robust framework features
- twig/twig: Template engine for PHP
- monolog/monolog: Logging for PHP
- stripe/stripe-php: Payment processing
- firebase/*: Firebase integration
- paragonie/*: Security components
- phpoptio/*: PHP optimization tools
- vlucas/phpdotenv: Environment variable management
- guzzlehttp/guzzlehttp: HTTP client
# Initialize a new composer project
composer init
# Install all dependencies from composer.json
composer install# Install Symfony components
composer require symfony/http-foundation
composer require symfony/routing
composer require symfony/http-kernel
composer require symfony/dependency-injection
composer require symfony/dotenv
composer require symfony/yaml
# Install Twig template engine
composer require twig/twig
# Install Monolog for logging
composer require monolog/monolog
# Install environment variable handler
composer require vlucas/phpdotenv# Install database components
composer require symfony/orm-pack
composer require symfony/doctrine-bridge# Install Guzzle for HTTP requests
composer require guzzlehttp/guzzle
# Install Bacon HTTP components
composer require bacon/bacon-qr-code# Install security components
composer require paragonie/random_compat
composer require phpseclib/phpseclib
# Install Firebase components
composer require firebase/php-jwt# Install development dependencies
composer require --dev symfony/var-dumper
composer require --dev symfony/debug-bundle# Install Stripe for payment processing
composer require stripe/stripe-php# Install additional utility libraries
composer require ralouphie/getallheaders
composer require psr/http-message
composer require endroid/qr-code# Update all dependencies
composer update
# Install dependencies in production mode (no dev dependencies)
composer install --no-dev --optimize-autoloader
# Clear composer cache
composer clear-cache
# Validate composer.json
composer validate- Run
composer installafter cloning the project to install all dependencies - Use
composer updatecarefully in production as it might update to incompatible versions - Always commit both
composer.jsonandcomposer.lockto version control - Use
--no-devflag when installing dependencies in production environment
If you encounter any issues:
- Clear composer cache:
composer clear-cache - Remove vendor directory and reinstall:
rm -rf vendor/
composer install- Update composer itself:
composer self-update
- HTML5, CSS3, JavaScript (ES6)
- Bootstrap 5/TailwindCSS
- AJAX (Fetch API & jQuery)
- PHP 8.x
- PostgreSQL
- Composer
- Web server (Apache/Nginx)
- Clone the repository
git clone https://github.com/Youcode-Classe-E-2024-2025/Espada-Eventbrite.git
cd Espada-Eventbrite- Install dependencies
composer install- Configure the database
- Create a PostgreSQL database
- Copy
.env.exampleto.env - Update database credentials in
.env
- Run database migrations
php migrations/run.php- Start the development server
php -S localhost:8240To use the platform:
- Visit
http://localhost:8240 - Click on "Register" to create a new account
- Choose your role (Organizer or Participant)
- Complete the registration form
- Verify your email (if implemented)
After registration, you can:
-
As a Participant:
- Browse available events
- Book tickets
- Manage your bookings
-
As an Organizer:
- Create new events
- Manage your events
- View booking statistics
-
As an Admin:
- Manage users
- Moderate events
- View platform statistics
- CSRF protection on all forms
- Prepared SQL statements via PDO
- Password hashing with bcrypt
- XSS protection
- Secure session management
- Input validation and sanitization
- PostgreSQL query optimization with indexes
- AJAX-based lazy loading
- Efficient session handling
- Optimized database schema
- Fork the repository
- Create your feature branch:
git checkout -b feature/AmazingFeature - Commit your changes:
git commit -m 'Add some AmazingFeature' - Push to the branch:
git push origin feature/AmazingFeature - Open a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
This project is developed by Team Espada as part of Youcode Class E 2024-2025.
For support, please create an issue in the GitHub repository