Git Product home page Git Product logo

khasang / cachoeira Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 2.0 2.28 MB

Cachoeira – кроссплатформенный OpenSource проект, в рамках которого будет разработан программный продукт, предназначенный управления проектами по водопадному подходу

License: GNU General Public License v3.0

Java 99.33% CSS 0.67%

cachoeira's People

Contributors

dmitriyciglincev avatar georgesemenov avatar gressus avatar ivansvirin avatar raenar4k avatar spaceprog avatar truesik avatar waffle-iron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cachoeira's Issues

Реализовать пункт 1.5.0

Реализовать отображение ,созданных задач в левой части интерфейса , в виде диаграммы Ганта в правой части интерфейса.

Протокол онлайн совещания команды Cachoeira

Список участников встречи :

Иван Свирин (PO, Разработчик)

Илья Войцеховский (UD, UID, Разработчик)

Дмитрий Циглинцев(UID, Разработчик)

Рысцов Вячеслав (Разработчик)

Александр Гонцаров (Разработчик)

Георгий Семёнов (PM, Разработчик)

На совещании обсуждался следующий вопрос :
Как действовать команде в период отсутствия всех архитекторов.

По результатам встречи были принято следующее решение :
Разработать контроллер самостоятельно (без архитекторов) , для этого нужно будет создать соответствующие карточки в Waffle.io ,и коллективно решать эту проблему в Slack'e.

Пакет Model ITask/Task

Создать интерфейс ITask со следующими полями
+getName(): String
+setName(name: String)
+getStart(): Date
+setStart(start:Date)
+getFinish(): Date
+setFinish(finish: Date)
+getDonePercent():integer
+setDonePercent(donePercent: integer);

Создать класс Task , который реализует интерфейс ITask

private переменные
-name String;
-start: Date
-finish: Date
-donePercent: integer

public методы
+getName():String//Метод , возвращающий имя задачи
+setName(name:String)//метод устанавливающий имя задачи
+getStart():Date//Возвращает время начала задачи (см Т.З. у задачи есть время начала задачи , время окончание и процент выполнения)
+setStart(start:Date)//Метод позволяющий установить время начала задачи
+getFinish():Date//Метод возвращающий время окончания задачи
+setFinish(finish:Date)//Метод позволяющий установить время окончания задачи.
+getDonePercent():integer//Метод возвращающий процент выполнения задачи
+setDonePercent(donePercent:integer)//Метод позволяющий установить процент выполнения задачи.

Также См. Архитектуру https://cloud.githubusercontent.com/assets/13136814/10261996/0e482656-69be-11e5-894e-27d29867ebd4.png

Реализовать пункт road map 1.4.3

Реализовать возможность добавлять колонку в списке ресурсов , через контекстное меню , нажатием ПКМ . При этом должна быть возможность выбирать заголовок колонки из предложенного списка свойств ресурса или ввести название с клавиатуры .
P.S.
Схожа с задачей №28
Также см. архитектуру https://cloud.githubusercontent.com/assets/13136814/10261995/098ea7ac-69be-11e5-999c-c1e06290879f.png

Реализовать пункт road map 1.4.2

Реализовать возможность добавлять колонку в списке задач , через контекстное меню , нажатием ПКМ . При этом должна быть возможность выбирать заголовок колонки из предложенного списка свойств задач или ввести название с клавиатуры .
P.S.
Схожа с задачей №29.
Также см. архитектуру https://cloud.githubusercontent.com/assets/13136814/10261995/098ea7ac-69be-11e5-999c-c1e06290879f.png

Реализовать пункт 1.5.1

При переходе с вкладки Задачи на вкладку Ресурсы в правой панели должны отображаться метки задач так, чтобы напротив ресурса по горизонтали располагались метки тех задач, с которыми ресурс связан.

Пакет Model IProject/Project

Создать интерфейс IProject со следующими полями
+save(target: String)
+load(source: String)
+getName(): String
+setName(name: String)
+getStart(): Date
+setStart(start:Date)
+getFinish(): Date
+setFinish(finish: Date)
+getTaskList(): List//Интерфейс ITask будет создаваться в другой задаче
+setTaskList(tasks: List)

Создать класс Project , который реализует интерфейс IProject
private переменные
-name String;(пока по умолчанию всегда = "Проект")
-start: Date (пока не инициализируемая переменная)
-finish: Date (пока не инициализируемая переменная)
-tasks: List
public методы
+save(target: String)//реализуется "выбросом" исключения (как вариант throw new IllegalArgumentException("Не реализован метод save класса Project");
+load(source: String)//Метод должен подгружать данные проекта по умолчанию из defaultProject.xml
+exportResources(target: String)//реализуется "выбросом" исключения (как метод save)
+importResources(sources: String)//Метод , который отвечает за добавление новых ресурсов.
+getName():String//реализуется "выбросом" исключения (как метод save)
+setName(name:String)//реализуется "выбросом" исключения (как метод save)
+getStart():Date//реализуется "выбросом" исключения (как метод save)
+setStart(start:Date)//реализуется "выбросом" исключения (как метод save)
+getFinish():Date//реализуется "выбросом" исключения (как метод save)
+setFinish(finish:Date)//реализуется "выбросом" исключения (как метод save)
+getTaskList(): List Метод , который возвращает список задач.
+setTaskList(List) Метод , который принимает список задач

Протокол онлайн совещания команды Cachoeira 7.11.2015

Список участников встречи :

Иван Свирин (PO, Разработчик)

Илья Войцеховский (UD, UID, Разработчик)

Рысцов Вячеслав (Разработчик)

Дмитрий Циглинцев(UID, Разработчик)

Оксана Галушко(Архитектор, UD)

Георгий Семёнов (PM, Разработчик)

На совещании обсуждались результаты реализации пунктов road map участниками проекта.

Реализовать пункт 1.5.5

ВНИМАНИЕ. Данный пункт не нужно реализовывать , пока не будет составленна новая архитектура.
Реализовать возможность соединять стрелками зависимые задачи на диаграмме , наводя курсор мыши на метку задачи , и удерживая левую кнопку мыши , подводить стрелку от этой метки к другой .

Релизовать новый интерфейс программы.

Окно свойтв проекта должно отображать и давать возможность редактировать такие значения как :
1)начало проекта
2)конец проекта
3)имя проекта
4)Комментарии (опесание проекта).
см. архитектуру : https://cloud.githubusercontent.com/assets/13136814/10261995/098ea7ac-69be-11e5-999c-c1e06290879f.png

Пофиксить неудаляемые полосы задач

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

Итоги онлайн совещания команды Cachoeira 10.10.2015

Резюме онлайн встречи команды проекта Cachoeira , состоявшейся 10.10.2015

Список участников встречи :

Иван Свирин (PO, Разработчик)

Илья Войцеховский (UD, UID, Разработчик)

Надежда крупская (Архитектор, Разработчик)

Дмитрий Циглинцев(UID, Разработчик)

Рысцов Вячеслав (Разработчик)

Александр Гонцаров (Разработчик)

Георгий Семёнов (PM, Разработчик)

На совещании обсуждались следующие вопросы :
1)Какие пакеты из архитектуры нужно реализовать в первую очередь?
2)Какую модель ветвления будем использовать при работе с системой контроля вресий(git)?

По результатам встречи были приняты следующие решения :
1)В первую очередь будем реализовывать пакет Controller,
2)При работе с системой контроля версий будем использовать модель ветвления -Github Flow.

Реализовать пункт 1.5.4

Реализовать возможность изменять срок исполнения задачи кликнув и удерживая левый или правый край метки соответствующей задачи на диаграмме.

Реализовать пункт 1.5.6

Реализовать возможность передвигать метку задачи с помощью мыши вправо или влево по оси времени.

Реализовать пункт 1.5.2

Реализовать возможность выбора на диаграмме через контекстное меню отображения тех или иных свойств задач в текстовом виде возле метки задачи .

ТЗ v.1.1

ТЗ (v.1.1).

Интерфейс.

Основное окно приложения содержит компоненты (сверху вниз):

  • титульная строка;
  • строка основного меню приложения;
  • окно редактирования.

Титульная строка содержит название открытого проекта и название приложения.

Основное меню содержит один пункт "Проект", при выборе которого раскрывается список пунктов подменю "Проект": "Создать", "Открыть", "Сохранить", "Выход".
При выборе опции "Выход" приложение заканчивает свою работу.
При выборе опций "Создать", "Открыть", "Сохранить" должно быть открыто новое окно, состоящее из (сверху вниз):

  • титульной строки, содержащей название выбранной операции ("Создание", "Открытие", "Сохранение");
  • внутреннего окна, содержащего список папок и файлов текущего каталога;
  • редактируемой строки "Имя файла";
  • кнопок "ОК" и "Отмена".

Окно редактирования состоит из двух панелей:

  • слева находится панель, отображающая список задач или ресурсов в зависимости от выбранного режима отображения;
  • справа находится панель графического отображения задач проекта.

Левая панель имеет две вкладки "Задачи" и "Ресурсы".
При выборе вкладки "Задачи":

  • на левой панели отображается список задач проекта в виде таблицы, которая имеет три колонки с
    заголовками: "Наименование", "Дата начала", "Дата окончания";
  • на правой панели отображаются задачи в виде диаграммы Ганта (расположение метки задачи по вертикали должно быть
    напротив ее текстового описания в левой панели; размер и расположение метки задачи по горизонтали должны соответствовать
    временной шкале, расположенной вверху диаграммы, и датам обозначенным в левой панели; метки задач могут быть соединены
    стрелками, если между задачами имеется соответствующая зависимость).

При выборе вкладки "Ресурсы":

  • на левой панели отображается список ресурсов проекта в виде таблицы, которая имеет две колонки с
    заголовками: "Наименование", "Тип";
  • на правой панели отображаются метки задач (расположение метки задачи по вертикали должно быть напротив ассоциированного
    с данной задачей ресурса, отображенного в левой панели (если с задачей не ассоциирован ни один ресурс, ее метка располагается
    ниже списка ресурсов); размер и расположение метки задачи по горизонтали должны соответствовать
    временной шкале, расположенной сверху).

При клике правой кнопкой мыши на незанятой области левой или правой панели при выбранной вкладке "Задачи" должно открываться контекстное меню, содержащее один пункт "Новая задача".
При клике правой кнопкой мыши на незанятой области левой панели при выбранной вкладке "Ресурсы" должно открываться контекстное меню, содержащее один пункт "Новый ресурс".
При клике правой кнопкой мыши на описание задачи в левой панели или ее метку в правой панели должно открываться контекстное меню, содержащее пункты "Назначить ресурс", "Свойства задачи", "Удалить".
При клике правой кнопкой мыши на описание ресурса в левой панели должно открываться контекстное меню, содержащее пункты "Назначить задачу", "Свойства ресурса", "Удалить".

Опции контекстных меню.

При выборе опции "Новая задача" должно быть открыто новое окно, состоящее из (сверху вниз):

  • титульной строки, содержащей название выбранной операции ("Новая задача");
  • редактируемой строки "Наименование";
  • редактируемой строки "Дата начала";
  • редактируемой строки "Дата окончания";
  • раскрывающегося списка "Ресурсы" с возможностью выбора ресурса через checkbox;
  • кнопок "ОК" и "Отмена".

При выборе опции "Свойства задачи" должно быть открыто новое окно, состоящее из (сверху вниз):

  • титульной строки, содержащей название выбранной задачи;
  • редактируемой строки "Наименование";
  • редактируемой строки "Дата начала";
  • редактируемой строки "Дата окончания";
  • списка "Ресурсы" с возможностью удаления ресурса через checkbox;
  • кнопок "ОК" и "Отмена".

При выборе опции "Новый ресурс" должно быть открыто новое окно, состоящее из (сверху вниз):

  • титульной строки, содержащей название выбранной операции ("Новый ресурс");
  • редактируемой строки "Наименование";
  • редактируемой строки "Тип";
  • раскрывающегося списка "Задачи" с возможностью выбора задачи через checkbox;
  • кнопок "ОК" и "Отмена".

При выборе опции "Свойства ресурса" должно быть открыто новое окно, состоящее из (сверху вниз):

  • титульной строки, содержащей название выбранного ресурса;
  • редактируемой строки "Наименование";
  • редактируемой строки "Тип";
  • списка "Задачи" с возможностью удаления задачи через checkbox;
  • кнопок "ОК" и "Отмена".

При выборе опции "Назначить ресурс" должен открываться список ресурсов с возможностью выбора через checkbox.
При выборе опции "Назначить задачу" должен открываться список задач с возможностью выбора через checkbox.
При выборе опции "Удалить" соответствующие ресурс или задача должны быть удалены.

Данные.

Файл проекта должен хранить следующие типы данных:

  • задачи,
  • ресурсы.

Задачи должны иметь свойства:

  • наименование,
  • дата начала,
  • дата окончания,
  • назначенные ресурсы,
  • созависимые задачи,
  • тип зависимости (старт-финиш, старт-старт, финиш-старт, финиш-финиш).

Ресурсы должны иметь свойства:

  • наименование,
  • тип,
  • назначенные задачи.

Реализовать пункт 1.7.3

Реализовать возможность создавать файл нового проекта через кнопку "Создать" в основном меню.

Реализовать пункт road map 1.4.1

Реализовать возможность вызова контекстного меню , нажатием правой кнопки мыши на ресурс или метку задачи, для ассоциации данного ресурса с задачей или наоборот , чтобы быстро назначать ресурсы на задачи.
Также см. архитектуру https://cloud.githubusercontent.com/assets/13136814/10261995/098ea7ac-69be-11e5-999c-c1e06290879f.png

Пофиксить невозможность отвязать задачи

Если попытаться отвязать задачи от ресурса и, используя контекстное меню , то сделать это не удастся . Откреплённые задачи по прежнему будут отображаться на временной шкале на против ресурса . Хватит это терпеть !!!

Протокол онлайн совещания команды Cachoeira 14.11.2015

Иван Свирин (PO, Разработчик)

Рысцов Вячеслав (Разработчик)

Александр Гонцаров (Разработчик)

Георгий Семёнов (PM, Разработчик)

На совещании обсуждались результаты реализации пунктов road map участниками проекта.

Протокол онлайн совещания команды Cachoeira 28.11.2015

Иван Свирин (PO, Разработчик)

Рысцов Вячеслав (Разработчик)

Георгий Семёнов (PM, Разработчик)

На совещании обсуждался вопрос дальнейшего развития проекта , в условиях устаревшей архитектуры.
Было принято решение реализовать возможность сохранять данные и модернизировать архитектуру , отталкиваясь от уже написанного кода.

Создание класса TaskController в пакете Сontroller

Написать класс TaskController — класс(можно сделать через интерфейс , как практикует Надежда) , имеющий следующие методы:
addTask ()- добавляет новую задачу , вызывает метод setProperties() [см. ниже]. Также после его выполнения интерфейс должен обновиться , чтобы было видно , что добавилась новая задача.
removeTask(task:ITask) - удаляет задачу , после его выполнения интерфейс должен обновиться , чтобы было видно , что задача удалилась.
аddNewRowInTaskList () - метод , который позволяет добавить новую колонку в список задач из контекстного меню, вызывает метод addNewRow(nameRow:String)[пока не созданный] класса Project , после его выполнения интерфейс должен обновиться , чтобы было видно , что добавилась новая колонка .
setProperties() — позволяет вызвать окошко свойств задачи и редактировать их вызывает метод initTask()[пока не созданный] класса Task - который инициализирует задачу (имя + время начала + время конца + используемый ресурс + % выполнения).

Прокачать вьюшку (контекстное меню "добавить задачу","св-ва задачи","удалить задачу")

Реализовать на вьюхе возможность вызывать контекстное меню в котором будут пункты :
1)«Добавить задачу» , и привязать к ней соответствующий функционал (addTask() см задачу №21)
2)«Свойства задачи» - данный пункт должен появляться при нажатии правой кнопкой мыши на задаче , при его нажатии должен срабатывать initTask()
3)«Удалить задачу» - данный пункт должен появляться при нажатии правой кнопкой мыши на задаче , при его нажатии должен срабатывать deleteTask(task:ITask) см задачу №21.

Пофиксить невозможность открепить задачи.

Дело в том что если создать более одного ресурса и к нему прикрепить задачи , то открепить их уже не удастся , они так и буду помечены , как привязанные к этому ресурсу , пока его не убьют или не найдут кого-нибудь получше.

Реализовать пункт 1.7.7

Реализовать возможность обновлять состояние проекта через кнопку "Обновить" в основном меню.

Реализовать пункт 1.7.5

Реализовать возможность сохранять файл проекта через кнопку "Сохранить" в основном меню.

Свойства проекта

У проекта есть поля start и finish , для определения пременного промежутка проекта. Но только этого мало для создания интерфейса с свойствами проекта => нужно придумать дополнительные свойства.

Реализовать пункт 1.5.3

Реализовать возможность менять масштаб времени на правой панели , нажимая на кнопки "+" или "-" .

Реализовать пункт 1.7.9

Реализовать возможность экспортировать и импортировать список ресурсов с помощью соответствующих кнопок в основном меню "Экспорт ресурсов" и "Импорт ресурсов" (кнопки ещё не нарисованы)

Реализовать пункт 1.7.6

Реализовать возможность открывать файл проекта через кнопку "Открыть" в основном меню.

Реализовать пункт 1.7.2

Реализовать возможность открывать уже существующий файл проекта через кнопку "Открыть" в основном меню.

Протокол онлайн совещания команды Cachoeira 31.10.2015

Список участников встречи :
Иван Свирин (PO, Разработчик)
Илья Войцеховский (UD, UID, Разработчик)
Рысцов Вячеслав (Разработчик)
Дмитрий Циглинцев(UID, Разработчик)
Надежда Крупская(Архитектор, Разработчик)
Георгий Семёнов (PM, Разработчик)

На совещании обсуждались способы реализации пунктов road map 1.4.1 , 1.4.2 и 1.4.3.

По результатам встречи были приняты следующие решения :
1)Полностью не реализовывать пункты 1.4.2 и 1.4.3 , но реализовать лишь часть.
2)Осатльную часть пунктов 1.4.2 и 1.4.3 перенести на более позднюю версию.

Протокол онлайн совещания команды Cachoeira 24.10.2015

Список участников встречи :
Иван Свирин (PO, Разработчик)
Илья Войцеховский (UD, UID, Разработчик)
Рысцов Вячеслав (Разработчик)
Георгий Семёнов (PM, Разработчик)

На совещании обсуждался вопрос корректного создания задач , в условиях нехватки свободного времени у большинства членов команды.

По результатам встречи были принято следующее решение : По возможности создавать задачи для будущих версий . Важно , чтобы эти задачи не зависили от ещё несделанных задач.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.