Skip to content

About

Cinema reservation web app with movie browsing, seat selection, ticket delivery, admin dashboard, and Azure deployment.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Moonlight Cinema

Moonlight Cinema is a cinema reservation web application built as a portfolio project for demonstrating full-stack web development, database integration, responsive UI, reservation workflows, email ticket delivery, admin management features, and cloud deployment.

The application allows users to browse movies, view movie details, select available screening times, choose seats, create reservations, receive an email ticket with a QR code, view their tickets, and cancel reservations. The project also includes an admin side for managing cinema data such as movies, screenings, halls, seats, reservations, pricing, and statistics.

Live Demo

Open live demo

Note: This is a demo/portfolio application. It does not use real payment processing.

Demo Credentials

Admin Account

Email: admin@moonlightcinema.ba
Password: Admin123!

User Account

Email: user@moonlightcinema.local
Password: User1234!

Team

This project was developed by:

  • Sulejman Zekotic – backend development, database integration, reservation logic, Azure deployment, project configuration, documentation
  • Amina Ahmić – frontend UI, responsive design, testing, screenshots, documentation, feature planning

Features

User Features

  • Browse available movies
  • View movie details
  • View available screening times
  • Select seats through an interactive seat picker
  • Create a reservation
  • Receive an email ticket with a QR code
  • View existing tickets
  • Cancel reservations
  • Responsive design for desktop and mobile devices

Admin Features

  • Admin dashboard
  • Manage movies
  • Manage screenings
  • Manage halls and seats
  • View and manage reservations
  • Configure pricing
  • View reservation statistics and charts
  • Control cinema-related data through the admin interface

Tech Stack

  • PHP
  • JavaScript
  • HTML
  • CSS
  • SQLite / MySQL
  • Composer
  • Azure App Service
  • GitHub

Screenshots

User Interface

Home Page

Home page

Movie Details

Movie details

Seat Selection

Seat selection

Reservation Modal - First Step

Reservation modal first step

Reservation Modal - Second Step

Reservation modal second step

Ticket Email

Ticket email

Mobile Tickets

Mobile tickets

Admin Interface

Admin Panel

Admin panel

Admin Add Screening

Admin add screening

Admin All Screenings

Admin all screenings

Admin Auto Generator

Admin auto generator

Admin Reservations Chart

Admin reservations chart

Admin Statistics

Admin statistics

Project Structure

moonlight-cinema/
├── docs/
│   └── screenshots/
│       └── app/
├── setup/
├── src/
│   └── wp-content/
├── .gitignore
├── LICENSE
└── README.md

How to Run Locally

Prerequisites

Before running the project locally, make sure you have installed:

  • PHP
  • Composer
  • Git
  • SQLite or MySQL

1. Clone the Repository

git clone https://github.com/aminaahmic/moonlight-cinemaa.git
cd moonlight-cinemaa

2. Install Dependencies

If the project contains a composer.json file, install dependencies with:

composer install

3. Configure the Database

The application can be configured to use SQLite or MySQL.

For local development, SQLite is the easiest option.

Example SQLite configuration:

MC_DB_DRIVER=sqlite
MC_DB_SQLITE_PATH=storage/database.sqlite

For MySQL, configure these values instead:

MC_DB_DRIVER=mysql
MC_DB_HOST=localhost
MC_DB_PORT=3306
MC_DB_NAME=moonlight_cinema
MC_DB_USER=root
MC_DB_PASS=your_password

Database credentials and production secrets should be stored as environment variables and should not be committed to the repository.

4. Configure Mail Settings

Email ticket delivery requires SMTP configuration.

Example mail configuration:

MC_MAIL_FROM=your-email@example.com
MC_MAIL_FROM_NAME=Moonlight Cinema
MC_MAIL_REPLY_TO=your-email@example.com
MC_MAIL_TRANSPORT=smtp
MC_SMTP_HOST=smtp.example.com
MC_SMTP_PORT=587
MC_SMTP_USER=your_smtp_username
MC_SMTP_PASS=your_smtp_password
MC_SMTP_SECURE=tls

For local testing, email sending can be configured with a test SMTP provider such as Mailtrap.

5. Run the Application

Start the local PHP development server:

php -S localhost:8000

Open the app in your browser:

http://localhost:8000

Deployment

The application is deployed on Azure App Service.

The deployment setup includes configuration for:

  • PHP hosting
  • Application routing
  • Environment variables
  • Database configuration
  • Mail configuration
  • Session storage
  • Production deployment setup

Documentation

Additional project documentation and assets:

  • docs/screenshots/app/ - Application screenshots used in the README
  • setup/ - Setup or deployment-related files
  • src/wp-content/ - Main WordPress/PHP application content

Security Notes

Sensitive configuration values such as database credentials, SMTP passwords, API keys, and environment variables should not be committed to the repository.

The repository should not include:

  • .env files
  • Real database files with user data
  • SMTP credentials
  • API keys
  • Production secrets
  • Private logs

Project Status

This project is completed as a portfolio/internship project.

It demonstrates:

  • Full-stack web application development
  • PHP backend structure
  • Database-driven reservation system
  • Interactive frontend functionality
  • Responsive UI design
  • Email ticket workflow
  • QR ticket concept
  • Admin management features
  • Azure cloud deployment
  • Git and GitHub project organization

Authors

  • Sulejman Zekotic
  • Amina Ahmić

License

This project is available for portfolio and educational purposes.

About

Cinema reservation web app with movie browsing, seat selection, ticket delivery, admin dashboard, and Azure deployment.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages