GithubHelp home page GithubHelp logo

tmo-challenge-1's Introduction

T-Mobile Coding Challenge

Important! Read this First !

Do not submit a pull request to this repository. You PR wil be rejected and your submission ignored.

To properly submit a coding challenge you must:

  1. fork this repository
  2. make the necessary changes
  3. push changes to your forked origin
  4. send address of your fork to t-mobile.

We will review your fork online before and during your interview.

Stocks coding challenge

How to run the application

There are two apps: stocks and stocks-api.

  • stocks is the front-end. It uses Angular 7 and Material. You can run this using yarn serve:stocks
  • stocks-api uses Hapi and has a very minimal implementation. You can start the API server with yarn serve:stocks-api

A proxy has been set up in stocks to proxy calls to locahost:3333 which is the port that the Hapi server listens on.

You need to register for a token here: https://iexcloud.io/cloud-login#/register/ Use this token in the environment.ts file for the stocks app.

The charting library is the Google charts API: https://developers.google.com/chart/

Problem statement

Original problem statement

Task 1

Please provide a short code review of the base master branch:

  1. What is done well?
  2. What would you change?
  3. Are there any code smells or problematic implementations?

Make a PR to fix at least one of the issues that you identify

Task 2

Business requirement: As a user I should be able to type into
the symbol field and make a valid time-frame selection so that
the graph is refreshed automatically without needing to click a button.

Make a PR from the branch feat_stock_typeahead to master and provide a code review on this PR

Add comments to the PR. Focus on all items that you can see - this is a hypothetical example but let's treat it as a critical application. Then present these changes as another commit on the PR.

Task 3

Business requirement: As a user I want to choose custom dates
so that I can view the trends within a specific period of time.

Implement this feature and make a PR from the branch feat_custom_dates to master.

Use the material date-picker component

We need two date-pickers: "from" and "to". The date-pickers should not allow selection of dates after the current day. "to" cannot be before "from" (selecting an invalid range should make both dates the same value)

Task 4

Technical requirement: the server `stocks-api` should be used as a proxy
to make calls. Calls should be cached in memory to avoid querying for the
same data. If a query is not in cache we should call-through to the API.

Implement the solution and make a PR from the branch feat_proxy_server to master

It is important to get the implementation working before trying to organize and clean it up.

tmo-challenge-1's People

Contributors

abhisb 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.