WatchSense is a movie discovery app built with Laravel and Livewire. It pulls film data from TMDb, lets users explore trending titles, inspect movie details, save likes, and surface recommendations based on taste signals like genre, cast, director, and user activity.
| What it does | Why it matters |
|---|---|
| Browse trending and searchable movies | Quickly find something worth watching |
| View rich movie details | See cast, crew, language, and ratings in one place |
| Like movies and build a profile | Make recommendations feel more personal |
| Use weighted recommendation logic | Blend multiple signals instead of relying on one factor |
- TMDb-powered landing page with trending content
- Auth flow for register, login, and logout
- Movie gallery for browsing and search
- Movie detail experience with cast, crew, and language metadata
- Like and unlike support for signed-in users
- Weighted recommendation engine for related titles
- Database-backed storage for users, films, genres, actors, reviews, and likes
- Laravel 12
- Livewire 4
- PHP 8.2+
- Vite
- Tailwind CSS 4
- MySQL or another Laravel-supported database
- PHP 8.2 or newer
- Composer
- Node.js and npm
- A database server
- TMDb API key
- Install dependencies.
composer install
npm install- Prepare the environment file.
copy .env.example .env
php artisan key:generate- Fill in the required values.
APP_KEY=base64:...
DB_CONNECTION=mysql
DB_DATABASE=watchsense
DB_USERNAME=root
DB_PASSWORD=
TMDB_API_KEY=your_tmdb_api_key- Create the tables.
php artisan migrate- Run the app.
npm run dev
php artisan serveIf you prefer one command for local development, use:
composer run dev- The app expects
TMDB_API_KEYto be set before movie features will work properly. - If changes in
.envdo not seem to apply, runphp artisan config:clear. - The default seeder creates a test user account for local testing.
app/Http/Controllerscontains the gallery and authentication controllers.app/Livewirecontains the movie detail and recommendation components.app/Services/RecommendationService.phphandles weighted recommendation logic.database/migrationscontains the schema for films, genres, actors, reviews, and likes.resources/viewscontains the Blade views for the UI.
This project uses the MIT license.