Skip to content

Commit

Permalink
improve the README file
Browse files Browse the repository at this point in the history
  • Loading branch information
lemux-one committed Mar 16, 2023
1 parent 1d87834 commit 07147bd
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Dronery
Python based REST API to handle a drones delivery service using the micro framework Bottle. The principal cargo for the drones to carry on are medications. The comunication interface from/to the drones is not provided and it's outside of the scope for this project. This is just a demo to test the features (and lack of) of the selected framework for RESTful API development. It is a prototype not intended for production at the moment.

## Development restrictions
- No more than seven days to create a viable solution

## General goals
- JSON based input/output
- Standards compliant endpoints with a versionated API interface '/api/v#' (althought just v1 is being developed at the moment)
Expand All @@ -26,6 +29,13 @@ Python based REST API to handle a drones delivery service using the micro framew
## Knwon issues
- When the server crashes due to an unexpected error, then the thread running the audit task keeps running on its own. This can be easily addressed by moving the audit task execution to an OS dependent scheduler alternative (like cron, systemd, etc) or running the server and the audit task in separate execution contexts. This approach was not used here to keep it simple and portable.

## Improvements (given more available time for development)
- Do a more fine grained error handling to provide better hints and desciptive messages to the API consumer
- Dockerize the solution to have a more stable environment and simplify deployment and/or distribution
- Increment the number of unit tests to get more coverage and more resilience to regression bugs
- Improve the documentation of the API using more standards-based third party solutions (Swagger, etc)
- Provide support for PATCH operations

## Note before reading the next sections
1. Most of the instructions given below that refers to directory locations use '/' just for the sake of simplicity (the only exception is for the virtual environment activation because it is rather different depending on the shell). On Windows '\' is the correct directory separator to use.
2. When refering to the Python interpreter it is used the command `python`, again just for simplicity. On Windows systems `python.exe`, `py.exe`, or even `py` may be the ones available. Take the commands given below as a reference and adjust them if required. This may apply also to `pip` command.
Expand Down Expand Up @@ -77,3 +87,7 @@ pip install -r ./requirements.txt
python -m bottle main:root
`
- Point your browser to http://localhost:8080
- Browse the built-in documentation to get a hang of how the API works
- Consume the API with a proper client tool:
- ThunderClient is the recommended one. It is a VSCode extension comparable with Postman
- If using ThunderClient, then import the provided `thunder-collection_Dronery.json` file for a head start

0 comments on commit 07147bd

Please sign in to comment.