Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавить ачивки за первый PR, за количество строк кода, за 50 комитов и т.д. #184

Closed
acidmaksim opened this issue Jul 26, 2022 · 5 comments
Labels
enhancement New feature or request

Comments

@acidmaksim
Copy link
Contributor

acidmaksim commented Jul 26, 2022

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

  • За 1, 10, 30, 50, 100 принятые PR;
  • За 1000, 5000, 10000 и тд строк кода;
  • За 1, 10, 30, 50 и тд, выполненные Issues;
  • За 10, 50, 100 и тд комментариев;
  • И так далее
@acidmaksim
Copy link
Contributor Author

You can draw yourself a simple achieves or take some icons, it is important that they have an open license.

@mnogom
Copy link
Contributor

mnogom commented Aug 23, 2022

Возьму задачу

@mnogom
Copy link
Contributor

mnogom commented Aug 26, 2022

Коллеги, есть дилемма

Смысл в следующем. Я посмотрел, как устроены ачивки на codebattle. С Elixir я не знаком, но если я правильно понял, то там они рассчитываются при запросе исходя из статистики в момент запроса. То есть, по факту они не хранятся в БД. Поправьте, пожалуйста, если я ошибаюсь.

В нашей задаче вижу два варианта:

  1. Поступить так же: берём данные, которые у нас уже есть в context html-шаблона из вьюхи -> мапим с условиями (например, коммитов > 50) -> выводим если True
  • + Довольно просто реализовать, небольшое время на реализацию
  • - Невозможно собрать статистику (время получения, какое действие было тригером для получения и тп)
  • - Не знаю, как правильно сформулировать, но ачивки станут абстракцией шаблона, соответсвенно добавлять новые нужно будет через template / templatetags
  1. Усложнить. Добавить отдельную сущность Achievments, связать её с User как m2m, и добавлять в контекст
  • - Сложнее, дольше делать
  • + Можно обвязать статистикой

С вторым подходом, есть пара концептульных проблем:

  1. Нужен, видимо, планировщик, чтобы сгружать новые показатели, а это нагрузка на сервер.
  2. Придумать. как описывать тригеры для получения ачивок, чтобы можно было их менеджерить через админ-панель

По какому пути стоит пойти?

@acidmaksim
Copy link
Contributor Author

@zhabinka поможешь, пожалуйста?

@mnogom
Copy link
Contributor

mnogom commented Aug 31, 2022

Пока пошёл по первому пути

@mnogom mnogom mentioned this issue Sep 2, 2022
@acidmaksim acidmaksim added the enhancement New feature or request label Sep 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
Development

No branches or pull requests

2 participants