A Laravel-based movie recommendation system that suggests movies based on user interests using KNN (Euclidean & Manhattan Distance) and K-Means clustering.
- PHP >= 8.1
- Laravel 10
Follow these steps to set up the project:
Clone the Repository:
git clone <repository-url>
cd <project-directory>
Install Dependencies: Run the following commands to install the required packages:
composer update
composer install
Generate Application Key: Generate the Laravel application key: This will update the APP_KEY in your .env file.
php artisan key:generate
Set Up Storage Link: Create a symbolic link for the storage directory:
php artisan storage:link
Configure Database: Update your .env file with your database credentials:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_user
DB_PASSWORD=your_database_password
Run Migrations: Initialize the database by running migrations:
php artisan migrate
To seed the database with initial data, use:
php artisan migrate:refresh --seed
Create a Controller with CRUD Operations: To generate a controller with CRUD methods, use:
php artisan make:controller CastController -r
Create a Model with Migration: To create a model along with its migration file, use:
php artisan make:model Cast -m
-
Multi-Authentication System
- Admin, Staff, and User roles are implemented.
- Laravel Breeze is used for authentication scaffolding.
- Email Verification is enabled for users.
- Login is available for all roles, but Registration is only for users.
-
Admin CRUD Operations
- Admins can perform CRUD operations for Users and Staff.
-
CRUD Management
- The following CRUD operations are managed:
- Cast CRUD
- Genre CRUD
- Production Company CRUD
- Language CRUD
- Director CRUD
- Movie CRUD
- Country CRUD
- A Dashboard is also included.
- The following CRUD operations are managed:
-
User Profile and Interest
- Users can manage their profiles and interests.
-
Super Admin and Support System
- A Super Admin role has been added.
- The support system has been updated.
-
Recommendation System
- Recommendations are based on user interests.
- KNN (K-Nearest Neighbors) algorithm is used for recommendations:
- Euclidean Distance
- Manhattan Distance
- KMeans with Euclidean Distance
- KMeans with Manhattan Distance
If you'd like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Submit a pull request.
This project is open-source and available under the MIT License.
For any issues or questions, please contact the development team or open an issue on the repository.