This project is a solution for the "Quasar Fire" challenge. It is a REST API that allows to obtain the position of a distress signal and the message sent by a ship in a given sector of the galaxy.
- Python 3.12
- FastAPI 0.111.0
- Pydantic 1.11.0
- SQLAlchemy 1.4.30
To install the project, you must have Python 3.12 installed on your computer. Then, you must clone the repository and install the dependencies with the following commands:
$ git clone
$ cd quasar-fire
$ pip install -r requirements.txt
To run the project, you must execute the following command:
$ uvicorn app.main:app --reload
This will start the server on http://localhost:8000
.
You can test the endpoints using the Swagger UI or the OpenAPI documentation available at http://localhost:8000/docs
or http://localhost:8000/redoc
respectively.
The API has the following endpoints:
POST /topsecret
: Allows to obtain the position and message of a distress signal from the three satellites.PUT /topsecret_split/{satellite_name}
: Allows to update the information of a satellite.GET /topsecret_split/{satellite_name}
: Allows to obtain the position and message of a distress signal from the satellites.
The project uses a SQLite database to store the information of the satellites. The database is created automatically when the application starts, and the tables are created if they do not exist.
The project has a service layer that is responsible for processing the information received from the satellites and obtaining the position and message of the distress signal. The service layer uses the trilateration algorithm to calculate the position of the signal.
In progress...
This project is licensed under the terms of the MIT license. See LICENSE for more information.
Mariano Gobea Alcoba - email