Coder Social home page Coder Social logo

gus's Introduction

GUS

Node.js CI

Github User Search (GUS), available here: https://gus-johann-s.netlify.app/

Highlights

  • HTTP calls results are cached using the session storage
  • I took the best of the REST API and GraphQL API
  • Images are preloaded on scroll to avoid unnecessary loading.
  • Good responsiveness to support different screen sizes
  • CSS is purged using PurgeCSS to keep only what's used in the application
  • Several filters are available (Best matches, Followers, Repositories and Joined)
  • Keep track of the previous research you made and suggest them
  • Indicate API limits
  • User profile page

Most proud of

Here I tried to focus more on improving the app size to deliver a fast loading app and an optimized one.

Pagination

At the beginning I only used Github REST API and there was a big drawback, the number of API Calls. When a search was made, asking for 20 results, the application made 21 requests. 1 to do the search and 20 for users. I stored as many results as possible, but the Github API has limitations. For example without an API token you can only make 10 searches and 50 calls to user profiles. Using an API token helps a bit but it wasn't enough. I first tried to only use GraphQL API, but in terms of functionality it was a step back compared to the version using the REST API. Users won't be able to navigate to a specific page because of Github GraphQL API. Finally a idea comes up, maybe I can use the best of the two worlds, good pagination using the REST API and good resources management using the GraphQL API! The application now uses the REST API search route and GraphQL API to load profile information.

What's next?

  • Improve the current profile page to add more data (contributions map, list of contributions)
  • Add a way to browse repositories, followers, and followed accounts.
  • Localization
  • Better error handler

gus's People

Contributors

johann-s avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.