Skip to content

OlexiyOdarchuk/AbitAssistant_Bot

AbitAssistant_Bot

Donate Telegram Bot GitHub Roadmap License: GPLv3 Made in Ukraine

🧾 Опис

AbitAssistant_Bot — це Telegram-бот для випускників 11 класів України, який автоматизує процес відстеження заяв абітурієнтів на вступ до ВНЗ. Бот реалізує техніку, описану у цьому відео, і значно економить час, показуючи конкурентів у зручному вигляді.


📚 Зміст


🧠 Функціонал

  • 📥 Парсинг конкурсних списків із vstup.osvita.ua
  • 📊 Автоматична обробка та сортування даних
  • 🧾 Формування списку конкурентів за обраною спеціальністю
  • 🔗 Генерація прямих посилань на абітурієнтів у abit.poisk
  • 📂 Запис усіх даних у локальну базу даних
  • 👥 Адміністративна панель з списком користувачів
  • 📋 Система логування дій
  • 📣 Розсилка повідомлень користувачам

🗺 Roadmap

План розвитку та оновлень AbitAssistant_Bot можна переглянути у публічному Trello:
👉 Відкрити Roadmap

Там відображено:

  • Плани на майбутні оновлення.
  • Завдання на найближчий час;
  • Функції, що зараз у розробці;

💬 Якщо маєш пропозицію — можеш залишити її у Issues, або написати в підтримку у самому боті.

🛠 Інсталяція

Вимоги:

  • Docker + Docker Compose
  • Telegram Bot Token

Кроки:

  1. Встановити Docker:

  2. Клонувати репозиторій:

    git clone https://github.com/OlexiyOdarchuk/AbitAssistant_Bot.git
    cd AbitAssistant_Bot
  3. Налаштувати конфігурацію:

    • Створіть .env на основі .env.example
  4. Запустити проєкт:

    docker-compose up --build -d

🚀 Використання

Після запуску бот автоматично почне працювати у Telegram.


📦 Залежності

  • Python + Aiogram – логіка бота
  • aiohttp + BeautifulSoup4 – парсинг даних з вебсайтів
  • Pandas + NumPy – обробка та аналіз даних
  • Matplotlib – візуалізація статистики
  • SQLAlchemy – ORM для роботи з базою даних
  • PostgreSQL – основна СУБД
  • Docker – контейнеризація

⚙️ Конфігурація

Перед запуском обов’язково скопіюйте і налаштуйте файл .env відповідно до .env.example


👤 Автор

Telegram: @NeShawyha
Gmail: Написати лист


📄 Ліцензія

Цей проєкт розповсюджується за умовами ліцензії GPLv3.


🧡 Підтримати проєкт

Якщо проєкт вам корисний, розгляньте можливість підтримки:

💸 Підтримати через Monobank


📂 Структура проєкту

У проєкті дотримано чіткої структури: головні файли — в корені, уся логіка — в папці app/. Нижче — повний опис з посиланнями:

📦 project_root/
├── bot.py — головний файл для запуску бота
├── .env — файл зі змінними оточення. (стоворюється на основі .env.example)
├── config.py — конфігураційний файл
├── docker-compose.yml — конфігурація Docker-сервісів
├── app/
│ ├── database/ — взаємодія з базою даних PostgreSQL + SQLAlchemy
│ │ ├── models.py — моделі для бази
│ │ ├── requests.py — запити до бази
│ ├── handlers/ — обробка команд та повідомлень користувача
│ │ ├── __init__.py — ініціалізація пакету
│ │ ├── admin.py — адмін-команди
│ │ ├── common.py — загальні команди
│ │ ├── filtering.py — фільтрація даних
│ │ ├── profile.py — профіль користувача
│ │ ├── support.py — зворотній зв'язок
│ │ ├── viewing.py — перегляд абітурієнтів
│ ├── services/ — основна логіка бота (парсинг, аналіз, генерація)
│ │ ├── decoder.py - обробка данних, що отримані з API через parser.py
│ │ ├── parser.py - парсинг данних з API
│ │ ├── parse_abit_poisk.py — парсинг додаткових даних
│ │ ├── filter.py — логіка фільтрації
│ │ ├── results_cache.py — кешування результатів
│ │ ├── visualization.py — генерація графіків
│ │ ├── generate_link.py — генерування посилань
│ │ ├── mailing.py — розсилки
│ │ ├── support.py — обробка відгуків
│ │ ├── user_management.py — управління користувачами
│ │ ├── logger.py — система логування
│ │ ├── stats.py — статистика
│ ├── keyboards.py — кнопки та клавіатури
│ ├── states.py — стани FSM


📡 Де шукати?

Бот вже працює і доступний у Telegram:

👉 @AbitAssistant_bot


🛠 Звернення до розробників

Проєкт відкритий до розвитку і вдосконалення. Якщо ви хочете допомогти — fork'айте репозиторій, вносьте зміни і створюйте pull request'и.

💡 Можливо саме ваша доробка потрапить до нової версії проєкту!