Разработка Back-end API + Telegram bot для приложения автосервиса Tesla
Ищем Python-мастера, который умеет делать API, Telegram-ботов, и не против немножко фронт-энда для админки :)
Требуется создать back-end API приложение (возможно, FastAPI) для мобильного приложения автосервиса.
Вход в приложение будет через OpenID Connect, поэтому если вы делали кнопку "Войти через Google" — этот опыт очень пригодится! Если не сталкивались с OAuth — не страшно, разберёмся)
Через приложение можно будет оформить заявку в сервис, загрузить фото неисправности, переписываться с автосервисом, следить за ходом работа (текстовый статус). Для всего этого нужно API.
Есть чат с сервисом. Уведомления для чата должны быть реализованы через WebSocket: чтобы переписка была интерактивная.
Сам автосервис будет принимать заявки через Telegram-бота (например, aiogram, или на ваш выбор): будет создан Telegram форум, где на каждую машину создаётся ветка-тема. Мастер сервиса будет писать клиенту в этой ветке, сообщения будут пересылаться пользователю в мобильное приложение (сохранение в БД + websocket + PUSH-уведомление). Сообщения от пользователя пересылаются в Telegram-бот.
Некоторые расширенные функции бота должны быть реализованы как HTML форма в Web App: например, список задач по машине, обновление статуса работ (подготовка / в процессе / готово) + текст, отправка клиенту предложения "выберите дату когда приехать в сервис (из доступных)".
WebApp нужно сделать на чём-нибудь лайтовом: Vue, React, или что предложите.
Свои данные приложение конечно же должно хранить в БД: возможно, PostgreSQL, или что посчитаете нужным. Может пригодиться Redis для realtime-уведомлений в websocket.
Сопутствующие технологии: конечно же git, Docker, умение развернуть Docker image на сервере :)
Когда API приложения начнёт вырисовываться — к проекту подключится мобильный разработчик, который будет работать с вашим API по прототипу. Если вы вдруг умеете Flutter или React Native — вообще роскошно, предлагайте! :)
---
Теперь детальнее, по скриншотам:
1. Пользователь входит в приложение через авторизацию Tesla. Это OAuth: нужно будет получить токен через API Tesla. Сделать в нашем API доступ через этот самый токен.
2. Из API Tesla нужно загрузить список автомобилей пользователя. Сделать API который отдаст мобильному приложению список этих автомобилей.
3. Сделать API для добавления машины вручную, редактирования, удаления. Ключевое поле — VIN. Может, госномер.
4. Сделать API для создания обращения в сервис. Обращение — это набор жалоб текст+картинки.
5. Сделать API для листинга этих жалоб. API для загрузки фото из жалобы.
6. Сделать API для чата: загрузка сообщений, загрузка фото, отправка сообщений и фото
7. Сделать API для интерактивных блоков в чате: "подтвердите выполнение работ (описание + цена)", "где и когда забрать вашу машину?", "запись в сервис на дату/время", "когда и куда вернуть машину?", "когда хотите приехать забрать машину?"
8. Реализовать логику работы с задачами: предложить услугу клиенту, добавление услуги в список "услуги", обновление статуса услуги (новая, подготовка, в процессе, готово), текстовые комментарии по услуге от автосервиса. Уведомлять клиента когда статус задачи изменился.
9. Сделать API для профиля: get/update. Поля: ФИО, email, telegram.
Для телеграм-бота реализовать:
* Логику создания темы в форуме при регистрации заявки по машине клиента
* Логику переписки через телеграм-бота с клиентом. Отправка и получение фото.
* Telegram Web-App для работы с заявками и задачами.
Прототип приложения, тот же что и на скриншотах, можно посмотреть здесь: https://www.figma.com/proto/7hFYuCqCj95IsWGIdvkAo8/Tes.Lab-Service-App