Giter Site home page Giter Site logo

github_language's Introduction

This repo contains my response to a challenge set by a London tech company.

##Task

build a simple web or command line application, which should allow users to enter an arbitrary GitHub username, and be presented with a best guess of the GitHub user's favourite programming language.

##My Response

Given the choice of a command line or web application, I opted for the web, using Sinatra as a lightweight framework. I used Ruby's net::http class over github's Octokit api wrapper as I didn't require authentication, testing using webmocks and rspec fixtures to control the testing environment. If the application were to be extended I would switch to octokit as otherwise Github's rate-limit would prevent more than 50 requests per hour.

The application covers some edge cases, including if the username submitted by the user doesn't exist or if github returns 'nil' as a favourite language. However given more time I would also include:

  • a response for a scenario where there are multiple possibilities for a users favourite language
  • a breakdown of the amount the submitted user uses each language, which could be graphically represented (see spec/support/fixtures/user_language_breakdown.json to see an example of the information I could have used. The only downside is that plugins are included, which can lead to misleading results).

github_language's People

Contributors

kunks001 avatar

Watchers

James Cloos 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.