https://github.com/mgobeaalcoba/quasar-fire
Resolve the quasar-fire challenge in Python & FastApi
https://github.com/mgobeaalcoba/quasar-fire
api api-rest challenge fastapi python trilateration
Last synced: 5 months ago
JSON representation
Resolve the quasar-fire challenge in Python & FastApi
- Host: GitHub
- URL: https://github.com/mgobeaalcoba/quasar-fire
- Owner: Mgobeaalcoba
- License: mit
- Created: 2024-05-20T22:41:19.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-27T20:48:18.000Z (almost 2 years ago)
- Last Synced: 2025-05-20T18:18:55.178Z (about 1 year ago)
- Topics: api, api-rest, challenge, fastapi, python, trilateration
- Language: Python
- Homepage:
- Size: 21.5 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Quasar Fire Project

## Description
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.
## Technologies
- Python 3.12
- FastAPI 0.111.0
- Pydantic 1.11.0
- SQLAlchemy 1.4.30
## Installation
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:
```bash
$ git clone
$ cd quasar-fire
$ pip install -r requirements.txt
```
## Usage
To run the project, you must execute the following command:
```bash
$ 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.
## Endpoints
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.
## Database
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.
## Service
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.
## Tests
In progress...
## License
This project is licensed under the terms of the MIT license. See [LICENSE](LICENSE) for more information.
## Contact
Mariano Gobea Alcoba - [email](gobeamariano@gmail.com)