-
Notifications
You must be signed in to change notification settings - Fork 0
/
requirements.yml
134 lines (134 loc) · 17.3 KB
/
requirements.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
---
functional:
- Пользователь должен иметь возможность авторизоваться на сайте через электронную почту и пароль (авторизация).
- Пользователь должен иметь возможность зарегистрироваться на сайте (авторизация).
- При регистрации пользователя должна быть проверка уникальности никнейма (авторизация).
- Никнейм должен быть ограничен по количеству символов (авторизация).
- Электронная почта должна проверяться на корректность (авторизация).
- Пароль должен иметь ограничение по количеству символов (авторизация).
- Пароль должен соответствовать требованиям безопасности - минимум одна заглавная буква, минимум одна буква нижнего регистра, спецсимволы (авторизация).
- При создании пароля должно существовать второе поле - повторите пароль (авторизация).
- Пароли должны совпадать (авторизация).
- Пользователь должен иметь возможность посмотреть/скрыть пароль (авторизация).
- Зарегистрированный пользователь должен иметь возможность восстановить пароль (авторизация).
- Пользователь не может авторизоваться, если все поля не заполнены (авторизация).
- Пользователь не может зарегистрироваться, если все поля не заполнены (авторизация).
- У чата есть два канала - General и Notification (чат).
- Существующие каналы нельзя удалить или переименовать (чат).
- Пользователь должен иметь возможность отправлять сообщения в чат (чат).
- Другие пользователи могут видеть имя отправителя сообщения (чат).
- Пользователь может напрямую отвечать другому пользователю в чате (чат).
- Если сообщений в чате слишком много, то появляется полоса прокрутки (чат).
- При переключении в канал, отображаются последние сообщения в чате (чат).
- При клике на автора сообщения появляется всплывающее окошко с возможными взаимодействиями с пользователем (чат).
- Никнейм пользователя можно скопировать (чат).
- Есть кнопка "информация о пользователе" с переадресацией на его страницу (чат).
- Есть кнопка "подписаться" на пользователя (чат).
- Пользователю можно отправить личное сообщение (чат).
- Пользователь может видеть, кто из других пользователей сейчас онлайн (чат).
- При клике на пользователя появляется модальное окно с информацией о пользователе и возможностью отправить ему приглашение на игру (чат).
- Пользователю доступна страница "Users rating" (рейтинг пользователей).
- Пользователь может просматривать рейтинг игроков за неделю (рейтинг пользователей).
- Пользователь может просматривать рейтинг игроков за месяц (рейтинг пользователей).
- Пользователь может просматривать рейтинг игроков за все время (рейтинг пользователей).
- Рейтинг обновляется автоматически в соответствии с успехами пользователей (рейтинг пользователей).
- Можно настроить сортировку по месту, рейтингу, сыгранным играм, дате авторизации на сайте (рейтинг пользователей).
- Можно настроить фильтрацию отображения пользователей по их количеству на странице (рейтинг пользователей).
- Можно выбрать/скрыть отображение рейтинга сыгранных игр с ботами среди пользователей (рейтинг пользователей).
- На странице есть поисковая строка по никнейму пользователя (рейтинг пользователей).
- Пользователю доступна страница "Tasks" (задания).
- Пользователь может просматривать задания, созданные другими пользователями (задания).
- Пользователь может создавать свои задания (задания).
- Название задания должно быть уникальным (задания).
- Можно выбрать видимость задания "hidden/public" (задания).
- Можно выбрать уровень сложности (задания).
- Операция не выполнится, если не будут заполнены все поля (задания).
- Пользователь может создавать task pack (задания).
- При создании название должно быть уникальным (задания).
- Можно выбрать видимость "hidden/public" (задания).
- При создании можно вписать id заданий, которые нужно объединить (задания).
- Созданные task и task pack можно редактировать/удалить (задания).
- Операция не выполнится, если не будут заполнены все поля (задания).
- Пользователю доступна страница "Турниры/Tournaments" (турниры).
- Пользователь может видеть список турниров, которые проходят сейчас (турниры).
- Пользователь может присоединиться к турнирам, которые проходят сейчас (турниры).
- Пользователь может покинуть турнир в любой момент (турниры).
- Пользователь может видеть список завершенных турниров (турниры).
- У пользователя есть возможность создавать турниры (турниры).
- Пользователь может выбрать тип турнира - individual/team/swiss/arena/versus (турниры).
- Пользователь может добавить описание турнира (турниры).
- Пользователь может установить дату и время начала турнира (турниры).
- Пользователь может выбрать тип доступа к турниру - public/token (турниры).
- Пользователь может настроить task strategy - random_per_game/random_per_round/sequential (турниры).
- Пользователь может настроить score strategy - time_and_tests/win_loss/one_zero (турниры).
- Пользователь может настроить task provider - level/task_pack/task_pack_per_round/all (турниры).
- Пользователь может указать лимит по количеству пользователей для турнира (турниры).
- Есть возможность выбрать язык программирования для турнира (турниры).
- Есть возможность выбрать уровень сложности (турниры).
- Есть возможность указать match timeout в секундах (турниры).
- Есть возможность указать break duration в секундах (турниры).
- Есть возможность добавить Event в турнир (турниры).
- В чате турнира пользователь может отправлять сообщения в чат (турниры).
- В чате турнира пользователи могут видеть имя отправителя сообщения (турниры).
- В чате турнира пользователь может отвечать другому пользователю (турниры).
- Если сообщений в чате слишком много, то появляется полоса прокрутки (турниры).
- Пользователь может покинуть турнир самостоятельно в любой момент (турниры).
- Пользователь, создавший турнир, может его удалить (турниры).
- Турнир с типом доступа public доступен всем пользователям (турниры).
- Турнир с типом доступа token доступен пользователю, который его создал, и участникам данного турнира (турниры).
- На главной странице в правом верхнем углу пользователю доступен личный кабинет (ЛК).
- В личном кабинете корректно отображается фото пользователя (ЛК).
- Фото пользователя можно заменить (ЛК).
- В личном кабинете пользователю доступны настройки (ЛК).
- В настройках доступна опция смены никнейма (ЛК).
- В настройках пользователь может выбрать язык программирования как «Weapon» (ЛК).
- В настройках пользователь может выбрать "Clan" (ЛК).
- В настройках пользователь может выбрать "Sound type" (ЛК).
- В настройках пользователь может выбрать "Sound level" (ЛК).
- В настройках пользователь может добавить ссылки на свои аккаунты в GitHub и Discord (ЛК).
- Пользователь может выйти из аккаунта (ЛК).
- В личном кабинете отображается статистика пользователя и завершенные игры (ЛК).
- Пользователь может самостоятельно создать игру (игра).
- Пользователь может выбрать уровень игры (игра).
- Пользователь может выбрать тип игры - с другим пользователем /с другом / с ботом (игра).
- При выборе типа игры "With a friend" появляется поисковая строка для ввода никнейма (игра).
- Пользователь может выбрать игровую задачу по названию (игра).
- Пользователь может выбрать игровую задачу по тэгам (игра).
- Пользователь может установить временные рамки для игры (игра).
- Пользователь перенаправляется на страницу созданной игры с учетом указанных им параметров (игра).
- На странице созданной игры появляется модальное окно с гайдом - карта игровой страницы (игра).
- Пользователь может менять язык задачи с RU на EN и наоборот (игра).
- Во время игры можно выбрать язык программирования для решения задачи (игра).
- Во время игры пользователю доступен редактор кода для написания решения задачи (игра).
- Есть возможность выбора темы отображения редактора кода - Light/Dark (игра).
- Все строчки редактора кода пронумерованы (игра).
- Редактор кода принимает символы русского/английского языка и спецсимволы (игра).
- Во время игры пользователь может видеть редактор кода противника в режиме онлайн (игра).
- Во время игры можно сбросить изменения редактора кода к первоначальному виду (игра).
- Пользователь видет отсчет времени во время игры (игра).
- Пользователь может сдаться во время игры (игра).
- Пользователь может самостоятельно проверить свое решение (игра).
- Если решение задачи было неверным, игра выдает отчет об ошибке (игра).
- Победа присуждается пользователю, который первым правильно решил задачу (игра).
- За победу над другим пользователем начисляются очки (игра).
- Правильность решения задачи определяет приложение (игра).
- После победы/поражения в игре пользователю показывается победное модальное окно (игра).
- После поражения в игре, возможно сделать "Rematch" игры (игра).
- Игра завершается при победе/самостоятельной сдаче/победе противника/сдаче противника/завершении времени (игра).
- Функция "Rematch" игры запускает новую игру с настройками предыдущей, с тем же противником (игра).
- Игру "Game type" = "with other user" можно отменить до тех пор, пока к ней не присоединится другой пользователь (игра).
- Пользователю доступна отправка обратной связи в окно "Send feedback" (игра).
- Окно обратной связи разделено на 3 категории - "Bug"/"Improvement"/"Feature" (игра).
- Пользователь может отправлять приглашение на игру другому пользователю (игра).
- Пользователь может принимать приглашение на игру от другого пользователя (игра).
- Пользователь может отклонить приглашение на игру от другого пользователя (игра).
non-functional:
- Сайт должен быть безопасным и защищать данные пользователя.
- Сайт должен быть разработан с учетом удобства использования и оптимизирован для скорости работы.
- Сайт должен быть удобным на мобильном устройстве.
- Сайт должен быть протестирован на совместимость с последними версиями браузеров.
- Сайт должен быть способен обрабатывать большое количество трафика.
implicit:
- Пользователь может принимать участие одновременно только в одной игре.
- Нельзя создать турнир с прошедшей датой начала.
- Контент на сайте должен отображаться без орфографических/грамматических ошибок.