Prerequisites
- PHP 8.1+ with extensions:
ctype,curl,gd,iconv, OpenSSL, PDO, Mbstring, XML - Composer 2.0+
- Node.js 18+ and npm
- MySQL 8.0+ or PostgreSQL 13+
- Redis 6.0+ (recommended for caching and sessions)
- Symfony CLI (for the dev server)
Installation
Configure environment variables
Copy the example file and fill in your credentials:Key variables to set in See Environment Setup for the full list of available variables.
.env:Docker setup
Acompose.yaml file is included in apps/web:
Database migrations
Run pending migrations against the configured database:task web:migrate.
Key feature areas
The source code undersrc/Controller/ is organized into the following modules:
| Module | Controllers | Description |
|---|---|---|
Cinema/ | Cinemas, theaters, sessions | Manage venues, halls, showtimes, and seat reservations |
Film/ | Films, actors, categories | Film catalog with IMDB import, trailers, and reviews |
User/ | Auth, profiles, 2FA | Registration, OAuth (Google, Microsoft), TOTP two-factor auth |
Shop/ | Products, orders, payments | E-commerce with Stripe and PayPal checkout |
Admin/ | Dashboard, reports | Admin panel with analytics and user management |
Api/ | REST endpoints | JSON API consumed by the mobile and desktop apps |
OAuth credentials for Google and Microsoft, and payment keys for Stripe and PayPal, must be configured in
.env before the corresponding features will work.Running tests
- Unit — individual services and entities
- Integration — database and service wiring
- Functional — full HTTP request/response cycle
- API — REST endpoint contracts
- Security — authentication and authorization flows
Building frontend assets
- Development
- Watch mode
- Production
Technology stack
| Layer | Technology |
|---|---|
| Framework | Symfony 6.4 (LTS) |
| Language | PHP 8.1+ |
| ORM | Doctrine ORM 2.16 / DBAL 3 |
| Templates | Twig 3 |
| UI framework | Bootstrap 5 |
| Asset bundler | Webpack Encore |
| JavaScript | Stimulus + Turbo |
| Database | MySQL 8 / PostgreSQL 13 |
| Cache / sessions | Redis 6 |
| Payments | Stripe, PayPal |
| Auth (OAuth) | Google, Microsoft |
| 2FA | TOTP via scheb/2fa-bundle |
| SMS | Twilio SDK |
| Testing | PHPUnit |