This applications allows a user to search (and subsequently sort/filter) through Github repositories. It leverages the Github API to find repositories, retrieve a specified repository's language metadata, and check a user's API rate limit.
The application consists of three pages: Home, Search, and Result. The routing is handled in App.js. Each page directory has its own components and tests folder. Functions and components shared throughout the application can be found in the common directory.
- Search Input
- An input to type in the text to search github
- Search results
- Show the results of the search
- Sort results
- By Best Match (default) - Stars - Forks - Help Needed
- Filter results
- By multiple languages (Autocomplete to aid you)
- Detailed Result Page
- A page that when a result is clicked shows a detailed screen of the repository (including waffle and pie charts)
- Responsive Design
- Should render properly on device sizes (mobile, tablet, laptop, large desktop)
- Notistack for snackbar components used in error handling
- PropTypes for run-time typechecking
- Jest and React-Testing-Library for tests (Example tests can be found at SearchBar.spec.js)
- Material UI for custom components
- Nivo for chart components
- React-router-dom for routing
- Axios for API calls
- More extensive testing
- Adding query parameters to our routing code
- More extensive theming
- Introduce Typescript
In the project directory, you can run:
Runs the app in the development mode.
Open http://localhost:3000 to view it in your browser.
Installs the necessary dependencies.\
Runs all available tests. \
Refer to file comments for a more detailed explanation. The developer can be reached at serruya.ariel@gmail.com