Thank you for taking the time to do our technical test. It consists of two parts:
To avoid bounced emails please submit your results by uploading the relevant ZIP file to a shared Google Drive folder or public repository.
There is an open source SpaceX API https://github.com/r-spacex/SpaceX-API/tree/master/docs#rspacex-api-docs where you can get all the launch details, crew, payloads etc for the rockets.
Please use at least these 3 endpoints (fetch server-side only):
// Get upcoming launch details
https://api.spacexdata.com/v4/launches/upcoming
// Get crew names
https://api.spacexdata.com/v4/crew/{{id}}
// Get rocket
https://api.spacexdata.com/v4/rockets/{{id}}
The task is to create an application that presents the upcoming launches. We wanna get hyped so a countdown for each launch is essential and we want to know each crew member and the rocket that's launching.
- JavaScript - TypeScript
- Angular 8+ & RxJS (preferred)
- Node 10+
Feel free to spend as much or as little time on the exercise as you like as long as the following requirements have been met. We also take into consideration the Answers to technical questions.md file and what you would like to have added if you had more time. You should look at this as the complete solution, it's much quicker to explain what you would like to have done than code it.
- Your code should compile and run in one step
- You must include a couple tests to show understanding
Given I am a user running the application
When I land on the page
Then I want to see all the upcoming launches in cards
Given I am a user running the application
When I click on a launch
Then I want to see a detail view of a launch
And I want to see the rocket and crew in more detail (pick any details)
Each launch card has a:
- Media image
- Flight number
- Rocket name
- Text based countdown timer from time to launch.
Each launch detail view has at least:
- Crew member details
- Rocket details
Fetch all data from the api server side
Please answer the following questions in a markdown file called Answers to technical questions.md
.
- How long did you spend on the coding test? What would you add to your solution if you had more time? If you didn't spend much time on the coding test then use this as an opportunity to explain what you would add.
- What was the most useful feature that was added to the latest version of your chosen language? Please include a snippet of code that shows how you've used it.
- How would you track down a performance issue in production? Have you ever had to do this?