Github Repositories Challenge

The goal is to allow the user to type the name of a GitHub user and display their repositories in a list. The user should then be able to filter the repositories by name and/or programming language. The interface should be responsive and follow the principles of good user experience. The official GitHub API must be used to obtain the repositories per user.

Technologies Used

The following technologies and libraries were used to build this application:

  • NextJs: A React framework for building full-stack web applications.
  • Vercel: A cloud platform for static sites and serverless functions.
  • TypeScript : A superset of JavaScript that adds optional static typing and other features to the language.
  • Chakra UI: A utility-first CSS framework that makes it easy to style web applications.
  • Apolo: A comprehensive state management library for JavaScript that enables you to manage both local and remote data with GraphQL.
  • date-fns: manipulating JavaScript dates in a browser & Node.js
  • react-icons: A library of icons for React applications.

How to Run the Application

To run the application, you will need to have Node.js installed on your computer. Go to NodeJS web page to download and install the program.

Then, follow these steps:

  1. Clone the repository to your local machine:
git clone https://github.com/zzezequiel/mvst-github-repository-challenge
  1. Install the dependencies:
npm install
  1. Start the development server:
npm run dev
  1. Open your browser and go to http://localhost:3000/.

Future Improvements

Here are some possible future improvements that could be made to this application:

  • Component Reusability: Implementing a more efficient strategy for reusing components across different parts of the application.

  • GraphQL Query Structure: Establishing a structured approach for crafting GraphQL queries to optimize data fetching and management within our application.

  • Text Scripts Data File: Creating a dedicated file to store text scripts used in components and querys, providing better organization and easier maintenance.

  • Enhanced Search Functionality: Enhancing the search feature to enable searching by repository description or language.

Feedback

It was truly a pleasure to develop this project as a test for MVST. I thoroughly enjoyed the process and the opportunity to showcase my skills. It was the first time I use Apollo and it made handling data a lot easier. With Apollo, fetching data from the GitHub API was simple, fast and secure. Plus, it helped keep everything running smoothly by managing data effectively. I will using it again for sure! I'm eager to dive into new projects, tackle fresh challenges, and continue growing alongside MVST.