❄️ Статус проекта: ЗАМОРОЖЕН
На данный момент проект официально заморожен. Разработка новых бизнес-фич приостановлена. Однако кодовая база полностью стабильна, отрефакторена.
AllWays — это веб-приложение (Vue.js + Django REST Framework), спроектированное для построения сложных мультимодальных маршрутов. С точки зрения Python Backend-разработки проект представляет собой надежный REST API, обеспечивающий строгую валидацию данных, безопасную аутентификацию для SPA-клиента и грамотное управление реляционными связями (пользователи, маршруты, сегменты поездок).
В проекте применены современные паттерны проектирования и строгие стандарты разработки:
- Архитектура API (DRF): Использование Class-Based Views (APIView). Логика строго разделена: контроллеры отвечают за прием/ответ, а валидация и бизнес-правила изолированы в Serializers.
- Безопасность SPA: Интеграция Vue.js и Django реализована через надежную Session Authentication с защитой от CSRF. Пароли защищены на уровне API.
- Проектирование БД: Контроль целостности данных на уровне базы через UniqueConstraint (например, уникальность сегментов маршрута). Автоматические timestamps (
created_at/updated_at) и предсказуемая сортировка. - Инфраструктура: Управление конфигурациями через
django-environ(.env). Четкое разделение сред: SQLite для локальной разработки, MySQL для Production. - Developer Experience: Соблюдение PEP 8. Реализована кастомная management-команда
seed_dbдля мгновенного развертывания тестовой базы.
Backend:
- Python 3.12+
- Django 5.2.5
- Django REST Framework (DRF)
- django-environ
Frontend:
- Node.js
- Vue.js 3
- Vue Router
- Vite
- Axios
Базы данных:
- SQLite — Development
- MySQL — Production
git clone https://github.com/VoltusV5/AllWays.git
cd AllWaysСкопируйте конфигурацию окружения и заполните её (оставьте IS_PRODUCTION=False для SQLite):
cp .env.example .envПерейдите в папку бекенда и настройте виртуальное окружение:
cd backend
# Windows
python -m venv venv
venv\Scripts\activate
# Linux / macOS
python3 -m venv venv
source venv/bin/activateУстановите зависимости, подготовьте БД и запустите сервер:
pip install -r requirements.txt
python manage.py migrate
# Скрипт создаст тестовых пользователей
python manage.py seed_db
python manage.py runserverBackend будет доступен по адресу: http://127.0.0.1:8000/
Откройте новый терминал и перейдите в папку фронтенда:
cd frontend
npm install
npm run devFrontend будет доступен по адресу: http://localhost:5173/
- Создана архитектурная структура проекта
- Личный кабинет (безопасная регистрация и вход)
- Поиск маршрута между двумя точками
- Мультимодальные маршруты
- Отображение карты и списка сегментов
- Фильтры по видам транспорта
- Автоматическая покупка билетов
- AI-персонализация
- Интеграция с внешними операторами и платёжными системами
- Международная локализация и white-label
Бизнес-функционал:
- Покупка всех билетов для сложных маршрутов единой транзакцией.
- Персонализация предложений с помощью машинного обучения.
- Учет погодных условий и массовых мероприятий в городе для динамической оптимизации маршрутов.
Backend и Инфраструктура:
- Подключение Celery + Redis для асинхронного фонового парсинга билетов и расписаний из внешних API.
- Внедрение продвинутого кэширования для ускорения отдачи популярных поисковых запросов.
- Упаковка проекта в Docker (docker-compose) для абсолютной независимости от среды развертывания.
- Настройка CI/CD пайплайнов (GitHub Actions) с автоматическим запуском линтеров (flake8, mypy) и юнит-тестов (pytest).
