Cryptocurrency arbitrage with data retrieval through api and as a telegram bot with built-in admin panel.
Completed ✓
- CRUD operations on users via FastAPI + SQLAlchemy ORM
- CoinGeckoAPI class of interaction with the API of one of the blockchain mirrors, as well as the calculation of the largest spread based on market data.
- ArbitoidAPI class implements the bridge function between the FastAPI application and the end user, as well as calculating the financial benefit of arbitrating the asset.
- DatabaseConnector class that implements both client and admin logic for interacting with the user table
- TelegramBot class that implements the main user interaction with the API, as well as a convenient admin panel
- Python 3.11
- FastAPI
- SQLAlchemy
- Aiogram
- PostgreSQL
-
Clone the repository to the local machine
git clone https://github.com/Segfaul/arbitoid.git
-
Go to the repository directory
cd arbitoid
-
Create and activate a virtual environment
python -m venv env source env/bin/activate
-
Set project dependencies
pip install -r requirements.txt
-
Configure the configuration file cfg.json
nano cfg.json
-
Run the FastAPI app in the background
uvicorn api:app --reload --log-level error
-
Run the business logic in the background
python __init__.py &
-
Run the global parser in the background
python global_parser.py &
-
In case of a problem, the program will stop automatically or you can stop execution using
ps aux | grep ".py" kill PID
-
Also you can build a docker app and run the container
docker build -t app . docker run -d app