UWEFlix is a cinema ticket booking and reservation system developed using Laravel. It has features like user roles, authentication, automated reservations, and much more.
- 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
Note: The website resets automatically every 30 minutes.
User Role | Username | Password | |
---|---|---|---|
SystemAdmin | systemadmin@uweflix.com | systemAdmin | adminpass |
CinemaManager | cm-manager@uweflix.com | cinemaManager | cm_managerpass |
Customer | customer@uweflix.com | customer | customerpass |
ClubRepresentative | clubRep@uweflix.com | clubRep | clubpass |
Note: As this is a college group project and not a production ready application, the .env file is already configured and included in the repository.
- Clone the repository by running the following command in your terminal or command prompt:
git clone https://github.com/naaih/UWEFlix.git
- Change into the project directory:
cd UWEFlix
- Install the project dependencies using Composer. Ensure you have Composer installed on your machine. Run the following command:
If composer installation fails, Run the following command:
composer install
composer update
- Generate an application key:
php artisan key:generate
- Configure the .env file 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:
php artisan storage:link
- Finally, you can start the local development server:
The application will be now accessible at: http://localhost:8000
php artisan serve
System Administrator:
- Manages users' creation and website authorities
- Accepts requests from managers to become managers
- Can delete existing users
Cinema 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