Repository navigation
Getting Started
- PHP 8.2+ with
gd,intl,pdo_mysqlandopenssl - Composer 2
- Node 20.19+ or 22.12+ (Vite 7)
- MySQL 8 or MariaDB 10.4+
git clone https://github.com/ahmershahdev/bookmymovie.git
cd bookmymovie
composer install
npm install
cp .env.example .env
php artisan key:generateSet the database in .env (DB_CONNECTION, DB_DATABASE, DB_USERNAME, DB_PASSWORD), then:
php artisan migrate --seed # films, cinemas, shows, artwork and trailers
npm run build # or: npm run dev
php artisan serveOpen http://127.0.0.1:8000.
The seeder creates an owner account, admin@bookmymovie.ahmershah.dev. Its password comes from BOOKMYMOVIE_ADMIN_PASSWORD (default Admin@1234). Change it before exposing the app anywhere. The admin area is at /admin/login.
Emails, waitlist alerts and push notifications are queued. Run a worker:
php artisan queue:work --tries=3Or add the scheduler to cron. It drains the queue every minute, clears expired seat holds, alerts waitlists and extends the weekly show schedule:
* * * * * php /path/to/artisan schedule:runsitemap.xml, llms-full.txt and the Open Graph images are generated from the database:
php artisan seo:generatephp artisan testFeature tests cover the booking flow, payments and signed URLs, bans and commerce rules, community features, group bookings, waitlists and admin roles.
Next: Configuration.
BookMyMovie · MIT licence · by Syed Ahmer Shah · Project page
Run it
How it works
Operate it
Read more