Skip to content
This repository was archived by the owner on Oct 25, 2026. It is now read-only.

Getting Started

Syed Ahmer Shah edited this page Oct 25, 2026 · 3 revisions

Requirements

  • PHP 8.2+ with gd, intl, pdo_mysql and openssl
  • Composer 2
  • Node 20.19+ or 22.12+ (Vite 7)
  • MySQL 8 or MariaDB 10.4+

Install

git clone https://github.com/ahmershahdev/bookmymovie.git
cd bookmymovie

composer install
npm install

cp .env.example .env
php artisan key:generate

Set 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 serve

Open http://127.0.0.1:8000.

Admin sign-in

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.

Background work

Emails, waitlist alerts and push notifications are queued. Run a worker:

php artisan queue:work --tries=3

Or 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:run

SEO files

sitemap.xml, llms-full.txt and the Open Graph images are generated from the database:

php artisan seo:generate

Tests

php artisan test

Feature tests cover the booking flow, payments and signed URLs, bans and commerce rules, community features, group bookings, waitlists and admin roles.

Next: Configuration.

Clone this wiki locally