Code Monkey home page Code Monkey logo

coding_challenge's Introduction

27Pilots Coding Challenge

Thank you for taking part in this coding challenge. For this challenge you will be given an unfinished React application, that you have to improve and enhance. The app will be recieving data to display from a Nodejs backend that you need to setup as well.

To be able to participate in the challenge you need to make sure to have all the pre-requisites in place:

  • Nodejs v16.9+
  • Npm v7.21+
  • Docker
  • Git
  • IDE (e.g. VSCode)
  • Github.com Account

If you have everything in place, first get the backend up and running and then setup the React frontend.

Setup Nodejs Backend

To populate the frontend with some data, a backend needs to be setup. Therefore the following steps have to be executed:

  1. Pull the docker image 27pilots/coding-challenge-backend
  2. Run the image and bind the port 8000

The console output should be something like this:

[Nest] 20  - 12/06/2021, 1:30:31 PM     LOG [RouterExplorer] Mapped {/api/startups, GET} route +12ms
[Nest] 20  - 12/06/2021, 1:30:31 PM     LOG [RouterExplorer] Mapped {/api/startups/:id, GET} route +1ms
[Nest] 20  - 12/06/2021, 1:30:31 PM     LOG [RoutesResolver] StartupUspController {/api/startup-usps}: +1ms
[Nest] 20  - 12/06/2021, 1:30:31 PM     LOG [RoutesResolver] StartupContactsController {/api/startup-contacts}: +0ms
[Nest] 20  - 12/06/2021, 1:30:31 PM     LOG [RouterExplorer] Mapped {/api/startup-contacts, GET} route +2ms
[Nest] 20  - 12/06/2021, 1:30:31 PM     LOG [NestApplication] Nest application successfully started +6ms

Setup React Frontend

If you have not already done so, fork this repository to your github.com account. Then, clone the repository and install the dependencies with npm. Now launch the application with running the npm start script.

After successfully compiling you can access the app on http://localhost:3000.

The Challenge

An important part of the application is to show a list of startups with some basic information. Please implement this startup list roughly according to the design. A list of startups can be retreived from the backend at this endpoint: http://localhost:8000/api/startups. The following steps will give you some guidance.

Retreive Data

To retreive the startup list from the backend, extend the existing src/Http/Startup.http.service.ts, so that all the tests from src/Http/Startup.http.service.test.ts pass and a list of startups is returned from the service.

Implement StartupList component

Now, extend the StartupList component so that it fetches the list of startups from Startup.http.service.ts and displays them like this:

Startup List

Check the Cypress tests

It might be that the design is already a little bit older, so make sure that your implementations complies to the existing Cypress test suite cypress/integration/StartupList.spec.js. You can run the tests with npx cypress open and then clicking on the test.

Complete the Challenge

Complete the challenge by committing your changes and pushing them to your forked repository. Of course you are always free to commit and push in between.

Good luck & have fun!!

coding_challenge's People

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.