Cinemat is a ticket reservation system developed using Laravel 8. It has features like user roles, authentication, automated reservations, and much more. See the live demo here.
- Routing basics
- MVC architecture
- Blade templating language
- Middlewares
- Authentication and authorization basics
- Relational databases (MySQL)
- Database migrations
- Eloquent ORM
- Database CRUD operations
- HTML, CSS, JS
- Alpine.js
- File uploads
- Searching and filtering through models
You can find a link to the website here. The website has some movies already created, but you can log in as a manager and edit or create new movies. login
Note: The website resets automatically every 30 minutes.
User Role | Password | |
---|---|---|
Admin | [email protected] | adminpass |
Manager | [email protected] | managerpass |
Customer | [email protected] | customerpass |
- Clone the repository by running the following command in your terminal or command prompt:
git clone https://github.com/ziadabdo98/Cinemat.git
- Change into the project directory:
cd Cinemat
- Install the project dependencies using Composer. Ensure you have Composer installed on your machine. Run the following command:
composer install
- Create a copy of the .env.example file, name it .env, and enter database credentials:
cp .env.example .env
- Generate an application key:
php artisan key:generate
- Configure the .env file. Open the .env file in a text editor and set the necessary configuration options, such as database credentials and application-specific settings.
- Run the database migrations to create the required tables:
php artisan migrate
- Optionally, seed the database with 20 movies, shows, users, and categories:
php artisan db:seed
- Create a symbolic link from public/storage to storage/app/public by:
The Laravel application will be accessible at the specified URL (usually http:https://localhost:8000).
php artisan storage:link
- Finally, you can start the local development server:
The Laravel application will be accessible at the specified URL (usually http:https://localhost:8000).
php artisan serve
Administrator:
- Manages users' creation and website authorities
- Accepts requests from managers to become managers
- Can delete existing users
Manager:
- Responsible for managing, creating, and modifying movie details
- Responsible for managing, creating, and modifying shows
- Can update information such as title, date, start and end time, screening room, and poster image
- Can view the overall seat status for each show (vacant/reserved)
Customers:
- Registered users who have provided their personal data
- Can reserve movie tickets
- Able to reserve any number of tickets for non-clashing movies
Guests:
- Unregistered or non-logged-in users
- Can view current movies' details
- Can log in or register (sign up) as a customer
- Unable to reserve tickets