Skip to content

samuel-un/nextmovie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

62 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NextMovie Logo

🎬 NextMovie - Your Movie & Series Manager Platform 🍿

NextMovie is a full-stack web application platform that allows users to manage their favorite movies and TV shows, including functionalities such as user management, personalized lists, and recommendations.

This repository contains both the Laravel-based backend and the React-based frontend, designed to be robust, scalable, and user-friendly.

πŸš€ Live Deployment

βœ… The project is currently finished and in production.


πŸ“Œ Features

  • πŸ‘€ User management (CRUD) for creating, updating, and deleting user profiles.
  • πŸ”’ JWT Authentication for secure user login and registration.
  • πŸ“ Custom lists for favorite movies and series.
  • ⭐ Rating and Recommendations system (Planned).
  • πŸŽ₯ API Consumption of TMDb (The Movie Database) for movie and series data.
  • πŸ—„ Database migrations and seeders for easy setup and testing.
  • πŸ›  Built with Laravel & React, using routes, controllers, models, API resources, and modern React components.

βš™οΈ Technologies Used


πŸ›  Backend Installation

# Clone the repository
git clone https://github.com/samuel-un/nextmovie.git

# Enter the backend directory
cd nextmovie-backend

# Install dependencies
composer install

# Configure the .env file with your database information
cp .env.example .env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=backend-nextmovie
DB_USERNAME=root
DB_PASSWORD=

# Generate a new application key
php artisan key:generate
php artisan jwt:secret

# Run migrations and seeders
php artisan migrate --seed

# Start the server
php artisan serve

πŸ’» Frontend

The frontend for NextMovie is a fully responsive React application that connects seamlessly to the backend API. It provides users with an intuitive and visually appealing interface to manage their favorite movies and TV shows.

Key features:

  • User registration and login with real-time validation and password security checks
  • JWT authentication integrated with the backend
  • Custom movie and series lists for each user
  • Responsive design for both desktop and mobile (based on Figma design)
  • Error and success messages for all user actions
  • Movie list component connected to the API
  • Navigation between login and registration using React Router

Technologies:

  • React (Vite)
  • JavaScript (ES6+)
  • CSS Modules
  • Axios (for API requests)
  • React Router

Repository:
The frontend code is available in the frontend-nextmovie folder of this repository.


πŸš€ Frontend Installation

# Enter the frontend directory
cd frontend-nextmovie

# Install dependencies
npm install --legacy-peer-deps

# Start the development server
npm run dev

The application will be available at http://localhost:5173 by default.


πŸ–ΌοΈ Frontend Screenshots

Landing and Header:
Landing and Header

Landing and Footer:
Landing and Footer

User Registration:
User Registration

User Login:
User Login

Search Results:
Search Results

Detail Page:
Detail Page

User Profile:
User Profile

User Profile 2:
User Profile 2


Note:
The frontend requires the backend API to be running and accessible at the configured URL (default: http://localhost:8000).


πŸ§ͺ API Tests (Postman)

This project includes a fully functional user CRUD API. Here are the Postman tests for each CRUD operation:

1. Create User (POST /api/users)

  • Request JSON:
{
	"name": "Samuel",
	"email": "[email protected]",
	"password": "123456"
}
  • Expected response: Status 201 and created user data.

Create user


2. List all Users (GET /api/users)

  • Expected response: Status 200 and array of users.

List users


3. View a Specific User (GET /api/users/{id})

  • Expected response: Status 200 and user data.

View user


4. Update User (PUT /api/users/{id})

  • Request JSON:
{
	"name": "Samuel Actualizado"
}
  • Expected response: Status 200 and updated data.

Update user


5. Delete User (DELETE /api/users/{id})

  • Expected response: Status 204 and no content.

Delete user


βœ… Test Coverage Report

To ensure code quality and reliability, I implemented unit and integration tests for both the backend (Laravel/PHPUnit) and frontend (React/Vitest).

πŸ” How to run tests and check coverage

πŸ§ͺ Backend (PHPUnit)

php ./vendor/bin/phpunit --coverage-text

πŸ“Έ Coverage result (Backend) Backend Coverage

πŸ’» Frontend (Vitest)

npx vitest run --coverage

πŸ“Έ Coverage result (Frontend) Frontend Coverage

βœ… The project currently meets the minimum 60% coverage for the backend and frontend codebases.


πŸ“Š Methodology

This project was developed using the SCRUM methodology and Pair Programming to ensure efficient collaboration and agile development.


πŸ“‹ License

This project is licensed under the MIT license.

About

Fullstack (Laravel + React/Vite). JWT, TMDB, MySQL.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors