Тестовое задание 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}