Автоматическое составление тестового задания

preview_player
Показать описание
Как быстро и легко составить тестовое задание для проверки кандидата?

1. Указываем ссылку на резюме
2. Скачиваем тестовое задание.

Позиция middle java разработчик.
Требования:
- Java 11+ от 3 лет
- Spring Boot
- Spring Security
- Apache Kafka
- PostgreSQL
- LiquiBase
- Git

Пример тестового задания:
## Практическое задание для live-coding

### Описание

Вам необходимо создать Spring Boot приложение, которое выполняет следующие задачи:

1. Развертывает REST API для управления информацией о пользователях.
2. Реализует аутентификацию и авторизацию с использованием Spring Security и JWT токенов.
3. Включает интеграцию с Apache Kafka для асинхронной обработки событий.
4. Использует PostgreSQL базу данных и LiquiBase для управления миграциями схемы.

### Требования

- Java 11+
- Spring Boot
- Spring Security
- Apache Kafka
- PostgreSQL
- LiquiBase
- Git

### Задачи

1. **Настройка проекта:**
- Создайте новый Spring Boot проект с необходимыми зависимостями (Spring Web, Spring Security, Spring Data JPA, PostgreSQL Driver, Kafka) используя Maven или Gradle.
- Настройте подключение к PostgreSQL базе данных.
- Настройте Kafka Producer и Consumer.

2. **Модели и Репозитории:**
- Создайте сущность `User` с полями `id`, `username`, `password`, и `email`.
- Создайте репозиторий `UserRepository` для доступа к данным пользователей с использованием Spring Data JPA.

3. **Аутентификация и Авторизация:**
- Реализуйте регистрацию пользователя с сохранением зашифрованного пароля.
- Настройте Spring Security для использования JWT токенов для аутентификации.
- Создайте эндпоинты для регистрации, логина и получения информации о текущем пользователе.

4. **Kafka Интеграция:**
- Настройте Kafka Producer для отправки сообщений при успешной регистрации пользователя.
- Настройте Kafka Consumer для прослушивания сообщений и логирования их содержимого.

5. **LiquiBase:**
- Создайте LiquiBase скрипты для инициализации схемы базы данных.

### Ожидаемые Результаты

- **Репозиторий кода**: Разместите код в Git репозитории и предоставьте ссылки для клонирования.
- **Запуск проекта**: Проект должен успешно компилироваться и запускаться с использованием стандартных команд Maven/Gradle.
- **Функциональные эндпоинты**:
- Регистрация пользователя (`POST /register`)
- Логин (`POST /login`)
- Получение информации о текущем пользователе (`GET /user`)

### Проверка и Оценка

- **Код читаемость**: Структура кода, использование соглашений о кодировании.
- **Функциональность**: Корректность работы API, системы аутентификации и Kafka интеграции.
- **Оптимизация и производительность**: Эффективное использование ресурсов, минимизация времени ответа.
- **Тестирование**: Наличие и качество unit и интеграционных тестов.

Удачи!
Рекомендации по теме