Всем привет, ищу бэкэнд разработчика на разовую задачу Python (FastAPI) и доработка frontend (React + Vite). Проект уже частично реализован (frontend запущен), нужно доделать и интегрировать, тз ниже

Разработка backend-части на Python (FastAPI) для frontend-приложения (dashboard vpn), а также небольшая доработка frontend'а (React, Vite).

Backend (Python + FastAPI)

Технологии: FastAPI, SQLAlchemy (async), MySQL (aiomysql), OAuth через Telegram Mini App

Задачи:

1. Аутентификация

- Принимать initData от Telegram WebApp

- Проверять user_id по whitelisted списку (из БД)

- Возвращать JWT или просто user-info (опционально)

2. API-эндпоинты

- GET /bots: вернуть список ботов, доступных пользователю по user_id

- GET /dashboard/{bot_id}: вернуть метрики по выбранному боту (доход, приход, команды и т.д.)

- Убрать из ответа ненужные графики (обсуждается во фронте)

- GET /metrics/{bot_id}/summary: сводка по дням / периодам (опционально)

- (опционально) POST /logs: логировать действия пользователя в системе

3. Модель данных

- Таблицы: users, bots, stats, payments, metrics, admins (по текущей схеме)

- Связи: admin.user_id ↔ bot.owner_id, stats.bot_id, payments.bot_id и т.п.

Frontend (React + Vite)

Задачи:

1. Добавить выбор бота

Компонент "Dropdown" или "List", в шапке или в левой панели

По выбору — загрузка новой аналитики через bot_id

2. Удалить ненужные графики

Удалить (или скрыть) ненужные карточки/чарты, по согласованию (например: "Команды", "Юзерчарт" и т.п.)

3. Интеграция с новым API

Получать список ботов и данные по выбранному боту

Авторизация через Telegram initData

Ожидаемый результат:

Готовый API с документацией Swagger

Отрефакторенный frontend с выбором бота и обновляемыми графиками

Авторизация Telegram WebApp

Данные подтягиваются из MySQL

Примечания:

Код пишем чисто, соблюдая PEP8 / ESLint

Этапы тестируются отдельно (frontend/backend)

Возможность масштабирования под новых админов/ботов

6 часов назад
Егор
8 часов в сервисе
Был
3 часа назад

Заявки фрилансеров

Никита
 
19 лет
2 года в сервисе
Был
3 часа назад
1 отзыв(-1)
3 часа назад
Ефим
 
37 лет
10 лет в сервисе
Был
12 минут назад
4 отзыва
6 часов назад
Назар
 
33 года
3 года в сервисе
Был
час назад
4 отзыва(-1)
8 часов назад
Павел
 
27 лет
25 дней в сервисе
Был
час назад
1 отзыв
8 часов назад