Origin Markets Backend Test

Reader user guide and design doc:

Spec:

We would like you to implement an api to: ingest some data representing bonds, query an external api for some additional data, store the result, and make the resulting data queryable via api.

  • Fork this hello world repo leveraging Django & Django Rest Framework. (If you wish to use something else like flask that's fine too.)
  • Please pick and use a form of authentication, so that each user will only see their own data. (DRF Auth Options)
  • We are missing some data! Each bond will have a lei field (Legal Entity Identifier). Please use the GLEIF API to find the corresponding Legal Name of the entity which issued the bond.
  • If you are using a database, SQLite is sufficient.
  • Please test any additional logic you add.

Project Quickstart

Inside a virtual environment running Python 3:

  • pip install -r requirement.txt
  • ./manage.py runserver to run server.
  • ./manage.py test to run tests.

API

We should be able to send a request to:

POST /bonds/

to create a "bond" with data that looks like:

{
    "isin": "FR0000131104",
    "size": 100000000,
    "currency": "EUR",
    "maturity": "2025-02-28",
    "lei": "R0MUWSFPU8MPRO8K5P83"
}

We should be able to send a request to:

GET /bonds/

to see something like:

[
    {
        "isin": "FR0000131104",
        "size": 100000000,
        "currency": "EUR",
        "maturity": "2025-02-28",
        "lei": "R0MUWSFPU8MPRO8K5P83",
        "legal_name": "BNPPARIBAS"
    },
    ...
]

We would also like to be able to add a filter such as: GET /bonds/?legal_name=BNPPARIBAS

to reduce down the results.