A comprehensive membership and team management system built with CakePHP 5.2, designed for sports clubs and organizations. AngelAdmin2 provides a complete solution for managing members, teams, meetings, billing, and administrative tasks.
- Complete member profiles with personal information, contact details, and photos
- Team assignments and multi-team support
- Registration workflow with digital signatures
- Age-based categorization (adults/children)
- Member status tracking (active, inactive, registered)
- Hash-based authentication for secure member access without passwords
- Multi-site support for organizations with multiple locations
- Team organization with coaches and member assignments
- Hierarchical structure with sites containing multiple teams
- Automated billing system with customizable templates
- Swiss QR-bill support for seamless payments
- Multi-payment options and installment plans
- Late payment tracking and reminder system
- Family discounts and special pricing
- Payment status monitoring
- Meeting scheduling with different types (small, big, doodle)
- Attendance tracking and presence management
- Event notifications and reminders
- Role-based access control with granular permissions
- Dual authentication system: traditional login and hash-based access
- Secure hash cookies for member self-service
- Session management with configurable timeouts
- Comprehensive dashboards with statistics
- Member data export and reporting
- Configuration management for system settings
- Content management for announcements and information
- Email integration for communications
- Multi-language support (English/French)
- Localized date and currency formatting
- Configurable default locale
- PHP 8.1+ with required extensions
- MySQL/MariaDB database
- Composer for dependency management
- Web server (Apache/Nginx) with URL rewriting support
-
Clone the repository
git clone https://github.com/GrinwaldFlo/AngelAdmin2.git cd AngelAdmin2 -
Install dependencies
composer install
-
Configure the database
- Copy
config/app_local.example.phptoconfig/app_local.php - Update database connection settings in
config/app_local.php
'Datasources' => [ 'default' => [ 'host' => 'localhost', 'username' => 'your_username', 'password' => 'your_password', 'database' => 'angeladmin2', // ... other settings ], ],
- Copy
-
Set up the database
# Run migrations to create database tables bin/cake migrations migrate # Seed initial data (optional) bin/cake migrations seed
-
Configure security
- Generate a security salt and update
SECURITY_SALTin your environment variables orapp_local.php
# Generate a random salt openssl rand -base64 32 - Generate a security salt and update
-
Set file permissions
# Make writable directories chmod -R 755 tmp/ chmod -R 755 logs/ chmod -R 755 webroot/ -
Start the development server
bin/cake server -p 8765
Visit
http://localhost:8765to access the application.
Create a .env file in the root directory or set these environment variables:
# Security
SECURITY_SALT=your_32_character_random_string
# Database
DATABASE_URL=mysql://username:password@localhost/angeladmin2
# Email
EMAIL_TRANSPORT_DEFAULT_URL=smtp://username:[email protected]:587
# Debug (disable in production)
DEBUG=falseConfigure email settings in config/app_local.php:
'EmailTransport' => [
'default' => [
'host' => 'your-smtp-server.com',
'port' => 587,
'username' => '[email protected]',
'password' => 'your-password',
'tls' => true,
],
],The application uses a configuration system accessible through the admin panel:
- Site settings and contact information
- Season dates and membership rules
- Language preferences
- Logo and branding customization
AngelAdmin2/
├── config/ # Configuration files
├── src/
│ ├── Controller/ # Application controllers
│ ├── Model/ # Database models and entities
│ ├── View/ # View helpers and custom view classes
│ └── Console/ # Command-line tools
├── templates/ # View templates
├── webroot/ # Public web files (CSS, JS, images)
├── tests/ # Unit and integration tests
├── logs/ # Application logs
├── tmp/ # Temporary files and cache
└── vendor/ # Composer dependencies
- Traditional Login: Username/password authentication for administrators and coaches
- Hash Authentication: Secure hash-based access for members to view their own data
Main entities:
- Members: Core member information and relationships
- Teams: Team organization and site assignment
- Sites: Multi-location support
- Bills: Billing and payment tracking
- Meetings: Event and meeting management
- Users: System user accounts with role-based permissions
The system provides various endpoints for:
- Member data retrieval
- Bill generation and management
- Meeting scheduling
- Administrative functions
Run the test suite:
# Run all tests
composer test
# Run specific test categories
./vendor/bin/phpunit tests/TestCase/Controller/
./vendor/bin/phpunit tests/TestCase/Model/
# Code style checks
composer cs-check
# Fix code style issues
composer cs-fix- CakePHP 5.2: Web framework
- Authentication & Authorization: User management
- Bootstrap UI: Frontend framework integration
- Intervention Image: Image processing
- Swiss QR-Bill: Payment slip generation
- TinyMCE: Rich text editor
- TCPDF: PDF generation
- PHPUnit: Testing framework
- CakePHP Bake: Code generation
- Debug Kit: Development debugging
- Code Sniffer: Code quality
-
Server Requirements
- PHP 8.1+ with extensions: mbstring, intl, simplexml, PDO
- MySQL/MariaDB 5.7+
- Web server with URL rewriting
-
Environment Setup
# Install dependencies (production only) composer install --no-dev --optimize-autoloader # Set production environment export CAKE_ENV=production # Clear and warm up cache bin/cake cache clear_all
-
Security Checklist
- Set
DEBUG=falsein production - Configure proper file permissions
- Use HTTPS for secure communication
- Implement proper backup procedures
- Monitor logs for security issues
- Set
A Docker configuration can be added for containerized deployment:
# Example Dockerfile structure
FROM php:8.1-apache
# Install PHP extensions and configure Apache
# Copy application files
# Set proper permissionsWe welcome contributions! Please follow these guidelines:
- Fork the repository and create your feature branch
- Follow coding standards: Use CakePHP conventions and PSR-12
- Write tests for new functionality
- Update documentation as needed
- Submit a pull request with a clear description
# Clone your fork
git clone https://github.com/your-username/AngelAdmin2.git
# Install development dependencies
composer install
# Set up pre-commit hooks (optional)
# This ensures code quality before commitsThis project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Check the
/docsdirectory for detailed guides - Issues: Report bugs via GitHub Issues
- Community: Join our discussions for questions and support
Future enhancements planned:
- Mobile application companion
- Advanced reporting and analytics
- Integration with external payment systems
- Enhanced notification system
- API documentation and external integrations
- Florian Grinwald - Initial work - @GrinwaldFlo
- Built with CakePHP framework
- UI components from Bootstrap
- Icons and fonts from various open-source projects
- Community contributors and testers
AngelAdmin2 - Streamlining sports club management with modern web technology.