A modern, Netflix-inspired movie streaming platform built with Laravel and integrated with The Movie Database (TMDB) API. MarVision provides a seamless movie browsing experience with user authentication, admin management, and responsive design.
- Authentication System: Registration, login, and Google OAuth integration
- Movie Browsing: Browse movies by categories and genres (Action, Comedy, Horror, Western, Animation, Thriller)
- Movie Details: View detailed information about movies including ratings, runtime, and trailers
- Responsive Design: Optimized for desktop and mobile devices
- Newsletter Subscription: Stay updated with the latest content
- Dashboard: Overview of platform statistics
- Movie Management: CRUD operations for movies with TMDB integration
- User Management: Manage platform users and roles
- Category Management: Organize content by categories
- Genre Management: Manage movie genres
- Content Moderation: Control featured and active content
- TMDB Integration: Real-time movie data from The Movie Database
- Caching System: Optimized performance with Laravel caching
- Admin Panel: Comprehensive administration interface
- API Integration: Seamless third-party API connections
- Database Relationships: Well-structured database design
- Backend: Laravel 11.x (PHP 8.1+)
- Frontend: Blade Templates, TailwindCSS, Alpine.js
- Database: MySQL/PostgreSQL
- Real-time: Livewire 3.4+
- Authentication: Laravel Sanctum + Google OAuth
- Icons: Blade Icons (FontAwesome, Entypo)
- Testing: PHPUnit, Pest
- Code Quality: PHPStan, Psalm, Laravel Pint
- Development: Vite, Cypress for E2E testing
- PHP 8.1 or higher
- Composer
- Node.js & npm
- MySQL or PostgreSQL database
- TMDB API key (Get it here)
- Google OAuth credentials (for social login)
git clone https://github.com/komaraip/marvision.git
cd marvision# Install PHP dependencies
composer install
# Install Node.js dependencies
npm install# Copy environment file
cp .env.example .env
# Generate application key
php artisan key:generateEdit your .env file with the following:
# Database Configuration
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=marvision
DB_USERNAME=your_username
DB_PASSWORD=your_password
# TMDB API Configuration
TMDB_API_KEY=your_tmdb_api_key
# Google OAuth Configuration
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
# Mail Configuration (for newsletter)
MAIL_MAILER=smtp
MAIL_HOST=your_mail_host
MAIL_PORT=587
MAILCHIMP_KEY=your_mailchimp_key# Run database migrations
php artisan migrate
# Seed the database (optional)
php artisan db:seed# Development
npm run dev
# Production
npm run build# Start Laravel development server
php artisan serve
# The application will be available at http://localhost:8000- Register/Login: Create an account or use Google OAuth
- Browse Movies: Explore movies by categories and genres
- View Details: Click on any movie to see detailed information
- Subscribe: Join the newsletter for updates
- Admin Access: Login with admin credentials to access
/admin - Dashboard: View platform statistics and recent activity
- Manage Content: Add, edit, or remove movies
- User Management: Manage user accounts and roles
- Content Organization: Organize movies by categories and genres
app/
βββ Http/Controllers/
β βββ Admin/ # Admin panel controllers
β βββ LoginController.php
β βββ RegisterController.php
β βββ VelflixController.php # Main movie controller
βββ Models/
β βββ Category.php
β βββ Genre.php
β βββ Movie.php
β βββ User.php
βββ Services/
βββ Newsletter.php
resources/
βββ views/
β βββ admin/ # Admin panel views
β βββ auth/ # Authentication views
β βββ components/ # Blade components
β βββ main.blade.php # Main movie browsing page
βββ css/
βββ app.css
routes/
βββ web.php # Web routes
βββ api.php # API routes
Run the test suite:
# Run PHPUnit tests
php artisan test
# Run Pest tests
./vendor/bin/pest
# Run code analysis
./vendor/bin/phpstan analyse
# Run Psalm analysis
./vendor/bin/psalm
# Format code with Pint
./vendor/bin/pint
# Run Cypress E2E tests
npm run cypressWe welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Make your changes and commit:
git commit -m 'Add new feature' - Push to the branch:
git push origin feature/new-feature - Submit a pull request
- Follow PSR-12 coding standards
- Write tests for new features
- Update documentation as needed
- Use meaningful commit messages
This project is open-sourced software licensed under the MIT license.
- The Movie Database (TMDB) for providing the movie data API
- Laravel for the excellent PHP framework
- TailwindCSS for the utility-first CSS framework
- Livewire for reactive components
For support, email [email protected] or create an issue on GitHub.
- Add user watchlist functionality
- Implement movie ratings and reviews
- Add advanced search and filtering
- Integrate video streaming capabilities
- Mobile app development
- Multi-language support
- Recommendation system
Made with β€οΈ by komaraip