Congratulations! If you're looking at this you probably have an interview with Oodle!
You have 2 hours to complete the challenge. If you run out of time before you complete the task to your own satisfaction, just stay calm and push your code. We are mostly interested in how you approach the problem and what your priorities are during the time.
This project is a rough representation of the types of GraphQL services we run at Oodle. Right now it's talking to an API: https://data.police.uk/docs/
You should be able to get the project started locally by running:
npm install
npm run dev
This API allows the user to query information about police forces around the UK, feel free to read up on it before you begin.
Additionally, feel free to add any other libraries or packages that you may feel you will need.
We have a frontend project that is calling this service. They have a set of new requirements that we'll need to implement for them, in order of priority:
When they make a getPoliceForces
query, they'd also like to get the engagement methods for each force.
When they make a getPoliceForces
query, they'd like to see details of any stop and searches the force made that resulted in an arrest in the first month of this year.
- Ability to interpret and integrate with a 3rd party API
- General GraphQL/Javascript competency
- Fetching and Handling Data Asynchronously
- Evidence of some testing
- You should fork this repo as it already has some of the boilerplate you'll need to get started.
- You don't have to deploy your code anywhere as we'll pull down the code and run it locally.
If you find the above requirements easy to solve, feel free to challenge yourself to go beyond the spec!
Some ideas:
- Show some evidence of documentation
- Think you can elegantly handle the API usage limits? Give it a go!
- Calculate some helpful metadata for each force, such as; avg number of arrests per month, most common legislation cited, etc.
Send us the link to your repo. We'll take a look at it, and if we like what we see we'll invite you to discuss it during a technical interview.