An open API service indexing awesome lists of open source software.

https://github.com/express42/gilmore


https://github.com/express42/gilmore

Last synced: over 1 year ago
JSON representation

Awesome Lists containing this project

README

          

### Что это ?

Приложение для розыгрыша бесплатного [курса](https://otus.ru/lessons/7/) на дне открытых дверей.

Модули приложения работают внутри контейнеров и запускаются с помощью docker-compose

### Использование
```
$ git clone https://github.com/express42/gilmore.git
$ cd gilmore
$ docker-compose up
```
* В браузере открыть страницу с адресом localhost:5000
* Выбрать файл в формате csv ("Выберите список")
* Нажать "Загрузить"
* Нажать "Разыграть"
* Ждать окончания таймера
* Порадоваться или огорчиться

### Технологии
* [Docker](https://www.docker.com/) - описание и создание образов с приложениями
* [Docker-compose](https://docs.docker.com/compose/) - описание и запуск всего проекта
* Docker контейнер с приложением
* Веб-приложение на языке Python (фреймворк [Flask](http://flask.pocoo.org/]), Jinja-шаблоны) - веб-сервер, шаблонизатор html, взаимодействие с mongodb
* Веб-страница - JavaScript, ajax, html, css
* Контейнер с базой данных mongodb - хранение списка участников

### Алгоритм
Выбор победителя выполняется по следующему алгоритму:
* Загружается список участников
* Выбирается случайный отрезок времени (внутри заданного промежутка)
* В ходе выбранного отрезка времени происходит перебор случайных чисел в пределах числа участников
* Скорость перебора выигрышного числа падает с течением времени в зависимости от всего времени работы алгоритмаы
* По истечении таймера выбирается 1 победитель