Перейти к содержанию

Функции

Проекты, документы, команда, настройки

  1. Проект: все документы хранятся в проектах. Первое, что видит пользователь - страница проектов. Пользователь выбирает проект, чтобы создавать в нем документы.

  2. форма списка проектов, где два типа проектов: собственные и доступные (чужие).

  3. создать (проект, подпроект):
    • имя проекта (текст 50 знаков)
    • Владелец (пользователь)
    • Дата/время создания
    • Описание (текст 255 знаков)
    • Родительский проект: может быть любой проект пользователя - можно создать подпроект сразу к проекту, в строке кнопка "создать подпроект"
  4. Открыть: открывает список документов проекта
  5. Переименовать
  6. Удалить
  7. Предоставить доступ
@startsalt
  {
    ==Проекты | [owner<&person>]
    ..
    {
      **Проект:** | [Создать] | [Открыть]| [Удалить] | [Доступ]
    }
    ..
    {T!
      +**Проект**           | **Владелец**| Дата/время       | **Действие**
      +----|----|----|----
      +Мои проекты          | ----       | ----  | ----
      ++Проект 1            | owner       |   | [x]
      ++Проект 2            | owner       |   | []
      ++Проект 3            | owner       |   | []
      +Доступные проекты    | ----       |   | ----
      ++Проект А            | user 2      |   | []
      ++Проект Б            | user 3      |  | []
      ++Проект В            | user 4      |   | []
    }
  }
@endsalt
  1. Документы: форма списка документов проекта. Должно быть в хлебных крошках имя проекта. Представления: простой табличный список (название, тип, дата создания, владелец, доступ, последние изменения), канбан (по типам документов колонки, в колонках - ноды с названием документа, и датой создания/изменения), плюс панель свойств документа, где можно менять свойства (имя, тип...?) и доступ (или просматривать, если не владелец)

  2. создать

  3. Переименовать
  4. Открыть:
  5. Переместить в проект
  6. Удалить
  7. Предоставить доступ (проект так же):
  8. Команде
  9. Пользователю
  10. Управлять доступом
@startsalt
  {
    ==Проекты > Документы | [owner<&person>]
    ..
    **Проект 1**
    ..
    {
      Документ: | [Создать] | [Открыть] | [Удалить] | [Доступ]
    }
    ..
    {T!
      +**Проект**           | Проект | **Владелец**       | **Действие**
      +----| ---- | ---- | ----
      +Мои документы        | ---- | ----         | ----
      ++Документ 1          | Проект 1   | owner      | [x]
      ++Документ 2          | Проект 1   | owner      | []
      ++Документ 3          | Проект 1   | owner      | []
      +Доступные документы  | ----   | ----     | ----
      ++Документ А          | Проект 1   | user 2     | []
      ++Документ Б          | Проект 1   | user 3     | []
      ++Документ В          | Проект 1   | user 4     | []
    }
  }
@endsalt
  1. Команда

  2. Создать

  3. Переименовать
  4. Пригласить пользователей
  5. Удалить
@startsalt
  {
    ==Команды | [owner<&person>]
    ..

    {
      Команда: | [Создать] | [Открыть] | [Удалить] | [Доступ]
    }
    ..
    {T!
      +**Команда / Пользователи**           |  **Права**       | **Действие**
      +----| ---- | ---- | ----
      +Команда 1        | ----         | ----
      ++owner            | Владелец      | []
      ++user 2            | чтение / запись      | [x]
      ++user 3            | чтение      | []
      +Команада 2    | ----     | ----
      ++owner            | Владелец     | []
      ++user Б            | чтение     | []
      ++user В            | комментирование     | []
    }
  }
@endsalt

Редактор документа

В редакторе 3 вертикальных панели:

  1. Редактор
  2. Граф - можно прятать.
  3. Свойства - для выбранного объекта отображаются свойства во вкладках:

  4. Классификатор объекта

  5. Связи: текущий объект и связи с группами других объектов, сгруппированных:

  6. по типам (сначала связь к ноде типа классификатора, и из нее раскрываются ноды объекта каждого типа)

  7. По документам И панель инструментов, на которой кнопки переключения режимов.

Импорт документов

Текстовый документ преобразуется в документ системы с объектами.

1) импорт маркдауна: в нем при импорте устанавливается иерарзия и последовательность. 2) импорт кода: получить список сущностей кода (классы, свойства, методы, переменные) 3) импорт диаграмм - преобразование диаграммы в документ системы

Отчеты

  • Трассировка требований
  • (См. Idea)

Управление пользователями

Это админка

  • Добавить пользователя
  • Удалить пользователя
  • Изменить права доступа (?)

Регистрация

Уже есть.

Редактор классификатора

Редактор классификатора хранит все классы объектов в виде дерева.

Классы объектов используются для создания объектов с некоторым набором свойств, которые используются в бизнес-логике системы.

Классификатор древовидный. Каждый нижестоящий класс должен наследовать свойства предыдущего.

Классификатор - это граф. Классы - узлы графа. Связи между классами в классификаторе - это ребра графа.

Вопрос наследования свойств: нужно ли хранить все свойства родителя в наследнике, или в наследнике хранить только уникальные свойства? (перенести из телеграма)

Класс описывается в виде json, где каждое свойство класса описывается несколькими параметрами:

  • имя параметра для использования в коде (только латиница)
  • наименование параметра в интерфейсе (локализованное на язык пользователя)
  • тип параметра:
  • одиночный параметр
  • массив
  • объект
  • тип данных - нужен справочник доступных типов данных.
  • длина поля - по умолчанию без ограничений
  • выводить интерфейсе редактора (bool) - это свойство будет выводиться в интерфейсе редактора в виде текста
  • выводить в отдельном контроле (bool)
  • тип контрола (или массив типов, в которых может быть выведен параметр?) - нужен справочник доступных типов контролов в зависимости от типа данных.
  • ограничение на вывод по ролям (массив ролей, для которых доступен параметр)

Редактор класса

Функции:

  1. Создать класс
  2. Читать класс
  3. Редактировать класс
  4. Удалить класс
  5. Дублировать класс - чтобы создать похожий, но в другой ветке классификатора
  6. Создать наследника на основе текущего класса
  7. Создать наследника и получить дополнительные свойства из другого класса.

Форма редактора

Наименование класса - текстовое поле ввода. Локализованное имя класса (для вывода в интерфейсе) - текстовое поле ввода Свойства класса - грид с перечнем свойств. В грид добавляются свойства класса, поля формы для добавления свойства в таблице ниже:

Параметр Контрол Обязательно
1 имя параметра для использования в коде (только латиница) Текстовое поле да
2 наименование параметра в интерфейсе (локализованное на язык пользователя) Текстовое поле да
3 тип параметра Мультиселект да
4 тип данных -нужен справочник доступных типов данных. Селект да
5 длина поля - по умолчанию без ограничений Текстовое поле (число) нет
6 выводить интерфейсе редактора (bool) - это свойство будет выводиться в интерфейсе редактора в виде текста чекбокс да
7 выводить в отдельном контроле (bool) чекбокс нет
8 тип контрола Мультиселект да, если выбрано "выводить в отдельном контроле"
9 ограничение на вывод по ролям Мультиселект нет (по умолчанию доступно всем)