-
Notifications
You must be signed in to change notification settings - Fork 7
jcase: требования к проекту
Vasily M edited this page Apr 8, 2019
·
3 revisions
- Основные части логики должны быть разбиты на подпрограммы - модули
- Каждый модуль должен выполнять только свою часть работы
- Проект должен быть реализован в виде одной динамической веб-страницы на которую в зависимости от действий пользователя подгружаются данные.
- Анимация, логика, а также все "программируемые" части проекта должны быть реализованы на "чистом" (без использования фреймворков) языке программирования JavaScript.
- Верстка также должна быть написана на "чистом" HTML/CSS без использования фреймворков.
Решено не использовать фреймворки в данном проекте, чтобы обойтись без множества зависимостей, чтобы проект был как можно более легковесным
Решено использовать библиотеку mxGraph для создания диаграмм и библиотеку ajv для валидации js-объекта
Решено не использовать новый фунционал объявления классов в ES6 для сохранения совместимости со старыми браузерами.
- Модуль получения JSON-файла по ссылке и десериализация его в js-объект.
- Модуль проверки - осуществляет проверку js-объекта на существования всех нужных полей, а также типов данных этих полей.
- Модуль отрисовки - отрисовывает в canvas IDEF0 диаграмму по js-объекту.
В связи с ограничением по срокам спринта решено реализовать визуализацию только уровня A0 диаграммы IDEF0.
- В корне проекта должен лежать файл index.html, содержащий в себе верстку SPA-страницы, а также загрузку всех дополнительных стилей и js-файлов.
- В той же директории должны находиться папки css (директория, содержащая в себе стили для страницы) и js (папка, содержащая в себе js-файлы проекта).
- Каждый модуль проекта должен храниться в отдельном js-файле и подгружаться в начале загрузки страницы index.html.
- Тесты должны лежать в папке js_test.
- index.html - основная верстка, реализация SPA;
- js/loader.js - модуль загрузки - загружает содержимое JSON-файла по ссылке;
- js/validator.js - модуль проверки, осуществляет проверку js-объекта на существования всех нужных полей, а также типов данных этих полей;
- js/visualizer.js - модуль отрисовки - отрисовывает в div контейнере диаграмму по загруженному файлу;
- js/idefshapes.js - фабрика для создания форм диаграммы IDEF0
- js/umlshapes.js - фабрика для создания форм диаграммы UML
- css/style.css - содержит в себе стили страницы.
- docs/ - папка с документацией (jsdoc)
- images/ - папка с sag изображениями для форм
- js_test/ - папка для тестов
- libs/ - папка для внешних библиотек
- samples/ - папка с примерами json файлов
- p.json - содержит в себе информацию о частицах для динамического анимированного фона главной страницы.
- Реализация всего проекта не должна занимать больше двух недель
- 1-3 день. Написание основной документации проекта;
- 3-5 день. Разработка прототипа дизайна проекта;
- 5-7 день. Разработка рабочего прототипа проекта. Разработка логики.
- 7-8 день. Тестирование проекта.
- 8-11 день. Полировка проекта (автоматическое тестирование должно проходить все тесты, проект должен проходить все тесты, структура проекта и файлов должна соответствовать требованиям)
{
"package": "DevOps мобильного приложения",
"activities": [
{
"id" : 0,
"value" : "Автоматизировать процесс DevOps"
},
{
"id" : 1,
"parent" : 0,
"value" : "Настроить конфигурацию"
},
{
"id" : 2,
"parent" : 0,
"value" : "Собрать приложение"
},
{
"id" : 3,
"parent" : 0,
"value" : "Протестировать приложение"
}
],
"connections": [
{
"id" : 0,
"value" : "Данные конфигурации",
"start" : 1,
"end" : [2,3]
}
],
"person" : {
"value": "Разработчики",
"actors" : [
{
"id" : 0,
"value" : "Программист",
"activities" : [1,2]
},
{
"id" : 1,
"value" : "DevOps инженер",
"activities" : [1,2]
}
]
},
"mechanism" : {
"value": "Программный модуль",
"actors" : [
{
"id" : 0,
"value" : "IDE",
"activities" : [1,2]
},
{
"id" : 1,
"value" : "CI/CD система",
"activities" : [1,2]
}
]
},
"control": [
{
"id" : 0,
"value" : "Бизнес требования",
"activities" : [0,1,2]
},
{
"id" : 1,
"value" : "План проекта",
"activities" : [0,1,2]
}
],
"input": [
{
"id" : 0,
"value" : "Исходный код",
"activities" : [0,2]
},
{
"id" : 1,
"value" : "Описание конфигурации",
"activities" : [0,1]
}
],
"output": [
{
"id" : 0,
"value" : "Установочный файл приложения",
"activities" : [4]
}
]
}