Code Monkey home page Code Monkey logo

first-contrib-app's Introduction

First Contrib Search

TLDR; Try it here !

First Contrib App

Why this project ?

As a coder who wants to make his/her first contribution to an open source project, it can sometimes be tough to find the right project that matches both your expectations and skills.

Thanks to some projects just like awesome list, you still can find static lists of project that are looking for developers.

Going further, if you want to search for issues that can be handled by beginners with the Github Search Engine, you still need to know what label is used by each repository to target beginners.

The Answer

This app tries to answer this problem by providing you with a simple search engine which will target all the issues with labels being more or less related with beginners. For now, more or less 50 different labels are listed in this file.

And because doing a search engine can be cooler than it is, I tried to follow my 80's inner vibes to provide a Miami Vice/GTA Vice City style :)

What problems have I found along the way?

  • I wanted to use the GraphQL API provided by Github because it drastically reduces the network calls number. However, it is not callable without being authenticated. Therefore, as a user, you must be authenticated to Github to use this app.

  • Major drawback: when searching issues by label in Github, we cannot use "OR" operator. Basically, we cannot search for issue having labels GOOD FIRST CONTRIBUTION OR UP FOR GRABS in one query. Therefore, the trick to get the issues that could be of interest is to query repositories that have issues matching our labels' list. The unfortunate consequence is that the list of issues listed in a repository can sometimes be empty... which leads sometimes to get a list of 20 repositories with no issues at all to display... That is the reason why the fetch more button might need to be smashed several times before finding new issues to display... A naive idea of mine was to query again a new list of repositories when zero issues are returned but launching network requests recursively does not seem like a good idea...ahem...

The stack

The main libs of this project are :

  • React (but preact-compat is used to get a smaller bundle)
  • React Apollo
  • React Router
  • A bit of lodash

ROADMAP

It's a first draft so lot of things still need to be done

  • Polish the style
  • Improve sorting possibility (so far, it's hardcoded by descending stars numbers).
  • Functional tests (because we always need tests :))
  • As said before, a trick to get an elegant way to query only meaningful repositories that have issues.

Feel free to open PR or submit issues :)

LICENCE

MIT.

first-contrib-app's People

Contributors

gaels avatar dependabot[bot] avatar gaurav24072002 avatar prashkup avatar sulaalhatem avatar

Stargazers

 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.