Необходимо сделать браузерную "чертилку" по типу Автокада (пример функционала
http://rama.sopromat.org/2009/?gmini=off)
Кроме линий, предусмотреть отрисовку дуг и кривых
В функционал добавить масштабирование и перемещение колесиком мышки (как в Автокаде) (примерно как тут
http://www.rvolve.com/zoom_pic.php)
"Подсветка" линии (дуги, кривой) при пересечении ее курсором мышки
"Выбор" с обозначением "ручками" (примерно как на 2 рисунке тут
http://fabricjs.com/customization/)
При двойном клике на линии - вывод ее свойств (начало, конец, длина и т.д.) с возможностью их изменения (пример
http://fabricjs.com/controls/)
Предусмотреть возможность группировки и группового перемещения объектов
Свойства объектов заносятся в ячейки массива. При удалении объекта следующие объекты в массиве "подтягиваются" на освободившееся место.
По возможности - функция проверки замкнутости контуров (координаты начала/конца одной линии должны совпадать с координатами начала/конца других линий)