Железка

Backend-разработчик на Python

От 2 000 USD
  • Гродно
  • Полная занятость
  • Удаленная работа
  • От 3 до 6 лет
  • Django Framework
  • FastAPI
  • PostgreSQL
  • VueJS
  • Python
Обязанности:|

Разработка backend с нуля (Django + FastAPI + PostgreSQL + Stripe + WebSockets + AWS + Vue.js)

## 1. Подготовка и выбор технологий

✅ Определить стек технологий:

- Backend: Django + DRF (основное API), FastAPI (высоконагруженные части, WebSockets).

- База данных: PostgreSQL + Redis (кэширование).

- Платежи: Stripe (разовые платежи, подписки, webhooks).

- Авторизация: OAuth (Google, Facebook), JWT.

- Реальное время: Django Channels / FastAPI WebSockets.

- DevOps: Docker, Nginx, Gunicorn, AWS (EC2, S3, RDS, CloudWatch).

✅ Настроить окружение:

- Создать проект в Django + DRF.

- Настроить виртуальное окружение (venv или Poetry).

- Добавить базу данных PostgreSQL.

- Создать базовые API (авторизация, работа с пользователями).

---

## 2. Разработка базового API

Модели данных:

- Разработка моделей пользователей (User, Profile).

- Настройка аутентификации (OAuth, JWT, Django Allauth).

- Добавление Stripe-моделей (Customer, Subscription).

API эндпоинты:

- /auth/register/ – регистрация пользователей.

- /auth/login/ – вход (email/password + OAuth Google/Facebook).

- /auth/logout/ – выход.

- /users/me/ – профиль пользователя.

- /payments/checkout/ – создание платежа в Stripe.

- /payments/webhook/ – обработка webhook от Stripe.

Docker:

- Настроить docker-compose.yml (PostgreSQL + Redis + приложение).

- Проверить работу API через Postman.

---

## 3. Платежная система (Stripe API)

Интеграция Stripe:

- Подключение Stripe SDK.

- Создание одноразовых платежей.

- Добавление подписок.

- Обработка webhooks (успех/отмена/возврат платежей).

Тестирование через Stripe Dashboard.

---

## 4. Чат и уведомления (WebSockets, Django Channels, FastAPI)

Настройка WebSockets:

- Подключение Django Channels или FastAPI WebSockets.

- Разработка модели сообщений (Message, ChatRoom).

- Эндпоинты WebSockets:

- /ws/chat/{room_id}/ – отправка и получение сообщений.

- /ws/notifications/ – уведомления в реальном времени.

- Кэширование сообщений в Redis.

---

## 5. Оптимизация и масштабируемость

Оптимизация запросов:

- Индексация PostgreSQL (GIN, B-Tree).

- Использование select_related, prefetch_related для ORM.

- Кэширование популярных запросов в Redis.

Очереди задач:

- Подключение Celery + Redis для фоновых задач (например, отправка email).

---

## 6. DevOps: Автоматическое развертывание и мониторинг

Контейнеризация:

- Полный Dockerfile для backend-а.

- docker-compose.prod.yml для деплоя.

CI/CD:

- Автоматизация деплоя через GitHub Actions / GitLab CI/CD.

- Авторазвертывание на AWS EC2 + S3 (статические файлы).

Мониторинг и логирование:

- Подключение Prometheus + Grafana для мониторинга метрик.

- Логирование через ELK Stack (Elasticsearch, Logstash, Kibana).

---

## 7. Фронтенд (Vue.js / Nuxt.js) + Интеграция

Создание Vue-приложения:

- Auth: Вход через OAuth (Google, Facebook).

- Chat: WebSockets-интеграция.

- Payments: Checkout в Stripe.

Связывание backend и frontend через API.

---

## 8. Тестирование и финальная оптимизация

Тестирование backend:

- Покрытие API тестами (pytest, Django Test Framework).

- Нагрузочное тестирование (Locust, k6).

Финальное развертывание на production (AWS + Docker).

---

### ⏳ Оценка времени:

1-2 недели – подготовка, базовые API.

2-3 недели – платежи + авторизация OAuth.

2-3 недели – WebSockets (чат, уведомления).

2-3 недели – DevOps, мониторинг, CI/CD.

2-3 недели – фронтенд-интеграция и тестирование.

Итого: ~2-3 месяца на полный цикл разработки.