A modern web application for managing and organizing men's circle events in Lower Bavaria/Straubing, Germany. This platform enables event management, participant registration, newsletter distribution, and testimonial sharing.
- Create, manage, and publish events with rich content
- Support for images and detailed descriptions
- Event capacity management with automatic status updates
- Slug-based URLs for SEO-friendly event pages
- Automatic redirection to upcoming events
- Online registration form for events
- Support for single or multiple participants
- Phone number validation with German format
- Automatic confirmation emails
- Admin panel for managing registrations
- Email subscription management
- Double opt-in workflow
- Unsubscribe functionality with secure tokens
- Integration with SMTP email providers
- Newsletter campaigns with HTML templates
- Public form for sharing experiences
- Optional participant approval before publication
- Rich text support for testimonials
- Display on website with author attribution
- Dynamic page creation and management
- Support for multiple content block types
- SEO-friendly slugs for all pages
- Dedicated pages for Impressum and Datenschutz (legal requirements)
- Powered by Filament 5 for modern admin experience
- Dashboard with statistics and overview widgets
- Health monitoring for system components
- Log viewer for debugging
- User management with authentication
- Media library integration
- Backend: Laravel 12 (PHP 8.3-8.5)
- Admin Panel: Filament 5
- Frontend:
- Vanilla TypeScript with modern composables pattern
- Modern CSS (native nesting, custom properties, OKLCH colors, container queries, logical properties)
- Motion library for animations
- Blade templates for server-side rendering
- Build Tools: Vite, Bun
- Database: SQLite (default) / MySQL
- Server: Laravel Octane with FrankenPHP
- Email: SMTP with configurable providers
- SMS: Seven.io API integration
- Monitoring: Sentry, Laravel Health, Umami Analytics (optional)
- Media: Spatie Media Library
- Code Quality: PHPStan, Laravel Pint, ECS, Rector
- PHP 8.3 or higher
- Composer
- Bun (recommended) or npm
- SQLite or MySQL database
# Clone the repository
git clone https://github.com/beardcoder/mens-circle.git
cd mens-circle
# Run the setup script (installs dependencies, generates keys, runs migrations)
composer run setup# Install PHP dependencies
composer install
# Copy environment file
cp .env.example .env
# Generate application key
php artisan key:generate
# Run database migrations
php artisan migrate
# Install JavaScript dependencies
bun install
# Build frontend assets
bun run buildEdit .env file and configure:
APP_NAME- Your application nameAPP_URL- Your application URL- Database settings (SQLite by default)
- Mail configuration (SMTP settings)
- Seven.io API key for SMS notifications
- Optional: Umami analytics, Sentry error tracking
# Start all development services at once (recommended)
composer run devThis command starts:
- PHP development server (port 8000)
- Queue worker for background jobs
- Laravel Pail for real-time logs
- Schedule worker for scheduled tasks
- Vite dev server for hot module replacement
# Start web server only
php artisan serve
# Run queue worker
php artisan queue:listen
# Build frontend assets
bun run build
# Watch frontend assets for changes
bun run dev
# View logs in real-time
php artisan pail# Format PHP code
composer run format
# or
./vendor/bin/pint
# Static analysis
composer run lint
# or
./vendor/bin/phpstan analyse
# Refactor code with Rector
composer run rector
# Format JavaScript/TypeScript
bun run format
# Lint JavaScript/TypeScript
bun run lint
# Type check TypeScript
bun run typecheck
# Lint CSS
bun run stylelint├── app/
│ ├── Actions/ # Single-purpose action classes
│ ├── Filament/ # Admin panel resources and pages
│ ├── Http/ # Controllers, middleware, requests
│ ├── Models/ # Eloquent models
│ ├── Mail/ # Email templates
│ ├── Services/ # Business logic services
│ └── Settings/ # Application settings
├── config/ # Configuration files
├── database/
│ ├── factories/ # Model factories
│ ├── migrations/ # Database migrations
│ └── seeders/ # Database seeders
├── public/ # Web server document root
├── resources/
│ ├── css/ # Stylesheets
│ ├── js/ # JavaScript/TypeScript
│ └── views/ # Blade templates
├── routes/
│ ├── web.php # Web routes
│ └── console.php # Console commands
├── storage/ # Application storage
└── tests/ # PHPUnit/Pest tests
composer run dev- Start all development servicescomposer run setup- Complete project setupcomposer run format- Format code with Pintcomposer run lint- Run PHPStan analysiscomposer run rector- Run Rector refactoring
bun run dev- Start Vite dev serverbun run build- Build for productionbun run lint- Lint JavaScript/TypeScriptbun run format- Format JS/TS/CSS filesbun run typecheck- Run TypeScript type checkingbun run stylelint- Lint CSS files
# Run all tests
php artisan test
# Run specific test file
php artisan test tests/Feature/EventTest.php
# Run tests with coverage
php artisan test --coverage# Install dependencies (production only)
composer install --no-dev --optimize-autoloader
# Build frontend assets
bun run build
# Optimize Laravel
php artisan config:cache
php artisan route:cache
php artisan view:cache
# Run migrations
php artisan migrate --force- PHP 8.3+ with required extensions (see composer.json)
- Web server (Nginx/Apache) or FrankenPHP
- SQLite or MySQL database
- Composer
- Node.js/Bun for asset compilation
MIT License. See LICENSE file for details.
For issues and questions, please use the GitHub issue tracker.
Männerkreis Niederbayern / Straubing - Building community through meaningful connections.