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

Dmytro Osadchyi

Offer Dmytro work on your next project.

Ukraine Kyiv, Ukraine
5 months back
Available for hire available for hire
on the service 5 months 6 days

Rating

Successful projects
No data
Average rating
No data
Rating
190
Python 1
1264 place out of 4463
Bot Development
738 place out of 1906

Skills and abilities

Portfolio


  • Chat Administrator Bot (Moderator)

    Bot Development
    Are you the owner of a chat and tired of manually deleting spam, profanity, and welcoming new participants? I will develop a reliable admin bot for you that will take care of the routine.

    Your chat will operate 24/7, even while you sleep.

    What this bot can do: Impressive greeting: The bot automatically tags new participants and suggests they familiarize themselves with the rules (the text can be customized for you).
    Strict filter: Instant removal of messages with links (competitor advertising) or profanity.
    Punishment system: Automatic "mute" (ban from writing) for offenders for 1 hour (or another time).
    Admin management: The ability to "forgive" and unmute a user with one command.

    Technical part:

    The bot is written in Python (aiogram 3.x) — this is a modern, fast, and asynchronous library. The bot can handle a large load.

    Clean code that is easy to maintain.

    What you will receive:
    A ready script file for the bot.
    Instructions for launching (I will help you run it on your PC or server).
    Free support for 3 days after project delivery.

    What you need to start:
    Bot token (I will help you obtain it from @BotFather).
    Greeting text and link to the rules.
    A list of words to block (optional).

    The bot shown in the example layout was developed in a couple of hours and does not fully reflect the potential of what can actually be developed; the functionality and code are designed purely as an example for the portfolio.
  • Telegram E-commerce Web App Modern store inside Telegram

    Bot Development
    Developed a fully functional online store based on Telegram Web Apps (trending technology 2024-2025).

    Problem: Regular bots with buttons are inconvenient for selecting products. Solution: Integrated a full web interface that opens directly in the chat. This increases sales conversion.

    What has been implemented: SPA (Single Page Application) frontend without reloads. Animations and haptic feedback (User Experience like in Apple/Android apps). Synchronization of the cart between the website and the bot. Admin panel (optional, can be added that it is planned).

    Stack: Python (Aiogram), JavaScript, HTML/CSS.
  • Currency converter bot

    Bot Development
    Here is a detailed description of how this bot works, divided into what the user sees and what happens in the code.

    1. For the user (Interface)
    The bot works as a step-by-step wizard:

    Start (/start):

    The user launches the bot.

    The bot greets and immediately shows buttons for currency selection (USD, EUR). This is more convenient than typing the names of the currencies manually.

    Currency selection:

    When the user presses a button (for example, USD), the bot remembers this choice.

    The buttons disappear, and the bot asks for the amount.

    Entering the amount:

    The user types a number (for example, 100, 50.5, or 200.50).

    The bot understands both a dot and a comma as separators.

    Result:

    The bot sends a report where two values are calculated:

    How many hryvnias are needed to buy this amount of currency.

    How many hryvnias you will receive if you exchange this amount of currency.

    The current exchange rate at that moment is also displayed.

    "Again" button:

    Under the result, a button "Another amount/currency" appears, which returns the user to the beginning (to currency selection).

    2. Technical part (Code logic)
    Here is what the script does:

    Working with PrivatBank API:

    The bot does not store exchange rates in the database. Every time the user enters an amount, the bot makes a real request to PrivatBank servers (aiohttp library). This ensures that the exchange rate is always the freshest.

    Finite State Machine (FSM):

    The bot uses memory (MemoryStorage) to know at which stage a specific user is.

    Scenario: Nothing -> Waiting for currency -> Waiting for amount -> Calculation -> Reset.

    This allows many people to use the bot simultaneously, and their requests do not mix.

    Validation (Data checking):

    Error protection: If text is entered instead of a number, the bot does not crash with an error but asks to enter the number correctly (handling ValueError).

    Formatting: The bot automatically replaces a comma with a dot so that the program can perform mathematical operations.

    Asynchronicity:

    Async/await is used. This means that while the bot is waiting for a response from the bank for one user, it can respond to other users without delays.

    Summary
    This is a simple but reliable real-time currency calculator. It converts USD/EUR to UAH and vice versa, using current bank data.

    It is also easy to add many other currencies; two currencies are presented as an example of how the bot itself works.
  • Telegram bot for ordering student works

    The code implements a Telegram bot for ordering student works (essays, presentations, laboratories) with a built-in queue system and manual payment verification by the administrator. The bot is written in Python using the aiogram 3.x library.

    1. Main functionality and roles
    The bot has two sides of interaction:

    Student (Client): Chooses a service, fills out a form, submits a task, pays, and waits for completion.

    Administrator (Executor): Receives applications, approves/declines them, verifies payment, and sends the completed work.

    2. Workflow scenario for the Student
    Start (/start):

    The student sees a greeting, working hours, and the number of people in the queue in real-time.

    A menu appears with service buttons (fixed prices) and a button to contact the admin.

    Feature: The "Course Work" button does not trigger an automatic scenario but simply provides the admin's contact for individual discussion.

    Order placement (FSM - Finite State Machine):

    When the student selects a service (for example, "Lab - 200 UAH"), the bot sequentially asks:

    Course (in numbers).

    Subject name.

    The actual task (text, photo, file, or link).

    After submitting the task, the student is automatically added to the Global Queue (QUEUE) and receives their number in it.

    Payment:

    If the admin approves the task, the student receives a button with a link to the Bank (Monobank) and a button "I have paid."

    After pressing "I have paid," the bot asks to enter the payer's full name for verification.

    Receiving work:

    After payment confirmation by the admin, the student waits.

    When the work is ready, the student receives the file directly from the bot.

    3. Workflow scenario for the Administrator
    Application moderation:

    When the student submits a task, the admin receives a complete message with all details and files.

    Buttons:

    Accept: The student receives an invoice for payment.

    Decline: The student is removed from the queue, and they receive a rejection.

    Payment verification:

    When the student writes that they have paid (and specifies their full name), the admin receives a request.

    Buttons:

    Money received: The order changes to "In progress" status.

    No money: The student is removed from the queue, and a rejection is sent.

    Sending the completed work:

    The admin uses the hidden command /send.

    The bot asks for the student's ID (numeric code).

    The bot shows whether this student is in the queue.

    The admin sends the file/text of the response.

    Final: The bot forwards the file to the student and automatically removes them from the queue, freeing up space.