https://github.com/express42/gilmore
https://github.com/express42/gilmore
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/express42/gilmore
- Owner: express42
- Created: 2017-08-04T07:28:33.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2018-05-15T12:49:49.000Z (about 8 years ago)
- Last Synced: 2025-01-18T14:46:43.053Z (over 1 year ago)
- Language: HTML
- Size: 81.1 KB
- Stars: 0
- Watchers: 22
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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 победитель