BetaMovies is a comprehensive movie streaming platform that allows users to browse, view, and interact with a wide range of movies and series. This documentation provides detailed information about the platform's features, structure, and how developers can contribute or enhance the system.
- Project Overview
- Features
- Installation
- System Architecture
- API Integrations
- Key Components
- Authentication and Security
- Admin Panel
- User Interface
- Customization
- Troubleshooting and Support
BetaMovies is designed to provide an interactive movie and series streaming experience. The platform fetches data from The Movie Database (TMDb) API to offer the latest information about movies, series, and genres.
The revamped version includes performance optimizations, a cleaner UI, and enhanced features such as better search functionality, dynamic genre filtering, and improved responsiveness.
- Movie Search: Users can search movies by name, genre, release year, or other parameters.
- Dynamic Genres: Genres are dynamically fetched and displayed in a navigation bar.
- Responsive Design: Fully responsive interface optimized for mobile and desktop.
- TMDb Integration: Fetch movies, series, and seasons dynamically via the TMDb API.
- Trailer Support: Watch trailers directly from the movie details page.
- Admin Panel: Manage movies, genres, and user interactions from an easy-to-use backend.
- Dark/Light Mode: Supports user preferences for theme selection.
- Authentication Features: Secure login, email verification, and Google authentication.
- PHP >= 8.1
- Composer
- Laravel >= 11x
- Node.js & NPM
- MySQL or any supported relational database
- A TMDb API key
- Clone the repository:
git clone https://github.com/obahchimaobi/betamovies.git cd betamovies
- Install dependencies:
composer install npm install && npm run dev
- Configure
.env
file:APP_NAME=BetaMovies APP_URL=http://localhost DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=betamovies DB_USERNAME=root DB_PASSWORD=secret TMDB_API_KEY=your_tmdb_api_key GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret GOOGLE_REDIRECT_URI="http://127.0.0.1:8000/auth/google/callback"
- Migrate and seed the database:
php artisan migrate --seed
- Serve the application:
php artisan serve
- Framework: Laravel 11x
- Database: MySQL
- APIs: TMDb API, custom APIs for user and movie management
- Storage: Local filesystem or cloud-based solutions (e.g., AWS S3)
- Framework: Blade Templates (Laravel Livewire)
- Styling: TailwindCSS with additional custom CSS
- Responsiveness: Built with a mobile-first approach
- Usage: Fetch movie details, genres, seasons, and episode information.
- Endpoints Used:
/movie/{id}
: Fetches movie details./genre/movie/list
: Fetches list of genres./tv/{id}/season/{season_number}
: Fetches season and episode details.
/api/movies
: Fetch movies stored in the database./api/users
: Manage user data.
Optimized for smooth scrolling and fast rendering:
- Uses
background-fixed
efficiently. - Images are preloaded and compressed into WebP format.
- Lazy loading implemented for large assets.
- Searches by title and release year.
- Returns related results when exact matches aren’t found.
- Optimized SQL queries to improve performance.
- Detects user preference for light or dark mode.
- Uses Tailwind's
dark:
classes for seamless theme transitions.
- Secure Login: Users can register and log in with strong password requirements and hashed storage.
- Email Verification: New users receive a verification email to confirm their account.
- Google Authentication: Users can log in using their Google accounts for faster access.
- CSRF Protection: Implemented to protect against cross-site request forgery.
- Password Reset: Secure password reset functionality via email.
- Role-Based Access: Ensures only authorized users can access specific parts of the platform.
The admin panel includes:
- Movie Management: Add, update, and delete movies.
- User Management: View and manage users.
- IP Restriction: Restrict access to the admin panel to specific IP addresses.
- Logs: View activity logs for better monitoring.
- Framework: The admin panel will be implemented using FilamentPHP.
- Home Page: Displays featured and trending movies.
- Details Page: Provides comprehensive information about a selected movie or series.
- Responsive Design: Adapts to different screen sizes and orientations.
Developers can customize the platform by:
- Updating the
resources/views
folder for UI changes. - Modifying controllers in
app/Http/Controllers
for backend logic. - Adding new routes in
routes/web.php
orroutes/api.php
.
-
Slow Scrolling on Background Sections:
- Ensure all images are optimized.
- Use
background-attachment: scroll
as a fallback for older devices.
-
Database Errors:
- Verify
.env
database credentials. - Run migrations using
php artisan migrate
.
- Verify
-
API Errors:
- Confirm TMDb API key validity.
- Check rate limits on the TMDb account.
- Contact: [email protected]
- Documentation updates: GitHub Wiki