Skip to content

OlexiyOdarchuk/AbitAssistant_Bot

Repository files navigation

AbitAssistant_Bot

Donate Telegram Bot GitHub Roadmap License: GPLv3 Made in Ukraine

🌐 Мова / Language

🧾 Опис

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


📚 Зміст


🧠 Функціонал

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

🗺 Roadmap

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

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

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

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

🛠 Інсталяція

Вимоги:

  • Python 3.10+
  • Docker + Docker Compose
  • Telegram Bot Token

Кроки:

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

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

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

    • Створіть config.py на основі config.example.py
    • Створіть docker-compose.yml на основі docker-compose.example.yml
  4. Запустити проєкт:

    docker-compose up --build

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

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


📦 Залежності

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

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

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

  • config.py (на основі config.example.py) — токени, логіни, посилання.
  • docker-compose.yml (на основі docker-compose.example.yml) — налаштування середовища.

👤 Автор

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


📄 Ліцензія

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


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

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

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


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

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

📦 project_root/
├── bot.py — головний файл для запуску бота
├── config.py — конфігураційний файл (створюється на основі config.example.py)
├── docker-compose.yml — конфігурація Docker-сервісів (створюється на основі docker-compose.example.yml)
├── app/
│ ├── database/ — взаємодія з базою даних PostgreSQL + SQLAlchemy
│ │ ├── models.py — моделі для бази
│ │ ├── requests.py — запити до бази
│ ├── handlers/ — обробка команд та повідомлень користувача
│ │ ├── __init__.py — ініціалізація пакету
│ │ ├── admin.py — адмін-команди
│ │ ├── common.py — загальні команди
│ │ ├── filtering.py — фільтрація даних
│ │ ├── support.py — зворотній зв'язок
│ │ ├── viewing.py — перегляд абітурієнтів
│ ├── services/ — основна логіка бота (парсинг, аналіз, генерація)
│ │ ├── applicants_len.py — підрахунок абітурієнтів
│ │ ├── parse_in_db.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'и.

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