As part of your coding challenge you will extend an existing API. The goal of the challenge is to see how you're able to work with existing code. Successful measurement is to finish two tasks and get the minimum passing score of 25 points. You can earn more points with good code quality measured by writing tests. We believe that writing unit tests is the best software engineer's habit, and also it helps colleagues to understand how the code is working.
Expected spend time is no more than 5 hours. Obviously you can spend more if you want, but we value your time.
The git repository contains a simple API to manage Todo entries. Currently, Todos does not have any categorisation, we would like to be able to add labels/tags to each todo entry. Since, all data are stored in the app memory, that means it will disappear after each app reload. We would like you to save data in a persistence storage, so the data will survive after an app reload.
- Extend the API in a way that it will be possible to add labels/tags to
TodoEntry
. - Save data in database (you can choose any database based on your preferences).
Minimum passing score is 25 points
- 10 points for finishing task #1
- 3 points for integration tests in
test.http
- 5 points for unit tests
- 3 points for integration tests in
- 15 points for finishing task #2
- 10 points for unit tests
Project is fully functional, compatible with Python 3.8 or newer versions. By using Starlette framework with Uvicorn combination.
pip install -r requirements.txt
cd src/app
uvicorn api:app --reload
pytest
Integration tests are in tests.http
How to work with integration tests in Pycharm.