The project is based on a real client workflow. Public data, company identifiers, user history, logs, object exports, contacts, and branding were removed before publishing.
- Async Telegram bot built with
aiogram - FSM-based user flow for search, filtering, and lead capture
- Redis state storage for active sessions
- SQLite storage for user profiles and request history
- JSON-driven real estate object catalog
- Separate business config and secret config
- Docker-ready local deployment
Real estate teams often have large object catalogs, repeated user questions, and several agents responsible for different listings. This bot turns that into a structured flow:
- User selects city and object type.
- Bot filters objects by parameters.
- User receives a clean object card.
- Bot routes the lead to the right manager.
- Runtime data stays outside the public repository.
.
|-- config/
| |-- app_config.example.json
| `-- app_config.json # local, ignored by git
|-- data/
| |-- city_reports/
| `-- objects/
| |-- Commerce/
| |-- Flat/
| |-- House/
| |-- Land/
| `-- Room/
|-- scripts/
| |-- control_panel.py
| `-- validate_setup.py
|-- src/portfolio_bot/
| |-- main.py
| `-- settings.py
|-- storage/
|-- docker-compose.yml
`-- Dockerfile
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtCreate local config files:
cp .env.example .env
cp config/app_config.example.json config/app_config.jsonValidate and run:
python scripts/validate_setup.py
python src/portfolio_bot/main.pyDocker:
docker compose up --buildSecrets live in .env:
BOT_TOKENREDIS_HOST- cooldown and spam limits
- local storage paths
Business values live in config/app_config.json:
- brand name
- welcome text
- manager username
- public contacts
- object card URL template
- optional media URLs
This makes the bot reusable for different clients without changing Python code.
This repository is published as a sanitized portfolio version. It demonstrates the architecture and deployment approach without exposing production data.
The strongest parts of the project are:
- reusable client configuration
- clean separation between runtime data and code
- Telegram UX for object search
- Docker-based deployment
- lead routing workflow
python, aiogram, telegram-bot, real-estate, automation, redis, sqlite, docker, lead-generation, workflow-automation

