Разработать и настроить backend часть сервера для обеспечения функциональности фронтенд-приложения, созданного на React, TypeScript и Next.js. Backend должен предоставлять API для взаимодействия с фронтендом, обрабатывать запросы, управлять данными и обеспечивать безопасность.
Технологический стек:
Frontend: React, TypeScript, Next.js
Бекенд:
1. Основной стек
Java 17+ (LTS-версия, рекомендуется 17 или 21)
Spring Boot 3.x (актуальная версия)
Spring MVC (REST API)
Spring Data JPA
Spring Security
Spring Cache
Spring Actuator
2. PostgreSQL в виде БД
3. Дополнительно
REST (основа)
GraphQL
WebSocket / SSE
Docker (+ Docker Compose)
CI/CD: GitHub Actions, GitLab CI, Jenkins
JSON
CORS: Настройка в Spring Boot для взаимодействия с Next.js
API-клиенты: Axios (на фронте), Retrofit / WebClient
Swagger / OpenAPI
2. Требования к backend
2.1. Общие требования
Создание надежного, масштабируемого и безопасного сервера.
Поддержка CORS для корректного взаимодействия с фронтендом.
Логирование запросов и ошибок
Настройка окружений с использованием переменных окружения (.env).
Документация API (например, с использованием Swagger/OpenAPI).
Обработка ошибок и отправка соответствующих HTTP-статусов (400, 401, 403, 404, 500 и т.д.).
2.2. Структура проекта
Модульная архитектура (разделение на controllers, services, models, routes).
Использование TypeScript для строгой типизации (если применимо).
2.3. API
Настроить серверную часть и взаимодействие со следующими API:
Определение города пользователя (ymaps/locator)
Получение данных курса валют с функцией конвертации
Подключение YMap с возможностью кастомизации и установки маркеров
Также, настроить API для отправки сообщений из контактной формы на почту.
2.4. Безопасность
Настройка HTTPS.
Использование Helmet для защиты HTTP-заголовков.
Ограничение скорости запросов (rate-limiting) с помощью express-rate-limit.
Валидация и санитизация входных данных.
Защита от XSS, CSRF и других уязвимостей.
Хранение секретов (API-ключи, пароли базы данных) в переменных окружения.
2.5. Тестирование
Настройка unit-тестов для API (Jest, Mocha или Supertest).
Тестирование основных эндпоинтов.
2.6. Мониторинг и логирование
Настройка логирования.
Мониторинг производительности и ошибок.
Настройка уведомлений об ошибках.
4. Доставляемые результаты
Исходный код backend-приложения (репозиторий на GitHub/GitLab).
Документация API (Swagger/OpenAPI).
Инструкция по запуску и деплою.
Набор тестов (unit и/или интеграционные).
Настроенный сервер в продакшен-окружении (если требуется).
5. Дополнительные пожелания
Использование лучших практик (чистый код, DRY, SOLID).
Возможность масштабирования (например, поддержка кластеризации или микросервисной архитектуры в будущем).
Оптимизация производительности (кеширование с Redis, если требуется).
Разделы:
Опубликован:
08.07.2025 | 11:07 [поднят: 08.07.2025 | 11:07]
Заказ находится в архиве