https://disk.yandex.ru/d/hXJpWsfa4iUdiw
Идея заключалась в том, чтобы построить веб-приложение для геймификации, для этого задумывалось использовать разделение на классы животных, из начальных были:
- Коты (дающие пассивку пользователю в виде получения большего количества монет за задание)
- Собаки (позволяющие выполнять задания быстрее)
- Еноты (позволяют пользователю перехватить задание назначенное другому пользователю)
По задумке, в игре должны были присутствовать заводы корма, фермы, доступные для покупки игрокам, купив которые пользователь получает пассивный доход. Пользователь имеет право продавать или дарить свое имущество другим игрокам.
-
Коты:
- "Охота на Сокровища": Найти и собрать виртуальные монеты, которые случайно появляются в приложении.
- "Мурлыкающий Магнат": Инвестировать виртуальные монеты в "бизнес-проекты" внутри приложения для получения пассивного дохода.
-
Собаки:
- "Спасательная Миссия": Выполнить задание за ограниченное время, чтобы помочь другому пользователю или виртуальному персонажу.
- "Повелитель Стай": Организовать группу пользователей для выполнения командного задания.
-
Еноты:
- "Тайный Вор": Перехватить задание у другого пользователя, но с риском быть пойманным и потерять часть монет.
- "Собиратель Улик": Найти и собрать информацию о заданиях других пользователей, чтобы планировать перехват.
-
Задания созданные администраторами, связанные с выполенением чего-либо в реальной жизни
- Уровни и Опыт: Пользователи получают опыт за выполнение заданий, который повышает их уровень и открывает новые способности и задания.
- Достижения: За выполнение определенных заданий или достижение целей пользователи получают бейджи и награды.
- Магазин: Пользователи могут тратить заработанные монеты на улучшения, косметические предметы, специальные способности для своего класса животного или для покупки мерча компании.
Так случилось, что время выделенное на подготовку выпало на время, когда на моей работе необходимо выпускать релиз, за который отвественен я, поэтому из всего задуманного выше было выполнено только малая часть.
На момент предварительной сдачи проекта, 13.05, готово API со следующими возможностями:
- Регистрация/авторизация пользователей, администраторов (по дефолту создан админ с логином и паролем admin, admin, только с его помощью можно регистрировать других администраторов)
- Пользователь может получать список выданных ему задач или выданных задач для его группы (на текущий момент это группа для всех пользователей, то есть общие для всех задания)
- Пользователь может отказаться от выполнения задания
- Как только пользователь отметил задание как выполненное, оно отправляется на проверку администратору и он в свою очередь подтверждает выполнение задач
- Доступно получение топа пользователей по балансу
- Для администратора также доступно получение списка всех пользователей и получение всех выданных им задач
Для развертывания api необходим будет докер. Склонировав репозиторий, необходимо написать в консоль docker-compose up -d (если установлен таскфайл можно прописать "task dev"). После этого api будет доступно для использования. В папке examples лежат файл для постмана, который можно импортировать и получить коллекцию со всеми ручками и .http которые можно запускать из любой ide.