• Stars
    star
    110
  • Rank 316,770 (Top 7 %)
  • Language
    JavaScript
  • Created over 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Skyscanner full-stack recruitment test

Thanks for taking the time to do our front-end / full-stack coding test. The challenge has two parts:

  1. a task to create a basic flight results front-end site to show flight prices

  2. some follow-up questions


You will be graded based on the following have been met:

  • Your implementation works as described in the task.

  • Your solution looks like the provided design.


Prerequisites/Environment Setup

Installing Node

The full stack test is developed using Node, using the following versions:

Node: LTS/Gallium (^16.19.0)

npm: ^8.19.3

We recommend using nvm or nave to manage your Node environment on Unix/macOS systems. If you use Windows then we recommend using nvm-windows.

To install the correct npm and node version for the project, use nvm install or nave install.

The full stack test has built-in support for these. Just run nvm use or nave auto to select the correct Node version.

Task

We have placed a number of helpful todos inside the code (see index.js and App.jsx) to help get you started, the main items we are looking for are:

  • Fetch flight results from the provided flights.json and format them into client readable results.

    • You are not required to serve this separately from the dev server (i.e. npm start).
  • Use the returned data to display a page of results that matches the given design.

    • Times should be displayed in 24 hour format.

Design

We've provided a design for small-screens (480px). Don't worry about tackling larger breakpoints, but please make sure your solution looks good at 480px in portrait orientation.

The design shows a look and feel defined in our styleguide. Feel free to import our React components into your project, or lift colours and things directly from the styleguide pages. We also have some auto-generated sassdoc that may help.

NB: You don't have to use our styleguide or our components -- picking colours from the image and rolling your own css to save time is absolutely fine.

For the airline logos, insert the airline id to the following url: https://logos.skyscnr.com/images/airlines/favicon/{id}.png

Client implementation

We'd like you to use React. On top of that, use whatever front-end libraries you feel comfortable with.

We've set you up with a build based on our custom fork of Facebook's create-react-app.

We've wired in Sass with our base stylesheet (bpk-stylesheets) + mixins (bpk-mixins) for you to get at -- see the Header component for example use.

Flight results

The provided flights json will return two collections of different items:

  • Itineraries - These are the containers for your trips, tying together Legs, and prices. Prices are offered by an agent - an airline or travel agent.

  • Legs - These are journeys (outbound, return) with duration, stops and airlines.

A good structure to represent trip options would be hierarchical:

Itineraries
  Legs

Running the project

To startup the frontend client run the following command.

  • npm start - This will start the application for development
  • npm run build - Will create a production optimised build
  • npm test - Will run the front end tests

Submission Guidelines

  • The zip file should be named {yourname}.zip, and should itself contain the full-stack-recruitment-test project folder with your submission.

  • The zip file should contain the FOLLOW-UP.md file with answers to the follow-up questions.

  • The zip file should not include the node_modules folder.


Inspiration for the test format taken with ❤️ from JustEat's recruitment test.

More Repositories

1

SkyFloatingLabelTextField

A beautiful and flexible text field control implementation of "Float Label Pattern". Written in Swift.
Swift
4,094
star
2

backpack

Backpack Design System
TypeScript
492
star
3

whispers

Identify hardcoded secrets in static structured text
Python
480
star
4

turbolift

A simple tool to help apply changes across many GitHub repositories simultaneously
Go
434
star
5

LambdaGuard

AWS Serverless Security
Python
399
star
6

cfripper

Library and CLI tool for analysing CloudFormation templates and check them for security compliance.
Python
396
star
7

Dixie

Dixie, turning chaos to your advantage.
Objective-C
192
star
8

aiotask-context

Contextual information for asyncio tasks
Python
161
star
9

engineering-principles

Skyscanner's Engineering Principles
133
star
10

backpack-android

Backpack Design System
Kotlin
127
star
11

applicationset-progressive-sync

Progressive sync controller for Argo ApplicationSet
Go
124
star
12

skyscanner-python-sdk

Skyscanner Python SDK
Python
121
star
13

backpack-ios

Backpack Design System
Swift
108
star
14

sonar-secrets

SonarQube plugin for identifying hardcoded secrets, such as passwords, API keys, AWS credentials, etc..
Java
99
star
15

pyfailsafe

Simple failure handling. Failsafe implementation in Python
Python
89
star
16

kms-issuer

KMS issuer is a cert-manager Certificate Request controller that uses AWS KMS to sign the certificate request.
Go
61
star
17

backpack-react-native

Backpack Design System
JavaScript
49
star
18

pycfmodel

A python model for Cloud Formation scripts
Python
27
star
19

ensure-node-env

A script that helps ensure you have the correct node & npm versions installed in your environment.
JavaScript
19
star
20

historical-bank-ruby

A Ruby Bank that serves historical exchange rates
Ruby
15
star
21

gradle-time-logger-plugin

Gradle plugin to log your build time
Kotlin
12
star
22

stylelint-config-skyscanner

Skyscanner's very own stylelint config.
JavaScript
10
star
23

gha-aws-oidc-sample

Enforcing per-repo privileges on AWS with GitHub Actions OIDC, without session tags
9
star
24

backpack-foundations

The foundational repo for Backpack platforms
JavaScript
9
star
25

eslint-config-skyscanner

Skyscanner's ESLint configuration
JavaScript
7
star
26

skyscanner-contentful-management

CLI tool for performing bulk actions with content managed using Contentful
Python
7
star
27

backpack-docs

Backpack design system's docs
JavaScript
7
star
28

skyscanner.github.io

Homepage of Skyscanner Open Source Software https://skyscanner.github.io
JavaScript
5
star
29

cra-template-backpack

The Backpack template used for Backpack React Scripts app creation.
HTML
4
star
30

backpack-node-sass

Parallelised node-sass with Backpack support.
JavaScript
3
star
31

OpenTSDB-rollup

Spark job generating rollup data points from a snapshot of an OpenTSDB raw data table
Java
3
star
32

backpack-usage-analyser

A tool to analyse the usage of Backpack resources in codebases.
JavaScript
2
star
33

grpc-asyncio

Python
2
star
34

eslint-plugin-backpack

JavaScript
1
star
35

eslint-config-skyscanner-with-prettier

Skyscanner's eslint config with additional support for Prettier
JavaScript
1
star
36

helm-argocd-appofapps

A helm chart that provides a relatively simple app of apps pattern
Smarty
1
star