Build a simple React application where users can search for movies and view their details using the OMDb API. This task is designed to assess your React skills, component architecture, state management, and UI/UX implementation.
⏱️ Time Limit: 3 hours - Focus on core functionality and clean code over additional features.
- Search Bar - Allow users to type a movie title to search
- Movie Cards - Display search results showing movie poster, title, year, and rating
- Detail View - Click a card to open detailed information showing title, poster, year, genre, and plot summary
- State Management - Handle loading, empty, and error states
- React (latest version with functional components and hooks)
- JavaScript or TypeScript (your choice)
- CSS (vanilla CSS, CSS Modules, or styled-components - your choice)
- Component-based architecture with React hooks (
useState,useEffect, etc.) - Responsive design (mobile-first approach preferred)
- Clean, readable code with proper naming conventions
- Error handling for API failures and loading states during API calls
- Responsive Layout - Works well on mobile, tablet, and desktop
- Loading Spinner - Show while fetching data from API
- Empty State - Display "No results found" when search returns no movies
- Error Handling - Show user-friendly error messages for failed API calls
- Clean Design - Professional, modern interface with intuitive navigation
- Clear visual hierarchy and accessible design practices
- Get a free API key from OMDb API
- Use these endpoints:
- Search:
https://www.omdbapi.com/?apikey=YOUR_KEY&s=batman - Details:
https://www.omdbapi.com/?apikey=YOUR_KEY&i=MOVIE_ID
- Search:
Your project should be created with Create React App or Vite and run successfully with npm install && npm start.
src/
├── components/ # React components
├── services/ # API calls
├── styles/ # CSS files (if not using CSS-in-JS)
├── App.js
└── index.js
- Create a new public GitHub repository
- Commit your code with clear, descriptive commit messages
- Send the repository link via email
- Create a zip file of your project (exclude
node_modulesfolder) - Send via email attachment
Your submission must include:
- Working application that runs with
npm install && npm start - Clean, well-organized code
- Brief README.md with setup instructions, how to run the project, any assumptions or decisions made, and time spent on the task
Your submission will be evaluated on:
- Code Quality (30%) - Clean, readable code with proper naming conventions and component organization
- React Implementation (25%) - Effective use of hooks, component architecture, and state management
- API Integration (20%) - Proper error handling, loading states, and data fetching implementation
- UI/UX Design (15%) - Visual design quality, responsive layout, and user experience
- Functionality (10%) - All required features working with proper edge case handling
- Start Simple - Get basic functionality working first, then enhance
- Handle Edge Cases - Empty searches, API failures, no results
- Test Your App - Try different searches and test responsive design
- Time Management - Focus on functionality first, styling second
If you have any questions about the requirements, please don't hesitate to reach out via email.
Good luck! We look forward to reviewing your submission.