Giter Club home page Giter Club logo

movies's Introduction

Movie Search App

Preview of the working application can be found here.

Description

This application is a movie search app that allows users to explore and discover trending movies, search for movies based on keywords, and view detailed information about movies, including cast members and reviews. It utilizes the themoviedb.org API to fetch movie data.

The application features a responsive design that ensures optimal user experience across different devices and screen sizes. It is designed to adapt to various screen sizes, providing a seamless and visually appealing interface for users on mobile devices, tablets, and desktops.s

Features

Home Page

  • Upon visiting the home page, users are greeted with a collection of trending movies for the day.
  • Clicking on a movie opens a detailed view with additional information about the movie.
  • The page includes a "Load More" button that allows users to fetch more trending movies.

Movie Details Page

  • Clicking on a movie opens a detailed view with additional information about the movie.
  • The movie details page includes nested routes where users can view the cast members and read reviews from other users.

Search Movie Page

  • The search movie page features a search form where users can enter keywords to search for movies.
  • Upon submitting the form, the application performs a search in the database based on the entered keyword.
  • If matching movies are found, they are displayed as a list of movie cards. Clicking on a card opens a detailed view of the movie.
  • The page includes a "Load More" button that fetches additional movies with the same keyword, if available.

Additional Features

  • The application includes a NotFoundPage component to handle non-existent routes.
  • A Loader component is implemented to display a loading state while data is being fetched.
  • User notifications are implemented to provide feedback and notifications to the users.

Routes

  • '/' - Home component, the home page with a list of popular movies.
  • '/search-movie' - Movies component, the page for searching movies based on a keyword.
  • '/search-movie/:movieId' - MovieDetails component, the page with detailed information about a movie.
  • '/search-movie/:movieId/cast' - Cast component, information about the cast. Rendered on the MovieDetails page.
  • '/search-movie/:movieId/reviews' - Reviews component, information about the reviews. Rendered on the MovieDetails page.

Installation and Setup

Follow these steps to install and run the Movie Search App:

  1. To run this application locally on your computer, you need to have TypeScript installed globally.
  2. Clone the repository: git clone [https://github.com/lisitsyna-anna/movies]
  3. Navigate to the project directory: cd movies
  4. Install dependencies: npm install
  5. Obtain an API key from themoviedb.org and add it to the moviesApi.ts file.
  6. Start the development server: npm start
  7. Open the app in your browser at http://localhost:3000

Technologies Used

  • React
  • React Router
  • TypeScript
  • Styled Components
  • Axios
  • Usehooks-ts
  • React-avatar
  • React-icons
  • React-hot-toast
  • React-spinners

Future Enhancements

  • Implement user authentication and user profiles to allow users to save their favorite movies.
  • Enhance the search functionality with filters and sorting options.
  • Implement pagination for better navigation through search results.

Contact Information

If you have any questions or feedback, please feel free to contact me:

movies's People

Contributors

lisitsyna-anna avatar

Watchers

 avatar

movies's Issues

Accordion

Accordion could be added for the cast and reviews part so that they can be viewed together.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.