Skip to content

P2P-платформа, упрощающая международные перевозки и покупки за границей. Пользователи могут взаимодействовать напрямую, экономя на доставке и делая зарубежный шопинг доступнее и выгоднее.

Notifications You must be signed in to change notification settings

PyotrAndreev/move-bro

Repository files navigation

📦 MoveBro - P2P Courier Telegram Bot

MoveBro — это Telegram-бот, который объединяет отправителей и путешественников для безопасной и удобной передачи посылок. Мы помогаем людям делиться маршрутами и поручениями, экономя время и ресурсы. Добро пожаловать в мир P2P логистики!


🚀 Возможности

  • 🔍 Поиск подходящего путешественника по маршруту
  • 🧳 Размещение заявок на путешествие
  • 📬 Создание и отслеживание заявок на доставку
  • 🔐 Безопасная система подтверждений и уведомлений
  • 📊 Удобное отслеживание своих заявок

📦 Пример использования

Аня хочет передать посылку из Москвы в Казань. Она создает заявку в боте, указывая вес, размеры и срок доставки.
Игорь планирует поездку по этому маршруту и принимает заказ от Ани. Совершается сделка, посылка отвозится и все довольны!


🧩 Архитектура проекта

Проект реализован как модульное Telegram-приложение, построенное по принципу разделения ответственности.

Сторона заказчика:

  • Create Request - создание собственной заявки на отправку
  • Find Journeys - посмотреть маршруты доставщиков и создать заявку на любой понравившийся
  • Check Requests - отслеживание своих посылок
  • Feedback - оставить отзыв/пожелание или указать на наши ошибки

Сторона доставщика:

  • Create Journey - создание собственного маршрута
  • Check Journeys - отслеживать созданные маршруты
  • Check Requests - посмотреть и откликнуться на заявки от заказчиков
  • Delivered Packages - просмотреть и изменить статус доставляемых посылок

Боты и их назначение

  1. Core-bot (MoveBro-bot)

    • Юридические тонкости касательно перевозки
    • Основной пользовательский функционал сервиса.
  2. Marketing-bot

    • Рассылки и привлечение новых пользователей — инструмент для продвижения.
  3. Grabber-bot

    • Сбор и аналитика сообщений — парсер, анализ и валидация чатов/пользователей.
  4. Visualisers

    • Визуализация данных (карты, диаграммы) по доставкам и маршрутам.

Дальнейшее развитие проекта:

  • Подключить обработку платежей
  • Добавить языковую модель для улучшения анализа сообщений

🏗️ Стадия проекта

  • Core-bot (MoveBro-bot): MVP
  • Marketing-bot: прототип, основные команды реализованы
  • Grabber-bot: работает парсинг чатов, поиск и валидация ссылок, анализ маршрутов
  • Visualisers: визуализация работает

❗ Нерешённые проблемы и ограничения

Core-bot

  • Отсутствие провайдера платежей

Marketing-bot

  • Риск блокировок при массовых рассылках

Grabber-bot

  • Отсутствует анализ сообщений на тип перевозимого груза
  • Низкая точность распознавания сущностей Spacy
  • Нет механизма автоматической повторной обработки сообщений при таймаутах

💻 Стек технологий

  • Python / Aiogram / Aiogram-dialog — реализация Telegram-бота и логика обработки
  • Pyrogram - релизация маркетинговвого бот
  • PostgreSQL — хранение заявок, маршрутов и пользователей
  • Redis — кеширование, хранение сессий и очереди уведомлений
  • Docker — контейнеризация проекта
  • SQLAlchemy — работа с базой данных

Инструменты

Marketing-bot - инструмент для продвижения бота

Позволяет проводить рассылку сообщений в выбранные чаты для поиска заинтересованных в отправке / доставке.

Функционал:

  • /add @username - добавление чата в базу
  • /remove @username - удаление чата из базы
  • /show - отображение всех добавленных чатов
  • /temp - отображение id заготовленных для рассылки сообщений
  • /send_all id - рассылка выбранного сообщения по чатам

Также бот самостоятельно обрабатывает сообщения, сообщения, отправленные ему в ответ или напрямую в личные сообщения.

Запуск

Создайте .env файл MarketingBot/bots/.env.bot1 следующего содержания:

API_ID=account_api_id
API_HASH=account_api_hash
ADMIN_ID=admin_account_id
BOT_USERNAME=bot_username

В самом боте пропишите путь до .env

load_dotenv("bots/.env.bot1")

Запуск бота:

 python3 marketingbot.py

Бот управляется через телеграм указанным раннее admin-аккаунтом

 # Например
 /add @username

Grabber-bot - инструмент для сбора и анализа данных

parser.py:

позволяет собирать информацию из выбранных чатов, а так же находить новые

  • #add_chat @username - добавить чат
  • #collect - провести сбор сообщений

Запуск:

 python3 parser.py

Управление через чат с ботом

Запуск:

 # Например:
 #add_chat @username
 #collect

При сохранении сообщений в базу они автоматически анализируются с помощью SpiCy, находя информацию о местах отправки/получения посылок

Утилиты

При анализе сообщений, парсер будет находить ссылки и юзернеймы групп/чатов/пользователей и сохранять все в базе. Для их валидации используются следующие скрипты:

  • links.py и users.py позволяет валидировать найденные ссылки

Запуск:

 python3 links.py # или users.py

В скрипте уже указан путь до базы

Визуалайзеры:

Скрипты в Visualisation позволяют визуализировать полученные данные в виде карты/диаграммы мест доставок/отправок, в том числе за определенные промежутки времени

Внутри скрипта укажите нужный период времени и запустите нужный визуалайзер6

 python3 visualize_map.py

🛠️ Установка и запуск

 # Клонируем репозиторий
 git clone https://github.com/PyotrAndreev/move-bro.git
 cd move_bro

 # Запускаем с Docker
 docker-compose up --build

Создайте файл .env с переменными:

  TOKEN=your_telegram_bot_token
  CONNECTION_STRING=sqlite:///DataBase.db
  REDIS_STORAGE=redis://localhost:6379
  PROVIDER_TOKEN=provider_token

🤝 Вклад и обратная связь

Мы приветствуем вклад сообщества! Если вы нашли баг, предложите улучшение или создайте Pull Request.

Пётр Андреев - ментор проекта

  • Telegram: @pyotr_job

Никита Залата - разработчик основного бота

  • Telegram: @StOpaq

Григорий Никитенко - разработчик маркетингового бота и инструментов для парсинга

  • Telegram: @gtbtop

About

P2P-платформа, упрощающая международные перевозки и покупки за границей. Пользователи могут взаимодействовать напрямую, экономя на доставке и делая зарубежный шопинг доступнее и выгоднее.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6