Загрузка данных


1. Назначение проекта

В школах города используются бесплатные онлайн-редакторы, которые перегружены рекламой или требуют регистрации. Нужен простой, безопасный инструмент для рисования (линии, фигуры, заливка, текст), работающий в браузере без интернета после загрузки. Проект создаст такой редактор силами IT-стажёров под руководством старшего разработчика.

---

2. Измеримые цели и критерии успеха

Цель 1. Разработать минимально рабочую версию (MVP) редактора.
Критерий: через 6 недель после старта есть работающий прототип с холстом, выбором цвета, кистью, ластиком.

Цель 2. Обеспечить возможность сохранить рисунок в PNG.
Критерий: при нажатии кнопки «Сохранить» скачивается файл без потерь.

Цель 3. Редактор должен открываться в трёх браузерах (Chrome, Firefox, Edge) без ошибок.
Критерий: тестирование на тестовой группе из 5 человек – 100% успешных запусков.

---

3. Требования высокого уровня

· Редактор пишется на чистом JavaScript + HTML5 Canvas.
· Не использует сторонние библиотеки (кроме стандартных).
· Интерфейс на русском языке, минимум текста – больше иконок.
· Весь код помещается в один HTML-файл (удобно распространять по школам).
· Размер страницы не более 500 КБ.

---

4. Описание проекта (что входит и что не входит)

Входит в объём:

· Создание холста 800×600 пикселей.
· Инструменты: карандаш, кисть (круглая), ластик, заливка, линия, прямоугольник, эллипс.
· Палитра из 24 цветов + выбор произвольного цвета (color picker).
· Кнопка «Очистить всё» и «Отменить» (один шаг назад).
· Экспорт в PNG.
· Всплывающие подсказки при наведении на инструменты.

Не входит:

· Слои, фильтры, текст по кривой, печать.
· Облачное сохранение или регистрация пользователей.
· Поддержка сенсорных экранов.

---

5. Риски высокого уровня

Риск 1. Сложно реализовать заливку замкнутой области (алгоритм flood fill).
Реакция: выделить на это 3 дополнительных дня, привлечь второго разработчика.

Риск 2. Отмена (undo) потребует много памяти при больших рисунках.
Реакция: хранить только 1 предыдущее состояние, при очистке холста сбрасывать историю.

Риск 3. Стажёры могут отстать от графика.
Реакция: еженедельный код-ревью и сдвиг на 1 неделю заложен в резерв.

---

6. Вехи (контрольные события)

· 29 апреля – утверждён макет интерфейса и список инструментов.
· 10 мая – готова основа: холст, рисование карандашом, выбор цвета.
· 20 мая – добавлены фигуры (линия, прямоугольник, эллипс), ластик.
· 28 мая – реализована заливка и undo.
· 5 июня – сделано сохранение в PNG, тестирование в трёх браузерах.
· 10 июня – сдача проекта и передача тестовой версии в две школы.

---

7. Бюджет (высокоуровневый)

· Время двух стажёров (80 часов × 500 руб/час) – 40 000 руб.
· Время ведущего разработчика (30 часов × 1500 руб/час) – 45 000 руб.
· Тестирование (волонтёры-школьники) – 0 руб.
· Непредвиденные расходы (дополнительные дни) – 15 000 руб.
· Итого ориентировочно: 100 000 рублей.

Все работы внутренние, покупка лицензий или серверов не требуется.

---

8. Требования к одобрению проекта

· Устав подписывается до 25 апреля.
· Изменение списка инструментов (добавление сложного) – только с согласия менеджера и спонсора.
· Если проект не укладывается в запланированные 6 недель, спонсор решает, продлевать сроки или урезать функциональность.

---

9. Менеджер проекта: ответственность и полномочия

Менеджер: Дмитрий Орлов, технический лидер отдела разработки.

Ответственность:

· Код-ревью, соблюдение архитектуры.
· Еженедельный демо-обзор спонсору по пятницам.

Полномочия:

· Распределять задачи между стажёрами.
· Отказаться от добавления фичи, если она угрожает срокам (без доп. согласования).
· Запрашивать тестирование у любого школьного учителя из партнёрских школ.

---

10. Спонсор проекта

Спонсор: Наталья Сергеевна Медведева, руководитель образовательных IT-проектов.

Полномочия:

· Утверждает устав, итоговый отчёт и передачу редактора в школы.
· Выделяет премию разработчикам при досрочной сдаче.
· Решает, выпускать ли редактор с открытым исходным кодом.

---

11. Подписи

Менеджер проекта: _______________  (Орлов Д.)  |   Дата: ___________
Спонсор: _______________  (Медведева Н.С.)  |   Дата: ___________