This application is a simple application to use for learning about testing APIs. It has some bugs built into it and there are some challenges that you can use to try out your testing skills.
The easiest way to run this is in with Github codespaces. This should have all the dependencies setup for you automatically. You can do that with the following steps:
- First of all, you will need a GitHub account. If you don’t yet have one you can sign up at https://github.com.
- Once you have that account, navigate to the github repo: https://github.com/djwester/todo-list-testing in your browser
- Click on the Code dropdown and on the Codespaces tab click to create a new codespace

- You can accept the default workspace settings and continue.
- Once it has finished loading, go to the terminal and type in the command
make run-devand hit enter. - The service should start and you should see a toast message with a few options. Click on the Make Public option.
- Click on the Ports tab and you can see the public URL of the test site available to copy.
Note that Github will shut this site down after a few minutes of inactivity, so if you haven’t been using it for a while and you get an error when making API calls, you may have to come back and repeat these steps to restart the site. Also every time you restart the site it will have a slightly different URL so don’t forget to update the URL of any API calls pointing at this site.
You will need python 3.11 to run this application. You can check what version of python you have by going to the command shell (search for "terminal" in your applications) and calling
python -VNote that on older Macs you that come with python 2 installed the python command will point to python 2. You should also try running python3 -V to see if you have python 3 installed.
If you do not have version 3.11, you will need to install it.
You can install python on a Mac using the homebrew package manager. If you do not yet have homebrew installed (you can check by running which homebrew), run the following command
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"To install python run this command:
brew install python@3.11- To install the latest version of python on Windows, go to the Windows downloads page on python.org. Download the latest release and run the installer.
- You will also need to install just in order to build this locally. You can install it with winget by tying this command into a command prompt
winget install --id Casey.Just --exact(don't forget to restart your terminal after installing this)
With python installed, you are ready to setup this application. It uses poetry to for dependency management. You can install poetry with the following command:
curl -sSL https://install.python-poetry.org | python3 -Once you have it installed, you can use it to install all the other package dependencies.
poetry installOnce everything is installed, you can create the environment file by calling:
cp .envrc.example .envrcYou will need direnv to set your environment. If you don't yet have it installed, follow the instructions here to install it.
Call direnv allow to set the environment variables, and should now be ready to run the application.
In order to run this app locally call this command:
poetry run uvicorn main:app --reloadAlternatively, you can run it with the make command:
make run-devor if you have installed just (running in a powershell instance on windows)
just --shell powershell.exe --shell-arg -c run-devYou can then access the application at http://127.0.0.1:8000
You can see documentation for the API at http://127.0.0.1:8000/docs