Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak

Dmytro Romanchuk

Offer Dmytro work on your next project.

Ukraine Cherkassy, Ukraine
6 hours 13 minutes back
responds to 60% of messages
A little busy a little busy
9 Safes completed
6 days 4 hours back
7 clients
44 proposals made
age 47 years
on the service 1 year

Rating

Successful projects
100%
Average rating
9.98 out of 10
Rating
1738
Python
75 place out of 4514
Bot Development
52 place out of 1963
6 projects
Bot Development
5 projects
Python
2 projects
Engineering
2 projects
Web Programming

Language proficiency level

Українська Українська: fluent

Skills and abilities

Portfolio


  • 156 USD

    ConcreteBuildControl bot

    Python
    Project Title: Automation System for Logistics and Supply of Construction Sites (Telegram Bot)
    Brief Description: Developed a comprehensive Telegram bot for a construction company that fully automated the procurement cycle of materials: from the foreman's request on site to delivery and reporting. The system uses Google Sheets as a database and CRM, allowing the client to manage processes in a familiar interface without the costs of expensive admin panels.

    Problem Addressed by the Project:
    Previously, communication was conducted in chaotic chats: requests were lost, the engineering department (PTO) could not keep up with approving invoices, and the supply department did not know what and where to deliver. There was a lack of transparency in order statuses.

    Functionality and Roles:
    The bot implements a role-based access control (RBAC) system for 4 types of users:

    1. Foreman:
    - Creation of material requests (text or photo).
    - Selection of the site from a dynamic list.
    - Receipt of materials on site (mandatory photo report + comment).
    - Accounting for materials from the client.
    - Weekly reports on material write-offs.
    - Receiving notifications about the status of the request ("Rejected", "Vehicle is on the way").

    2. PTO (Engineering Control):
    - Validation of requests: "Approve" / "Reject" buttons.
    - Ability to edit the list of materials before approval.
    - Viewing photo requests and receipt reports.
    - Automatic transfer of approved requests to the supply department.

    3. Supply:
    - Receiving notifications about new approved requests (with photos and details).
    - Marking requests with the status "Ordered".

    4. Logistics:
    - Control of goods ready for shipment.
    - Changing the status to "Shipped" (automatic notification to the foreman).

    Technical Stack:
    Language: Python 3.10+
    Framework: aiogram 3.x (asynchronous architecture).
    Database: Google Sheets API (gspread library). Used as a database for ease of editing by managers.
    Deployment: VPS (Linux), PM2 for process management.

    Key Technical Solutions (Highlights):
    Memory Optimization: Implemented custom memory management using gc (Garbage Collector) and optimized queries to the Google API. This reduced RAM consumption on a weak VPS, avoiding loading large data arrays.
    Reliable Data Search: Developed a "Smart Search" algorithm that finds the order ID in the table regardless of formatting (ignores leading zeros, spaces, text cell formats), eliminating errors during manual editing of the table by managers.
    Seamless Interaction: Implemented a message chain. When the "Approve" button is pressed, the bot not only changes the record in the database but also instantly sends the generated order card (with photo) to the chat of the next department.

    Result:
    The bot unified the work of departments into a single flow. The processing time for requests was reduced, information loss was minimized to zero, and management received transparent reporting in Google Sheets in real-time.
  • 89 USD

    Business card website

    HTML & CSS
    General Description

    This is the code for a one-page website (Landing Page) for the fitness club "SPARTA," created using HTML, CSS, and JavaScript. Its main goal is to present a promotional offer and collect customer contact information through a booking form.

    Structure and Styling (HTML/CSS)

    The page has a logical structure with key blocks: a promo banner, a "sticky" site header, a full-height main screen (100vh) with a background image, a booking form, and an informative footer.

    The design is executed in a bright yellow-black theme, with colors defined through CSS variables for easy modification. The site is fully responsive for mobile devices, uses standard fonts for readability, and features smooth interactive effects when hovering over buttons and links.

    Interactivity (JavaScript)

    All functionality is implemented in "pure" JavaScript:

    Mobile Menu: A responsive burger menu that slides in from the right, with animation and background dimming. It supports nested submenus that expand on click.

    Interface: The user can close the top promo banner.

    Form Handling: The booking form sends data to an email using the external service FormSubmit.co, which does not require its own backend. After successful submission, the user is automatically redirected to a thank-you page (thank-you.html).
  • 67 USD

    Web panel for automation and management of Telegram mailings

    HTML & CSS
    This is a web control panel written in Python using the FastAPI framework, which serves as a graphical interface for the previously described Telegram automation script (core_logic.py). The panel allows the user to manage Telegram accounts, launch broadcasts, and track their execution through a browser. SQLAlchemy is used for data storage.

    Key Features

    Centralized account management: The web interface allows adding new accounts, viewing the list of existing ones, and deleting Telegram accounts from the database along with their session files.

    Web authorization: A step-by-step process for adding new accounts directly through the browser is implemented. The user enters the phone number, then the confirmation code from Telegram, and, if necessary, the two-factor authentication (2FA) password. The system handles all stages, creates a session file, and saves the account.

    Launching and configuring campaigns: The user can select accounts to participate in the broadcast and run tasks in the background. Individual settings can be specified for each campaign (e.g., files with targets and messages).

    Background task execution: Broadcasts are executed as background processes (BackgroundTasks). This means that the user can close the browser page, and the task will continue to run on the server.

    Real-time monitoring: The panel displays the current status of the task (e.g., "Ready to start," "In progress," "Completed," "Error") and allows viewing the latest entries from the log file, enabling tracking of progress and diagnosing issues.

    Safe stop: There is an option to send a signal for a proper stop of the current task. The script will complete its current action (e.g., sending a message) and stop without abruptly terminating the process.

    Operational Logic

    The user opens the main page, where they see a table with all added Telegram accounts and their statuses, as well as a control panel for launching tasks.

    Adding an account: The user fills out a form, specifying the phone number and other settings (proxy, files). The server initiates the authorization process via Telethon, sending a code to the specified number. After entering the code (and the 2FA password, if needed), the server saves the session file and adds an account record to the database.

    Launching a campaign: The user selects one or more active accounts, configures the parameters, and clicks the "Start" button.

    The browser sends a request to the server. The server (FastAPI) receives this request, checks if another task is not running, and starts the main broadcast logic (run_script_logic) in the background.

    The user is immediately redirected back to the main page, where they see that the task status has changed to "Starting..." or "In progress."

    JavaScript on the page periodically sends requests to the server to get the current status and logs, updating the information on the screen without reloading the page.

    After the broadcast is completed, the status is automatically updated to "Completed" or "Error."
  • 56 USD

    Fitness bot in Telegram

    Python
    This is a Telegram bot written in Python using the python-telegram-bot library. Its main purpose is to provide users with workout programs based on their gender, goals (weight loss, muscle gain, etc.), height, and weight. To interact with the user, the bot uses a step-by-step dialogue (ConversationHandler), making the process intuitive.

    Main components and their purposes

    python-telegram-bot library: This is the foundation that provides interaction with the Telegram API. The code uses its asynchronous version (async def), which is modern practice.

    ConversationHandler: This is a key element of the bot's logic. It allows creating a "dialogue" with the user, consisting of several steps or "states." The bot sequentially asks questions and waits for answers, transitioning from one state to another.

    States:

    The variables SELECT_GENDER, GET_HEIGHT, etc. are unique identifiers for each step of the conversation. They help the ConversationHandler understand at which stage of the dialogue the user is and which function to call next.

    Keyboards (ReplyKeyboardMarkup):

    Instead of forcing the user to type text ("Male", "Weight Loss"), the bot offers ready-made buttons. This reduces the likelihood of errors and makes the interface more user-friendly. The code includes three different keyboards: for selecting gender, for selecting goals for men and women.

    Workout data (male_programs, female_programs):

    These are two large dictionaries that serve as the bot's "database." They contain ready-made workout programs, structured by gender, goal, and days of the week. Currently, this data is hardcoded in the code.

    Handler functions:

    start: Starts the dialogue, greets the user, and offers to choose a gender.

    select_gender, select_male_goal, select_female_goal: Handle the user's selection from the keyboard, store data (context.user_data), and ask the next question.

    get_height, get_weight: Receive text messages, convert them into numbers, check for correctness, and store them.

    show_workout_program: The final function. It gathers all saved data, calculates the Body Mass Index (BMI), and finds the corresponding workout program in the dictionaries. After that, it forms a large text message and sends it to the user.

    cancel: Allows the user to interrupt the dialogue at any time with the /cancel command.

    Logic of operation (Step-by-step scenario)

    The user sends the /start command.

    The bot responds with a welcome message and shows a keyboard with "Male" and "Female" buttons. The dialogue transitions to the SELECT_GENDER state.

    The user presses one of the buttons.

    Depending on the choice, the bot shows a new keyboard:

    For men: "Weight Loss", "Gain."

    For women: "Weight Loss", "Muscle Tone."

    The dialogue transitions to the SELECT_MALE_GOAL or SELECT_FEMALE_GOAL state.

    The user selects a goal.

    The bot saves the goal and asks for height. The dialogue transitions to the GET_HEIGHT state.

    The user sends their height in centimeters. The bot checks if it is a number and saves it.

    The bot asks for weight. The dialogue transitions to the GET_WEIGHT state.

    The user sends their weight. The bot checks if it is a number and saves it.

    The bot calls the show_workout_program function, which:

    Calculates BMI using the formula weight / (height in meters)².

    Determines the BMI category ("Normal", "Obesity", etc.).

    Based on gender and goal, finds the required workout program.

    Forms and sends the final message with BMI and a 3-day program.

    The dialogue ends (ConversationHandler.END).
  • 134 USD

    Corporate Telegram bot: Change management, data aggregation

    Python
    A comprehensive system for the automated collection of financial and inventory reports from retail network staff. The system structures incoming data from chats, minimizes human error, and generates analytics for management.

    Implemented:

    Smart Parsing: An algorithm for recognizing arbitrary text (categorization/quantity/amount) with input error protection.

    Data Wizard: A step-by-step report submission interface with the ability to return and edit previous steps (State Management).

    Smart Editing: A mechanism for editing already submitted reports with automatic form filling using previous data.

    Security: Role-based access model (Admin/Employee), protection of work chats from spam and unnecessary commands.

    Stack: Python (Aiogram 3), PostgreSQL, SQLAlchemy, Docker Compose.

    #telebot #Telegram #python #docker #ChatBots
  • 67 USD

    Crypto bot

    Python
    This is an autonomous Telegram bot-analyst, written in Python, designed for the automatic collection, analysis, and publication of daily reports on the cryptocurrency market. The bot integrates several services: it collects information from RSS feeds and public Telegram channels, processes it using artificial intelligence (Google Gemini), and then publishes a structured report in the specified Telegram channel.

    Key Features

    Aggregation from multiple sources: The bot simultaneously collects news from various sources: news websites via RSS feeds and popular Telegram channels.

    Full text parsing: For news from websites, the bot attempts to follow the link and obtain the full text of the article, not just a short description from the RSS, providing deeper context for analysis.

    AI analysis: All collected textual information is sent to the Google Gemini language model with a special request (prompt) that requires analyzing market sentiment, highlighting key events, and providing a brief forecast.

    Automatic scheduled publication: Thanks to the built-in task scheduler (apscheduler), the bot automatically generates and publishes the report daily at a specified time (e.g., 9:00 AM).

    Command management: The bot administrator can manually start the analysis and publication process at any time using the /analyze command. For regular users, there is an informational command /start.

    Use of two Telegram libraries: python-telegram-bot is used to create the bot itself and handle commands, while Telethon is used to access other channels on behalf of the user account to collect news.

    Operational Logic

    Initialization: Upon launching, the script initializes the bot, connects to the Telegram API, and sets up the scheduler that will trigger at the specified time.

    Data collection (triggered): When the scheduler timer goes off or the administrator calls the /analyze command, the main analysis function is triggered:

    The bot goes through the list of RSS links, collects articles published in the last 24 hours, and attempts to download their full text.

    At the same time, using Telethon, it connects to Telegram as a user and collects the latest posts from the list of target channels.

    AI analysis: All collected texts are combined into one large context and sent to the Gemini model.

    Processing and formatting: The bot receives a response from the AI in the form of plain text with special tags ([SENTIMENT], [EVENTS], etc.). The script replaces these tags with formatting (emoji, bold text) for better readability.

    Publication: The final, formatted report along with the list of sources is sent to the target Telegram channel.
  • 178 USD

    Script for mailing in Telegram

    Python
    General Description

    This is a powerful script for automating mass mailings in Telegram, written in Python using the Telethon library. Unlike standard bots, it operates by managing real user accounts, allowing for the sending of private messages and commenting in groups. The script is part of a larger system, likely with a web interface for management.

    Key Features

    Multi-accounting: The script can simultaneously manage an unlimited number of Telegram accounts.

    Authorization and sessions: It automatically logs into accounts (including two-factor authentication), saves sessions to avoid repeated logins, and can identify blocked accounts by updating their status in the database.

    Proxy support: An individual proxy can be configured for each account, enhancing anonymity and reducing the risk of blocking.

    Flexible campaign management: Target lists (users/groups) and message texts are loaded from separate files, allowing for easy customization of mailings without changing the code.

    "Human" behavior: The script uses random delays between sending messages and switching between accounts, mimicking the actions of a live person to bypass Telegram's spam filters.

    Advanced logic: Before sending, the script checks if the target user exists. If the account does not have permission to post in the group, it automatically attempts to join and resend.

    Operational Logic

    The script receives a list of accounts that are to participate in the mailing.

    It sequentially connects to each account using saved session files and configured proxies.

    For each connected account, its individual list of targets and messages is loaded.

    The script begins a loop in which a random message is selected for each target and sent on behalf of the current account.

    After each action, a pause is executed. Once the work with one account is completed, the script takes a longer pause and moves on to the next.

    The process can be stopped remotely (for example, from a web panel).

    After the task is completed, all accounts are properly disconnected, and the results (number of sent and failed messages) are returned for reporting.

Reviews and compliments on completed projects 9

17 June 156 USD
Automation of FB script writing in Python

Quality
Professionalism
Cost
Contactability
Deadlines

Work completed on time )

7 June 89 USD
Development of a script in BAS (Browser Automation Studio) for automating Facebook through Dolphin Anty AP

Quality
Professionalism
Cost
Contactability
Deadlines

The work was completed ahead of the stated deadline, very efficiently)

Quality
Professionalism
Cost
Contactability
Deadlines

Everything did not come together on the first try, but in the end, we overcame the set tasks.

19 January 89 USD
Transfer of the model from ANSYS APDL (Classic) to ANSYS Workbench / Python script for automating the transfer

Quality
Professionalism
Cost
Contactability
Deadlines

Everything is excellent. By all criteria. The performer quickly understood a completely new and complex topic. And he managed to solve everything within the framework of the assigned task.

19 January 22 USD
Writing a script in Python for converting APDL to Workbench

Quality
Professionalism
Cost
Contactability
Deadlines

Everything is excellent. By all criteria. The performer quickly understood a completely new and complex topic. And he managed to solve everything within the framework of the assigned task.

Quality
Professionalism
Cost
Contactability
Deadlines

The project was completed according to the technical specifications.

2 January 111 USD
Telegram script

Quality
Professionalism
Cost
Contactability
Deadlines

Wonderful specialist!
The work was done quickly and efficiently. He was always in touch, promptly answered all questions, and took into account all comments and wishes. Very polite, responsible, and professional in his field. I am completely satisfied with the collaboration — I definitely recommend!

26 December 2025 45 USD
Finalize the Python bot

Quality
Professionalism
Cost
Contactability
Deadlines

I did it quickly and was in touch, we are currently testing. But no bugs have been found yet! I recommend.

6 December 2025 156 USD
Create a chat bot

Quality
Professionalism
Cost
Contactability
Deadlines

I am completely satisfied with the work. It was done very quickly and professionally.

Activity

  Latest proposals 10
Development of a Telegram store for a clothing brand. Product catalog, sizes, cart, order processing.
178 USD
Software maintenance
111 USD
Telegram bot
269 USD
Automatic video posting on social media according to a schedule
100 USD
Signal bot with automation in Google Sheets
22 USD
GPU Optimization Specialist
50 USD
We are looking for a developer to create a trading bot/chatbot.
22 USD
Telegram bot for auto service
22 USD
Approximately 5 microservices on FastAPI + edits and refactoring
350 USD
Restoration of access to the Telegram account.
223 USD