Skip to content

Instantly share code, notes, and snippets.

@sadams
Created September 6, 2019 13:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sadams/e40c6a8df510de096b6203e1ad447b9c to your computer and use it in GitHub Desktop.
Save sadams/e40c6a8df510de096b6203e1ad447b9c to your computer and use it in GitHub Desktop.

Cars Web Dev Test

Cars API

Please create a new git repo and follow the instructions below.

Once you have finished, please email us the URL to your repo.

Please make commits as you go (> 1 and < 100) and provide instructions to run the application.

The Story

"As a consumer of a RESTFul API, I would like to be able to add, retrieve, and remove cars."

The Acceptance Criteria

  • Priority order is:
    1. add
    2. retrieve
    3. remove
  • A car has the following attributes:
    • id*
    • make
    • model
    • colour
    • year
  • We do not require persistent storage at this stage (an in-memory store is fine).

*generated by the application on entry

(If the story needs to be broken down to fit into the sprint, please do so.)

Subsequent stories

These are stretch goals if you have time (you can do them in any order):

  • "As a Developer, I want my code to be covered by tests, so I know if a change has broken something"
  • "As a Consumer of the API, when reading the car model information I would like to see an additional field containing a string of a few words that sound like the model of the cars I have added" (using http://www.datamuse.com/api/ as the source).
  • "As a Consumer of the API, I would like to be able to update my existing cars"
  • "As a Consumer of the API, I would like any cars I add through the API to persist between application restarts (persistent storage)"
  • "As a Consumer of the API, I would like cars to be represented as two separate, hierarchically linked resources:
    1. Make
    2. Model

Limitations

You can use whatever online resources you want (aside from copy-pasting large chunks of code).

You are encouraged to use any frameworks or libraries you feel comfortable with.

You will be asked about the code you submit so you should be able to explain why every line is there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment