Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/inna-mykytiuk/cat-gallery-test

Test Case - Cat Gallery
https://github.com/inna-mykytiuk/cat-gallery-test

react react-query router-dom tailwind-css typescript zustand

Last synced: 4 days ago
JSON representation

Test Case - Cat Gallery

Awesome Lists containing this project

README

        

# **Junior Frontend Developer Test Case - Cat Gallery**

**Overview**
Create a web application that displays a gallery of cat images fetched from the TheCatAPI. Users should be able to filter the cats by breed and favorite/unfavorite individual cats.

**Requirements**

1. **Cat Image Gallery**:
- Fetch cat images and associated data (e.g., breed, temperament) from the TheCatAPI.
- Display the cat images in a responsive grid or masonry layout.
- Include the cat's breed name as a caption below each image.
2. **Breed Filtering**:
- Allow users to filter the displayed cats by breed.
- Provide a dropdown or search input to select the desired breed.
- Update the gallery to show only the cats that match the selected breed.
3. **Favoriting Cats**:
- Implement a "Favorite" button or icon for each cat image.
- Allow users to mark a cat as a favorite, and persist this information in the browser's local storage.
- Visually differentiate the favorite cats from the non-favorite ones in the gallery.
- Provide a way for users to view only their favorite cats.
4. **React Components and State Management**:
- Use functional components with React Hooks for state management and side effects.
- Manage state efficiently using React Context API or a lightweight state management library like Zustand (if you think it’s needed).
5. **API Integration**:
- Fetch cat data from the TheCatAPI using the provided API endpoints and documentation (React Query)
- Handle API errors and provide meaningful feedback to the user.
6. **UI and Styling**:
- Use Tailwind CSS for styling the application.
- Ensure a responsive and visually appealing user interface.
7. **Code Organization and Best Practices**:
- Organize the codebase in a clear and modular fashion.
- Follow best practices for React development
8. Utils:
- React Query
- TypeScript
- Vite
- Husky
- Linters
9. **Deployment**:

- Deploy the application to a hosting platform (e.g., Vercel, Netlify, or GitHub Pages) and provide the deployment URL.

![preview](https://github.com/Inna-Mykytiuk/cat-gallery-test/blob/main/public/cats.png)