An interactive Telegram bot built with Python and Aiogram 3, designed for web developers and freelancers to showcase their portfolio, services, and capture client leads directly into an admin chat.
bot.py β Main entry point, handlers, and polling initialization.
- config.py β Environment configuration and configuration validation.
- data.py β Static profile information, services description, and FAQ data.
- keyboards.py β Inline keyboard layouts and pagination helpers.
- states.py β FSM states definition for the lead collection form.
- requirements.txt β Project dependencies list.
- Interactive Menu: Quick navigation between profile details, services, portfolio, FAQ, and contacts.
- Dynamic Portfolio Browser: Inline pagination to flip through project case studies smoothly.
- Lead Intake Form: A multi-step questionnaire using Finite State Machine (FSM) to collect project type, budget, deadline, and description.
- Admin Notifications: Instantly sends structured client leads to the developer's private Telegram chat.
- Language: Python 3.10+
- Framework:
aiogram(v3.13.1) β asynchronous Telegram Bot API framework. - Configuration:
python-dotenvfor secure environment variable management.
Create a .env file in the root directory of the project and add your credentials:
BOT_TOKEN=your_telegram_bot_token_here
ADMIN_ID=your_telegram_user_id_herepip install -r requirements.txt
python bot.pygit clone [https://github.com/xelturon/portfolio_bot.git](https://github.com/xelturon/portfolio_bot.git)
cd portfolio_bot