Enterprise

SPA for Betting Managing System by Martingale

I prototyped, designed and developed a realtime application for sport forecasts and betting managing by Martingale's System with feed, stats, chat, notifications, etc.
SPA for Betting Managing System by Martingale

Tools are being used in this project

LARAVEL

Использовался для создания RestAPI в качестве бэкэнда

REACT+REDUX

Приложение выполнено в виде SPA

NodeJS

Использовался для реалтайм уведомлений и другой информации через сокеты

WebSockets

Использовалось через SocketIO

Bootstrap

Верстка на основе Bootstrap

Gallery

Few words about the project

Довольно типичное веб-приложение, которое содержит в себе классический стек.

Согласно ТЗ, группа пользователей имеет до 8 аккаунтов в букмекерских конторах. С этих аккаунтов делаются ставки. Ставки группируются в серии. При этом необходимо следить, чтобы в одной серии не попадались ставки с одного аккаунта. Кроме этого, коэффициент и сумма ставки каждого последующего матча рассчитываются по заданным показателям доходности.

Запутанно? На деле так же. Суть и задача приложения в том, чтобы сделать процесс простым и полностью контролируемым. В итоге работы приложения пользователю остается минимум умственных усилий и все сводится к механической работе и выполнении рекомендаций приложения.

Пользователи находятся удаленно, поэтому для контроля ситуации критически важно иметь реалтайм. Он реализован через NodeJS и SocketIO. Если Node-сервер по какой-то причине лег, то приложение продолжит работать в штатном режиме, но без реалтайма.

Приложение может показаться примитивным, но выстроена аккуратная структура и рабочий процесс, который потребовал усилий. Например, вот так выглядит подключение пользователя к новой букмекерской конторе и пополнение баланса:

Подключение новой БК и пополнение баланса

При этом все действия всех пользователей логируются в ленту слева, которую видят все пользователи. А вот так выглядит обыкновенный рабочий процесс:

Рабочий процесс пользователя

Все поля ввода данных валидируются и не позволят пользователю накосячить. Например, кнопка завершения матча имеет "предохранитель" и открывается после дополнительного клика:

"Предохранитель" для завершения матча

Ну и упрощающая жизнь пользователя функция - калькулятор нового события. Кроме валидации и помощи он выполняет роль сирены: если пользователь проигнорирует предупреждения, то уведомления получат остальные пользователи:

Вспомогательный калькулятор