user-game-api

command module
v0.0.0-...-222756a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2022 License: MIT Imports: 19 Imported by: 0

README

Тестовое задание Go-developer:

Создать api для работы с данными пользователей с использованием базы данных MongoDb. Требуемый функционал: Работа с пользователями:

  • создать таблицу users и заполнить её тестовыми данными (ссылка ниже)
  • разработать функционал запроса списка пользователей и информации о них (статистика по сыгранным играм (сколько всего сыграно игр) + базовые данные)
  • При выгрузке списка пользователей должна быть реализована постраничная навигация Работа с играми:
  • создать таблицу user_games и заполнить её тестовыми данными для каждого пользователя (тех что добавили в таблицу users с тестового набора), набор тестовых данных по играм можно взять по ссылке ниже на каждого пользователя выбирается из этого набора данных рандомное количество игр (минимум 5000 игр на пользователя).
  • также должна быть возможность получить статистику сгруппированную по номерам игр и дням
  • разработать функционал получения списка рейтинга пользователей (рейтинг считается по количеству сыгранных пользователем игр), api должно отдавать данные с постраничной навигацией. Смысл тестового задания в том, чтобы увидеть навыки кандидата по работе со структурами данных, оптимальном хранении данных и оптимизации запросов к БД. Результаты выполнения разместить на github. Само АПИ нужно задеплоить на Heroku.

Выполнено

Работа с пользователями:

  • создать таблицу users и заполнить её тестовыми данными (ссылка ниже)
  • разработать функционал запроса списка пользователей и информации о них (статистика по сыгранным играм (сколько всего сыграно игр) + базовые данные)
  • При выгрузке списка пользователей должна быть реализована постраничная навигация Работа с играми:
  • создать таблицу user_games и заполнить её тестовыми данными для каждого пользователя (тех что добавили в таблицу users с тестового набора), набор тестовых данных по играм можно взять по ссылке ниже на каждого пользователя выбирается из этого набора данных рандомное количество игр (минимум 5000 игр на пользователя). Уточнение: В класторе MongoDB ограничение на 500мб, потому я сгенерировал 30-40 игр для каждого пользователя.
  • также должна быть возможность получить статистику сгруппированную по номерам игр и дням
  • разработать функционал получения списка рейтинга пользователей (рейтинг считается по количеству сыгранных пользователем игр), api должно отдавать данные с постраничной навигацией.

Результаты выполнения разместить на github. Само АПИ нужно задеплоить на Heroku.

Описание

UserAPI

Получение списка пользователей (вся информация из таблицы) с ограничителем {field limit}- количество записей и {page number}- номер страницы: https://localhost/api/users?limit={field limit}&page={page number}

Получение даных о пользователе по id пользователя - {UUID} : https://localhost/api/user/{UUID}

Получение рейтинга пользователей (статистика по всем играм), вся информация про пользователя и значение рейтинга с ограничителем {field limit}- количество записей и {page number}- номер страницы: https://localhost/api/users-rating?limit={field limit}&page={page number}

GameAPI

Получение списка игр (вся информация из таблицы) с ограничителем {field limit}- количество записей и {page number}- номер страницы: https://localhost/api/games?limit={field limit}&page={page number}

Получение даных о пользователе по id игры - {ID}: https://localhost/api/user/{ID}

Получение статистики сгруппированную по номерам игр и дням. {UUID}- id игрока, c{start date} - стартовая дата группировки, по end date - последняя дата группировки: https://localhost/api/games-statistics?userId={UUID}&startDate={start date}&endDate={end date}

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL