Техническое задание на разработку мобильного приложения для сервиса такси
Общая информация
Мобильное приложение предназначено для организации сервиса такси с тремя ролями пользователей: пассажир, водитель и модератор. Приложение не интегрируется с картами, а использует справочник городов, управляемый модератором через административную панель.
Технологические требования
1. Бэкенд: Django или Spring Boot.(Или что предложите(Никакого Фейрбейса))
2. База данных: MySQL или PostgreSQL.(Или что предложите)
3. Хранилище фотографий: Яндекс Облако или MinIO.(Или что предложите)
4. Сервис SMS-верификации: smsc.kz.(Или что предложите)
Функциональные роли
1. Пассажир
Функционал:
• Регистрация:
o Пассажир регистрируется, вводя номер телефона.
o Получает SMS-код через sms для подтверждения номера телефона.
o Может нажав на кнопку “Стать водителем” переходить на регистрацию для водителей
• Профиль:
o Возможность загрузить аватарку (сохранение фото в Яндекс Облаке или MinIO).
• Создание заказа:
o Выбирает город отправления (город А) и город назначения (город Б) из справочника, добавленного модератором.
o Пишет свои пожелания
o Создает заказ и ожидает звонка от водителя.
2. Водитель
Функционал:
• Регистрация:
o Водитель регистрируется, вводя номер телефона.
o Получает SMS-код для подтверждения номера телефона.
o Загрузка документов: фотографий удостоверения личности, водительского удостоверения, техпаспорта и автомобиля.
o Все загруженные документы отправляются на модерацию.
o Уже отмодерированный водитель может нажав на кнопку “Стать пассажиром” переходить на регистрацию для пассажиров, но регистрацию не проходит, так как уже имеем регистрационные данные.
• Просмотр заказов:
o После одобрения модератором водитель получает доступ к списку заказов.
o Возможность сортировки заказов по:
Пункту отправления (город А).
Пункту назначения (город Б).
Оба пункта.
Без фильтров.
o Возможность позвонить пассажиру, нажав на заказ.
3. Модератор
Функционал:
• Модерация водителей:
o Просмотр загруженных фотографий документов водителей.
o Одобрение или отклонение регистрации водителей.
• Управление справочником городов:
o Добавление новых городов.
o Удаление существующих городов.
Административная панель
• Реализована как веб-интерфейс для модератора.
• Функции:
o Управление пользователями (водители, пассажиры)(сделать не активным).
o Управление городами (CRUD операции).
o Просмотр статистики использования приложения (по желанию сами посмотрите).
Архитектура приложения
1. Бэкенд:
o Разработка REST API для взаимодействия с мобильными клиентами.
o Обработка загрузки файлов с использованием хранилища (Яндекс или MinIO).
o Работа с базой данных (MySQL/PostgreSQL) для хранения пользователей, заказов, городов и другой информации.
2. Мобильное приложение:
o Если и для iOS и для Android то можно Flutter, а если только Android то Kotlin.
o Использование фреймворка для кроссплатформенной разработки (например, Flutter или React Native).
3. Хранилище файлов:
o Загруженные фотографии документов и аватарок сохраняются в Яндекс Облако или MinIO.(Или что предложите(Никакого Фейрбейса))
Безопасность
1. Авторизация и аутентификация:
o Реализовать токенизацию с использованием JWT.
o SMS-верификация для регистрации и восстановления доступа.
2. Хранение данных:
o Шифрование чувствительных данных (например, токенов и паролей).
o Минимизация доступа к файлам с документами через ограничение прямых URL.
Этапы разработки
1. Анализ требований.
2. Проектирование архитектуры приложения.
3. Реализация бэкенда.
4. Разработка мобильного клиента.
5. Создание административной панели.
6. Тестирование (модульное, интеграционное, пользовательское).
7. Развертывание и публикация приложения.
Разделы:
Опубликован:
23.11.2024 | 10:16 [поднят: 23.11.2024 | 10:16]