We are currently not hiring, but you can still clone the repository, give the tasks a spin, and send us an open application at [email protected].
If you have Docker installed, and are familiar with the make
command, you can use the following commands to start the development environment.
Run make develop
to start the container. You can access the API at localhost:8080
.
Run make reload
to reload the gunicorn workers. If you think that your changes are not reflected in the application after the reload, you can run make develop
again.
Run make purge
to remove the container.
Run make ve
to create the virtual environment.
You can use make unittest
to execute tests inside the virtual environment.
Alternatively, you can also run the application from your terminal with uvicorn
. See FastAPI docs on how to install the required packages.
You can then run ./ve/bin/uvicorn seravo.main:app --reload
to start our base application.
The tasks should be possible to implement with the given packages in requirements.txt
. If you want to use a new package (e.g. requests
instead of httpx
), you can just add it to the requirements file and use it in your code.
-
Create a new endpoint
/pokemon/{name}
, which can be accessed with a GET request.- When triggered, the application queries
https://pokeapi.co/api/v2/pokemon/{name}/
for a JSON blob about the chosen pokemon - Application should handle possible errors
- Data should be modified to match the following structure:
name: str height: int weight: int types: List[str]
- Application returns the modifed JSON blob to the user
- So, for example,
/pokemon/pikachu
would return this:
{ "name": "pikachu", "height": 4, "weight": 60, "types": ["electric"] }
- When triggered, the application queries
-
Create a new endpoint
/caps/
, which can be accessed with a POST request.- Endpoint can be queried with the following body:
{ "message": "string" }
- The API will return the content of the
message
field in all CAPS. - The API should reject the request if the body does not match the one above
- The API should reject the request if there already is a capitalized letter in the data
We will give points based on the following criteria:
- Code readability, code documentation, version control
- Code structure: is everything bundled in a single file or distributed
- Error handling: HTTP status codes
- Test coverage: Were the tests extended to test the new features.
Set up a private repository with your modifications, share it to @seravo-hrm and notify us at [email protected] with your application and we will get back to you as soon as possible!