Nikbet is the best bookmaker. You can place bets with the best odds.
Данный проект представляет собой веб-приложение, написанное с использованием Java Servlet API.
Авторизация в приложении реализована с помощью фильтров.
Приложение запускается в контейнере сервлетов, таком как Tomcat.
Данные хранятся в базе данных Postgres. В базе содержатся не менее 2 таблиц и не менее одной связи 1-N.
Взаимодействие с базой данных происходит с использованием JDBC. Использование JDBC Template и ORM запрещено.
Рендеринг страниц происходит с использованием JSP. Во фронтенде практикуется, но не оценивается.
Приложение позволяет выполнять операции CRUD над данными и осуществлять поиск записей по тексту.
Все значимые функции приложения покрыты тестами при помощи Mockito.
Скрипты для создания базы данных приложены к проекту.
Решение соответствует принципам OOP, SOLID, KISS, DRY.
Для входа пользователь должен ввести свой логин и пароль. Если пользователь ввел неправильный пароль, или введенного логина нет в базе данных, пользователю об этом сообщат.
Если у пользователя нет аккаунта, то он может зарегистрироваться на сайте. Будет проводиться валидация всех полей и проверка отсутствия уникальных значений в базе данных.
Пользователь может просмотреть информацию о себе и изменить ее. Он может просматривать текущие и запланированные матчи и делать на них ставки, а также просматривать прошедшие. Также пользователь может просматривать историю своих ставок. Ставить на каждый матч можно на исход игры: победит домашняя команда, будет ничья, победит гостевая команда. При составлении ставки у пользователя спишется сумма, которую он введет, если у него будет допустимый баланс. Как только ставка станет завершенной, у пользователя может увеличиться его баланс, если он угадал. Также пользователь может искать конкретный матч по команде-участнице, указать конкретно домашнюю и/или гостевую команду и тип матча: прошел/идет/будет.
Администратор может просматривать пользователей и удалять их. Также он может добавлять новые матчи, изменять текущие (счет и тайм) и завершать текущие. По завершению игры будут рассчитаны все ставки по данному матчу. Администратор также может искать матчи по домашним и гостевым командам.
