Skip to content

Фаза 6 – Финальные проекты (постоянно)

Проект 1: Полный CRUD с аутентификацией

  • Цель: Создание надежного RESTful API с безопасной аутентификацией и тестированием.
  • Технологии: Spring Boot, Spring Data JPA (PostgreSQL), Spring Security (JWT), JUnit 5, Testcontainers.
  • Функции: CRUD для сущностей (например, задачи, пользователи), аутентификация с ролями (ADMIN, USER), документация с Swagger.
  • Опционально: Добавление интерфейса Thymeleaf для просмотра/управления задачами.
  • Пример: API для управления проектами (сущности: Project, Task, User) с защищенными эндпоинтами.

Проект 2: Загрузка файлов

  • Цель: Добавление функциональности загрузки файлов в API из Проекта 1.
  • Технологии: Spring Boot (MultipartFile), Amazon S3 или локальное хранилище, валидация файлов.
  • Функции: Загрузка изображений/документов, связанных с задачами, проверка типа/размера.
  • Пример: Возможность загрузки вложений (например, PDF, PNG) для задач в API.

Проект 3: Развертывание в облаке

  • Цель: Развертывание API на облачной платформе с CI/CD.
  • Технологии: Railway, Heroku или AWS (Elastic Beanstalk), GitHub Actions, Docker.
  • Функции: Упаковка в JAR/Docker, настройка переменных окружения, автоматизация развертывания.
  • Опционально: Реализация кэширования с Redis для оптимизации частых запросов.
  • Пример: Развертывание API проекта на Railway с PostgreSQL и CI/CD.

Проект 4: Микросервисы

  • Цель: Разделение API из Проекта 1 на оркестрированные микросервисы.
  • Технологии: Spring Cloud (Eureka, Gateway), Docker Compose, REST для взаимодействия.
  • Функции: Микросервисы для Tasks и Users с обнаружением сервисов.
  • Опционально: Использование RabbitMQ для асинхронного взаимодействия между микросервисами.
  • Пример: Разделение логики задач и пользователей на два сервиса, оркестрированных с Docker.

Проект 5: Интеграция с внешним API

  • Цель: Использование внешнего API для расширения функциональности.
  • Технологии: Spring RestTemplate или WebClient, аутентификация API (например, OAuth2).
  • Функции: Интеграция с публичным API (например, отправка уведомлений по email через SendGrid).
  • Опционально: Добавление GraphQL-запроса для получения задач/пользователей и хранения метаданных в MongoDB.
  • Пример: Добавление email-уведомлений о завершении задач.

Лучшие практики портфолио

  • Git: Коммиты для каждой функции (например, feature/crud, feature/upload), четкие ветки.
  • Документация: README с описанием, настройкой, эндпоинтами, развертыванием и скриншотами.
  • Публикация: Размещение на GitHub с открытой лицензией (например, MIT).

Ресурсы