- Create a new Next.js app in Typescript or Javascript using
npm
andnode@18
- Add Tailwind and Radix UI as the styling UI strategy
- Add
@axe-core/react
for accessibility
- If there's areas of uncertainty or question please use your own knowledge and experiences to fill in the gaps
-
- The task should be completed in it's entirety
-
- Please return the test with a production URL and a link to the git repo
-
- Tests are a nice to have but are not a requirement
-
- Retrieve a list of
100
popular movies from The Movie DB using their API
- Retrieve a list of
-
- The list of popular movies should be batched in groups of
20
- The list of popular movies should be batched in groups of
-
- On page load return the first
20
results as a5
column grid (2
columns on mobile) that includes the moviecover art
,title
,release date
andrating
- On page load return the first
-
- Add a load more button that
onClick
returns the next20
results until the list is exhausted. The button should be hidden when the end of the list has been reached
- Add a load more button that
-
- Clicking a movie item should open a Radix UI Dialog that includes more information from the api about the movie
-
- The layout and content can include anything you want
-
- Make the list sortable using a Radix UI component E.g.
-
- Make the
title
of the movie items searchable
- Make the
-
- Deploy your app to any service you deem appropriate E.g. AWS
-
- Use conventional commits
-
- You must be able to explain why you chose your deployment service
-
- The site should be accessible E.g. Lighthouse testing
-
- API error handling should be appropriate
-
- The readme should be updated to include any important information for setup and configuration
-
- The app should have no console errors in production and development
-
- Try to avoid adding third party tooling or libraries unless you can justify their usage