Getting Started

Step 1: Clone the repository to your local system. Ensure not to fork it.

Step 2: Create a new branch - "your_name_vidyalai" in your local repository for making changes.

Step 3: Install packages and make sure you are using Node.js version 18.20 or higher.

npm i

Step 4: Run the development server:

npm run dev

Open http://localhost:3000 with your browser to see the result and complete the tasks mentioned below:

TASKS

Note: These tasks need to be completed within 3.5 hours.

  • Fix carousel scrolling UI: When navigation buttons are clicked, ensure a new image is shown. Additionally, center the carousel navigation buttons vertically relative to the image.

  • Replace dummy images by fetching each album of post using "https://jsonplaceholder.typicode.com/albums/1/photos" in /api/v1/posts route.

  • Make the top nav bar sticky during scrolling.

  • Implement functionality to load more posts upon clicking the "Load More" button. Hide the "Load More" button if no posts exist.

  • Display the user's name and email in each post. Show the first letter for both the first and last names.

    Screenshot from 2024-05-04 08-35-47

  • Convert UserList React class component to functional component and convert witUserData HOC (Higher order Component) to a custom React hooks

  • Convert useWindowWidth hook to ContextAPI. Declare the ContextAPI globally and access the isSmallerDevice property.

Submission

  • Create a new public repository in your github account

  • Push the changes from your local to the new repo on GitHub.

  • Update the readme by putting a check mark against the tasks you have completed. If you have not completed all the tasks, make sure to tick all the relevant ones.

  • Open a pull request from "your_name_vidyalai" to "master" Fill this form with a link to the pull request

Evaluation Criteria

  • Clarity and consistency of naming conventions.
  • Effectiveness of code modularization.
  • Adequacy and robustness of error handling mechanisms.
  • Efficiency of code optimization techniques.
  • Quality and comprehensiveness of code documentation.