Rancid Tomatillos is a movie browsing application built with React. It allows users to explore a collection of movies, search by title, view detailed movie information, and interact by upvoting or downvoting movies.
- 🎬 Movie Browsing: Browse a collection of movies with poster images and vote counts.
- 🔍 Search Functionality: Search for movies by title using a dynamic search bar.
- 📄 Movie Details: View detailed information about a movie, including its title, genres, overview, and backdrop image.
- 👍 Vote on Movies: Upvote or downvote movies to indicate your preferences.
- 🔗 Responsive Navigation: Navigate between the movie list and individual movie details seamlessly.
- React: For building the user interface.
- React Router: For dynamic routing and navigation.
- CSS: For styling the application.
- Fetch API: For interacting with the backend API.
- Heroku: Hosted backend API for fetching movie data.
- Vercel: Deployment platform for the React frontend.
npm install
npm start
The application will run on http://localhost:3001
.
The application consumes the following API:
https://github.com/MDelarosa1993/rancid-tomatillos-api
Make sure to run the backend api
-
Fetch All Movies:
GET /movies
Retrieves a list of all movies. -
Fetch Movie Details:
GET /movies/:movieId
Retrieves detailed information about a specific movie. -
Vote on a Movie:
PATCH /movies/:movieId
Updates the vote count for a specific movie.- Request body example:
{ "vote_direction": "up" }
- Request body example:
- App: The root component handling state and routing.
- MoviesContainer: Displays a list of movie posters.
- MoviePoster: Represents an individual movie poster with voting functionality.
- MovieDetails: Shows detailed information about a specific movie.
-
Browse Movies:
- Visit the homepage to view a collection of movies with their posters and vote counts.
-
Search for a Movie:
- Use the search bar at the top to filter movies by title.
-
View Movie Details:
- Click on a movie poster to view its details, including the title, genres, and description.
-
Vote on Movies:
- Upvote or downvote a movie directly from its poster.
- 🌟 User Authentication: Allow users to log in and save their favorite movies.
- 🌟 Pagination: Add pagination or infinite scrolling for larger movie collections.
- 🌟 Enhanced Styling: Improve the UI with animations and a mobile-friendly design.
- Melchor De La Rosa - GitHub Profile
- Lito Croy - Github Profile
This project is licensed under the MIT License.