Skip to content

komaraip/marvision

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MarVision 🎬

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.

Laravel PHP TailwindCSS Livewire

✨ Features

User Features

  • 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

Admin Features

  • 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

Technical Features

  • 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

πŸš€ Tech Stack

  • 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

πŸ“‹ Prerequisites

  • 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)

πŸ› οΈ Installation

1. Clone the Repository

git clone https://github.com/komaraip/marvision.git
cd marvision

2. Install Dependencies

# Install PHP dependencies
composer install

# Install Node.js dependencies
npm install

3. Environment Setup

# Copy environment file
cp .env.example .env

# Generate application key
php artisan key:generate

4. Configure Environment Variables

Edit 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

5. Database Setup

# Run database migrations
php artisan migrate

# Seed the database (optional)
php artisan db:seed

6. Build Assets

# Development
npm run dev

# Production
npm run build

7. Start the Application

# Start Laravel development server
php artisan serve

# The application will be available at http://localhost:8000

🎯 Usage

For Users

  1. Register/Login: Create an account or use Google OAuth
  2. Browse Movies: Explore movies by categories and genres
  3. View Details: Click on any movie to see detailed information
  4. Subscribe: Join the newsletter for updates

For Administrators

  1. Admin Access: Login with admin credentials to access /admin
  2. Dashboard: View platform statistics and recent activity
  3. Manage Content: Add, edit, or remove movies
  4. User Management: Manage user accounts and roles
  5. Content Organization: Organize movies by categories and genres

πŸ“ Project Structure

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

πŸ§ͺ Testing

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 cypress

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/new-feature
  3. Make your changes and commit: git commit -m 'Add new feature'
  4. Push to the branch: git push origin feature/new-feature
  5. Submit a pull request

Development Guidelines

  • Follow PSR-12 coding standards
  • Write tests for new features
  • Update documentation as needed
  • Use meaningful commit messages

πŸ“„ License

This project is open-sourced software licensed under the MIT license.

πŸ™ Acknowledgments

πŸ“ž Support

For support, email [email protected] or create an issue on GitHub.

πŸ—ΊοΈ Roadmap

  • 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published