На начальной странице находится два блока.
Первый блок, находится слева, в него помещено имя пользователя (in future: аватарка, настройки профиля)
Второй блок, расположен в правой части страницы, в нем находятся все, созданные пользователем доски.
В правом верхнем углу, на одном уровне с надписью находится кнопка «Создать»
При нажатии на кнопку, открывается модальное окно, в котором находится форма создания новой доски.
Она состоит из следующих полей:
- Название доски
- Сокращенное название (обязательно в верхнем регистре)
- Описание доски
- [in future] доступ к доске
- [in future] права доступа
На каждой доске висит название, а иконкой является сама доска (как в фигме). Нажав на нее, пользователь проваливается внутрь.
Внутри доска состоит из хедера и основного поля. В хедере находится кнопка «Назад», название доски и кнопка «Настройки»
По нажатию на кнопку «Настройки», открывается страница настроек доски. Она содержит следующие пункты:
- Название доски
- Сокращенное название (Нельзя изменить)
- Описание доски
- Статусы для задач
- [in future] Права доступа
- [in future] Пригласить пользователя (ссылкой или по логину)
В основной части, находится кнопка «Создать колонку», по нажатию на которую будет создана колонка, где сверху можно вписать её название. В колонке появится кнопка «Создать задачу», при нажатии откроется модальное окно с формой создания задачи.
Она состоит из следующих полей:
- Название задачи
- Описание задачи
- [in future] Исполнитель задачи
- [in future] Связывание нескольких задач
По нажатию на созданную задачу, открывается модальное окно, сбоку.
В нем находится название и описание задачи. А так же:
- Кнопка «Удалить задачу»
- Селектор «Статус задачи» (Статусы добавляются в настройках доски)
- Кнопки «Сохранить» и «Отмена» (Появляются при внесении изменений)
- [in future] Создатель задачи
- [in future] Исполнитель задачи
- [in future] Комментарии к задаче
Поля «Название задачи» и «Описание» можно изменить по двойному клику на текст.
[GET] / - (страница авторизации)
[GET] /tables/ - (главная страница, со списком таблиц)
[GET] /tables/:id/ - (страница с таблицей)
[GET] /tables/:id/settings/ - (страница настроек таблицы)
[in future][GET] /tables/:id/:task_id/ - (отдельная страница с задачей)
type TaskStatus = {
_id: string;
title: string; // мб переделать на то, чтобы статусы выдавались автоматически. Имя колонки === Статус задачи. Но имя статуса можно было изменить и/или добавить/удалить статус.
}
type Task = {
_id: string;
table_id: string;
title: string;
description?: string;
status: TaskStatus; // auto set by the column name
}
type Column = {
_id: string;
table_id: string;
title: string;
}
type Table = {
_id: string;
user_id: string;
title: string;
shortName: string; // [A-Z]
description?: string;
taskStatuses?: TaskStatus[];
}
type User = {
_id: string;
name: string;
email?: email;
}
interface DBStructure {
users: User[];
tables: Table[];
columns: Column[];
tasks: Task[];
}
[MAIN] /api/ - все данные из БД <DBStructure>
[POST] /api/users/ добавить нового пользователя <User>
[GET] /api/users/:user_id/ - пользователь по ID <User>
[PATCH] /api/users/:user_id/ - изменение параметров пользователя
[DELETE] /api/users/:user_id/ - удалить пользователя
[POST] /api/tables/ - добавить новую таблицу <Table>
[PATCH] /api/tables/:table_id/ - изменение параметров таблицы
[DELETE] /api/tables/:table_id/ - удалить таблицу
[GET] /api/tables/?user_id= - таблицы по user ID Array<Table>
[POST] /api/columns/ - добавить новую колонку <Column>
[PATCH] /api/columns/:column_id/ - изменение параметров колонки
[DELETE] /api/columns/:column_id/ - удалить колонку
[GET] /api/columns/?table_id= - таблица по user ID Array<Column>
[POST] /api/tasks/ - добавить нувую задачу <Task>
[PATCH] /api/tasks/:task_id/ - изменение параметров задачи
[DELETE] /api/tasks/:task_id/ - удаленить задачу
[GET] /api/tasks/?table_id= - задачи по table ID Array<Task>