IMDb (an initialism for Internet Movie Database) is an online database of information related to films, television series, podcasts, home videos, video games, and streaming content online – including personal biographies, plot summaries, ratings, and fan and critical reviews.
- Movie Search: Quickly search for movies by title or category.
- Movie Discovery: Explore new movies based on popular genres, ratings, and recommendations.
- Reviews: Leave reviews for movies you’ve watched and see what other users think.
- Movie Ratings: Rate movies using a 1 to 10-star system.
- Categories: Movies are organized into categories such as action, comedy, drama, horror, science fiction, and more.
- User-Friendly Interface: An easy-to-use design for a pleasant experience on all devices.
- See Other User Reviews: Check out what other users have said about movies with their detailed reviews and ratings.
- Frontend: Angular
- Backend: Laravel (PHP)
- Database: MySQL
- Authentication: Laravel Sanctum
- Movie API: The Movie Database (TMDb)
- WebSockets: Pusher
- Testing:
- Unit Testing: PHPUnit
- Integration Testing: PHPUnit
- End-to-end Testing: Playwright
- Performance Testing: k6
- PHP
- Composer
- XAMPP
- ZIP Extension for XAMPP (activated from php.ini)
- Node.js
- Angular CLI
- MySQL
git clone https://github.com/7uddy/IMDB.git
cd IMDB
cd backend
composer installDB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=imdb
DB_USERNAME=root
DB_PASSWORD=
TMDB_API_KEY=your_tmdb_api_key
BROADCAST_CONNECTION=pusher
BROADCAST_DRIVER=pusher
PUSHER_APP_ID=your_id
PUSHER_APP_KEY=your_key
PUSHER_APP_SECRET=your_secret
PUSHER_APP_CLUSTER=your_clusterphp artisan migrateThe authentication need to be updated to check Bearer token from requests by default. For this, handle function from Authenticate (from Backend\vendor\laravel\framework\src\Illuminate\Auth\Middleware\Authenticate.php) has to be overwritten like this:
public function handle($request, Closure $next, ...$guards)
{
if($jwt=$request->cookie('jwt')){
$request->headers->set('Authorization', 'Bearer '.$jwt);
}
$this->authenticate($request, $guards);
return $next($request);
}php artisan servecd frontend
npm install
ng serve![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
















