This assignment involves building a movie display application with the following features:
Mark requires the ability to view an extensive list of movies using infinite scroll. As he scrolls down, the list should dynamically load additional movies until the end of the list is reached.
Mark wants to access detailed information about a particular movie by triggering a popup when clicking on a movie within the list. This functionality should provide a seamless way to view specific movie details.
Mark wishes to see two specific sets of movies ranked by revenue:
- Top 10 Movies Overall: Display the top 10 movies by revenue.
- Top 10 Movies by Year: Enable the display of the top 10 movies by revenue for a chosen year.
- Clone the repository:
git clone https://github.com/your-username/assignment.git
- Change Directory:
cd assignment
- Install dependencies: Ensure you have
Node.js
andnpm
installed. - Run:
npm install
To start the application, run: npm run dev
This will launch the application in your default browser at http://localhost:5173.
- The application fetches movie data from a provided API endpoint and displays it in a table format.
- Users can click on a movie to view its details.
- Filtering options are available to sort movies by revenue and year.
- Vite
- React
- TypeScript
- Axios
Contains SVG files used in the application.
Holds various React components used throughout the application.
Houses styles associated with React components.
Main application logic and state management reside in this file.
Contains global styles that do not rely on specific class names.
This feature facilitates sorting movies based on their revenue, showcasing the ten highest-earning films.
Select a specific year to filter movies by both their release year and revenue, providing a refined list based on user preferences.
Use this icon to reset the applied filters and revert to the original, unfiltered movie list.
Access the detailed description of a movie by clicking this icon, allowing users to explore comprehensive information about a selected film.
Close the movie description page using this icon, returning to the main interface.
Fetch additional data, expanding the movie list to a maximum of 1000 entries for a broader selection.
Effortlessly navigate back to the top of the page by clicking this icon, facilitating a smoother user experience and quicker access.
The "More Movies" feature fetches data only upon mouse hover, not triggering data loading via scrolling.
Pedro Paças