Half-working telegram bot for crypto exchange.
Note: The bot is only partially implemented. It collects user contact info and lets users choose currency and pair — i.e. all the preparation steps — but it does not place real orders or perform actual exchange. No real exchange is executed after the flow.
- aiogram 3.x — Telegram Bot API
- PostgreSQL + asyncpg — users and orders
- Redis — FSM storage and exchange data cache
- SQLAlchemy 2.x (async) + Alembic — ORM and migrations
- Pydantic — settings and validation
- Python 3.11+
- Docker
- Telegram Bot Token (@BotFather)
exchanger_bot/
├── alembic/ # Migrations
├── bot/
│ ├── core/config.py # Pydantic settings
│ ├── database/models.py # SQLAlchemy models
│ ├── handlers/
│ ├── keyboards/
│ ├── middleware/
│ ├── services/ # Business logic
│ ├── states/ # FSM states
│ ├── tasks/ # Asyncio tasks
│ ├── filters/
│ └── utils/
├── bot.py # Entry point
/start— Welcome and short description; registers user/exchange— Start the exchange flow (currency → pair → amount → order)