Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo.png

SmartDelivery 🍕

Веб-приложение системы управления доставкой еды (ノ◕ヮ◕)ノ*:・゚✧


FastAPI Go PostgreSQL Vue.js Vite Docker PlantUML MIT


📖 Описание

SmartDelivery - микросервисная платформа для автоматизации процессов приема, обработки и исполнения заказов на доставку еды из ресторанов. Система объединяет клиентов (через Telegram-бота) и операторов (через веб-панель).

Ключевые возможности

  • Многоканальный прием заказов: Telegram-бот для клиентов и веб-панель для операторов;
  • Синхронная архитектура: все сервисы общаются через REST API;
  • Интеграция с 1С: автовыгрузка закрытых заказов на учебный стенд 1С;
  • Статическая карта: отображение меток ресторана и клиента на OpenStreetMap;
  • Локализация: русский и английский языки в панели оператора.

🛠 Технологический стек

Backend

  • Python 3.12+ (сервисы: ресторанов, уведомлений, интеграции 1С, Telegram-бот);
  • Go 1.25+ (API Gateway, сервис заказов);
  • FastAPI - асинхронный веб-фреймворк для Python-сервисов;
  • SQLAlchemy 2.0 (async) + Alembic - ORM и миграции;
  • Pydantic - валидация данных и сериализация.

Коммуникация

  • REST / HTTP - протокол синхронного взаимодействия между сервисами.

Хранение

  • PostgreSQL - основная база данных (одна БД, разные схемы для сервисов).

Frontend

  • Vue 3 + Vuetify - панель оператора;
  • Vite - сборщик и dev-сервер;
  • Vue Router - маршрутизация;
  • Vuex 4 - управление состоянием;
  • Vue i18n - интернационализация (ru/en);
  • Axios - HTTP-клиент для связи с API Gateway.

Инфраструктура

  • Docker / docker-compose - контейнеризация всех сервисов;
  • GitHub - контроль версий.

Внешние интеграции

  • Telegram Bot API - клиентский канал;
  • Учебный стенд 1С (HTTP-сервис) - выгрузка закрытых заказов;
  • OpenStreetMap (Leaflet.js) - отображение статических карт.

🏗 Архитектура

Ознакомьтесь с актуальной диаграммой развертывания:

Диаграмма развертывания

MSA с синхронной коммуникацией через REST.

Сервис Язык Назначение Порт Протокол
gateway Go API Gateway, единая точка входа 8000 REST
order-service Go Управление заказами, статусная машина 8001 REST
restaurant-service Python CRUD ресторанов и меню 8002 REST
notification-service Python Отправка уведомлений в Telegram 8003 REST
integration-1c Python Выгрузка данных в учебный стенд 1С 8004 REST
telegram-bot Python Обработка диалога с клиентами - Telegram API
frontend Vue Веб-панель оператора (SPA) 8080 -

🚀 Быстрый старт

Предварительные требования

  • Docker Desktop
  • Git

Запуск

# клонируйте репо
git clone https://github.com/KontsertKishlaka/smart-delivery.git
cd smart-delivery

# запустите систему
docker-compose up -d

# проверьте статусы сервисов (опционально)
docker-compose ps

После запуска

Ресурс URL
API Gateway (Swagger для Python-сервисов) http://localhost:8000/docs
Панель оператора (Vue) http://localhost:8080
PostgreSQL http://localhost:5432

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

smart-delivery/
├── gateway/                # API Gateway (Go)
├── order-service/          # Сервис заказов (Go)
├── restaurant-service/     # Сервис ресторанов (FastAPI)
├── notification-service/   # Сервис уведомлений (FastAPI)
├── integration-1c/         # Интеграция с 1С (FastAPI)
├── telegram-bot/           # Telegram-бот (aiogram)
├── frontend/               # Панель оператора (Vue + Vite)
├── docker-compose.yml
└── README.md

🤝 Команда

Роль Имя
Владелец продукта, Тим-лид Владислав Бедин
Ведущий разработчик Кирилл Букарев

logo.png
Веб-приложение // SmartDelivery
Made with love by MindlessMuse666 x bukabtw

About

Веб-приложение для управления доставкой еды

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Contributors