Code Monkey home page Code Monkey logo

mahjong-portal's Introduction

The project is working with Python 3.6+ only.

It is web-application to accumulate, calculate and display russian riichi-mahjong tournaments and ratings.

Local

Project set up

You need to have installed docker and docker compose.

Steps to run the project:

  1. make build-docker
  2. make initial-data (run this command only once, for the initial project setup)
  3. make up

After these steps you will be able to access website here: http://0.0.0.0:8060/

Production

Docker set up

You need to have installed docker and docker compose.

Copy .envs/.production.env.example file and fill it with real data, but don't forget to keep it in secret (at least don't add it to version control system). Assign these env variables to the container with any way that is suits you (there are different options how to do it), and after that you can simply run make build and make up commands. By default in production.yml we are using .envs/.production.env file.

For static files serving and SSL configuration you need to set up the server upfront of this docker image.

If needed, restore the database backup for the new installation.

DB Backups

On your host machine you can set up these cron commands to make backups:

# every 6 hours
0 */6 * * * cd /root/portal/ && make db-backup backup_type=hourly && /root/upload_files.sh
# once a week
0 0 * * 0 cd /root/portal/ && make db-backup backup_type=weekly && /root/upload_files.sh
# once a month
0 0 2 * * cd /root/portal/ && make db-backup backup_type=monthly && /root/upload_files.sh

mahjong-portal's People

Contributors

bogachev-pa avatar eigato avatar nihisil avatar samhaina avatar unstatik avatar xelia avatar yumetsuki11 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

mahjong-portal's Issues

Tenhou. Добавить графики на страницу игрока

Сейчас у нас есть вся нужная информация, было бы неплохо её визуализировать.

  1. График изменений дана игрока (за всё время)
  2. График изменений pt игрока (на текущем дане)

Добавить docker для локальной разработки

Это позволит легко включать в рабочий процесс новых разработчиков.

  1. Необходимо использовать docker-compose, с отдельным сервисом для postgresql (в один докер файл всё пихать не надо)
  2. Нужно добавить начальные миграции с фейковыми данными, чтоб сразу можно было начинать работать без восстановления продакшен бэкапа

Добавить на портал клубную статистику

Может включать следующие пункты:

  • Число уникальных игроков, посещавших встречи клуба.
  • Суммарное число ханчанов, сыгранных в клубе.
  • Среднее число ханчанов, сыгранное игроком клуба.

Все то же самое можно повторить для текущего года.
Кроме того, можно сделать страницу с объединенной статистикой по всем клубам России, и отследить ее изменение по годам.

А также можно добавить более сложную статистику (актуально только для статистики за последний год):

  • Средний дан (на tehnou.net) игрока клуба (с 10+ играми).
  • Средняя позиция в RR игрока клуба.
  • Средняя сила стола клуба (рассчитывается так же по данам или по среднему рейтингу).

Страница с агрегированными результатами всех игроков

Добавить страницу где будет таблица со следующими столбцами:

  • Место в RR
  • Место в EMA
  • Место в CRR
  • Место в онлайн рейтинге
  • Дан на тенхе
  • Среднее место в клубных играх

По каждому столбцу должна быть возможность отсортировать (asc and desc).

В этой таблице показывать только игроков из России для начала (может из СНГ?).

Club details page

Display club information.

Also, on the tournament page display information about tournament organizer.

Возможность посмотреть страницу игрока на любую дату за последние два года

С недавними изменениями была добавлена возможность посмотреть рейтинг на предыдущие даты:
https://mahjong.click/ru/rating/riichi/rr/2018/8/1/

Если просматривается рейтинг с датой в урле, то во все ссылки на игроков необходимо добавить эту же дату, например: https://mahjong.click/ru/players/plyasunov-vladislav/2018/8/1/

  1. На странице игрока показывать рейтинги актуальные на эту дату
  2. Во все ссылки связанные с рейтингом с страницы игрока опять добавить дату в урлы, например: https://mahjong.click/ru/players/plyasunov-vladislav/rr/details/2018/8/1/

Добавить отображение изменений рейтинга

  1. На странице рейтинга показывать какие турниры были добавлены в рейтинг и какие турниры больше не учитываются (из-за их возраста). Для начала можно показывать последние 5 изменений и добавить отдельную страницу где будут показаны все изменения для рейтинга).

  2. На страницу рейтинга игрока добавить график с отображением изменений рейтинга этого игрока.

Проредить график рейтинга для мобильной версии

Сейчас график на телефонах выглядит очень плохо, поэтому он был скрыт.

Возможно в chart.js есть опции которые позволят сделать его более привлекательным без изменения данных.

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

Интегрировать оставшиеся клубные игры на портал

Интегрированые клубы:

  • Иркутск
  • Киров
  • Архангельск
  • Ханты-Мансийск
  • Екатеринбург
  • Питер
  • Уфа
  • Пермь
  • Агари (Москва)

Остальные клубы для которых есть данные игр (но не пантеон):

  • Тесудзи
  • Рыбалка (можно ли?)

Клубы которым еще надо найти источник статистики (бумажки?):

  • Иваново (100+ игр в ниичи)
  • Новороссийск (100+ игр в ниичи)
  • Самара (100+ игр в ниичи)
  • Симферополь (100+ игр в ниичи)

Улучшение поиска

Добавить возможность поиска по:

  • Городу
  • Турниру
  • Нику на тенхе и на мс
  • EMA номеру

Изменить алгоритм для отсечения худших турниров

Сейчас худшие турниры отсекаются по базову рангу.

Нужно это изменить на отсечение тех турниров, которые делают наихудший итоговый рейтинг.

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

Расширить секцию "Клубная статистика"

  • добавить средние/суммарные очки в табличку и сортировку по ним
  • добавить ссылку на клубный рейт (на пантеон или внешний)
  • добавить краткое описание, на что клуб играет
  • в идеале сделать доступным краткое описание для редактирования оргам

Визуализация ивентов из-за которых рейтинг был изменен

Сейчас мы детектируем когда был изменен рейтинг (

), но не сохраняем информацию про это.

Примеры ивентов: "Добавился турнир N", "Возраст для турнира N изменился с J на K".

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

  1. На странице рейтинга под спойлером показывать последние N (10?) изменений.
  2. На графике рейтинга игрока при наведении на точку показывать из-за чего был рейтинг изменен.

Обновиться до Django 2.0

Раньше библиотека django model translation не поддерживала вторую джангу, но сейчас они завезли поддержку так что можно обновиться.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.