A Spring Boot app with Java 17, Maven, H2 and JdbcTemplate.
Task: Функциональные требования:
- (DONE) Должна быть возможность "регистрации" (можно упростить процесс до простого сохранения логина в бд без указания/проверки пароля)
- (DONE) Должна быть возможность залогиниться под зарегистрированным пользователем (можно упростить процесс до простого ввода логина при входе), чтобы была возможность работы в системе нескольких пользователей.
- Должна быть возможность добавить вопросы и ответы на них.
- (DONE) Вопросы могут быть 2х типов: со свободным вводом ответа, с выбором ответа из 4х вариантов. Количество вопросов - 5 штук.
- (DONE) Должна быть возможность добавить от имени текущего пользователя ответ на вопрос с сохранением ответа в бд.
- (DONE) Система должна проверить введенный пользователем ответ на вопрос и сверить его с правильным ответов на этот вопрос. Результат проверки сохраняется в бд для конкретного пользователя.
- (DONE) Должна быть возможность пользователю посмотреть только свои ответы
- (DONE) (Опциональное требование) Должна быть возможность посмотреть статистику прохождения "тестирования". В статистике должно отображаться:
- (DONE) сколько всего пользователей зарегистрировано в системе
- (DONE) сколько пользователей прошли тестирование
- (DONE) сколько пользователей ответили на все вопросы тестирования
- (DONE) сколько пользователей ответили на все вопросы тестирования правильно.
- (DONE) (Опциональное требование) Должна быть возможность посмотреть статистику по текущему пользователю:
- (DONE) процент прохождения тестирования текущего пользователя (сколько правильных ответов он дал)
- сколько процентов людей справилось с тестированием хуже текущего пользователя
- сколько процентов людей справилось с тестированием лучше текущего пользователя. Не функциональные требования:
- (DONE) Код оформить на гитхабе и прислать ссылку на репозиторий.
- (DONE) В поставке должна быть понятная инструкция по запуску сервиса
- (DONE) (Опциональное требование) Поставка и запуск сервиса должны осуществляться средствами docker
- (DONE) Используемые технологии: Java 8+, Spring 5+, SpringBoot 2+, Maven 3+. REST архитектура.
- (DONE) Все сервисы в программе должны решать строго определённую задачу (см SOLID).
- (DONE) Все сервисы должны быть определены в конфигурации Spring и инжектится по месту использования.
- (DONE) База данных может быть inmemory.
- (DONE) Для работы с БД желательно использовать Spring JDBC template или Spring Data JDBC или просто JDBC. ( не надо использовать JPA и Hibernate ).
- (DONE, покрыто частично) (Опциональное требование) сервис, по возможности, покрыть Unit-тестами.
To run the app locally:
- Clone the repository git clone git@github.com:NicolaBilinats/test-proj-back.git
- To run local: mvn spring-boot:run
- To run with docker: docker-compose up -d
The app will be running on http://localhost:8080/