Доработка фронтенда для финансового приложения

Цена договорная • безналичный расчёт, электронные деньги
26 июня 2017, 19:09 • 4 отклика • 49 просмотров
Требуемые навыки:
ES6
Backbone
Marionette
Rollup.js
Git
Базовые *nix: доступ к репозиторию через SSH
Понимание бухучета/финучета (дебет, кредит, типы счетов)

Дано:
Система управления финансами. Базовые сущности: счёт и транзакция (проводка). Смысл тот же самый, что и в бухгалтерии, в 1С и т.п. рода ПО.
Каждая проводка имеет две стороны: дебет и кредит, которые указывают (через foreign key) на счёт. Таким образом изменяется состояние счетов, производится перемещение средств.
Счета устроены в иерархию, для упрощения контроля.
Заниматься бекендом не нужно, общение стандартизировано и проходит через REST API (HTTP+JSON).

Весь код написан на ES6, исполняется нативно в браузере, без транспиляции, так как полный контроль за клиентский окружением (последняя версия Chrome).
Модули ES6 через rollup, т.к. нет нативной поддержки модулей пока в браузерах.
Backbone+Marionette как основные библиотеки интерфейса.

Задача:
Нужно написать вменяемый UI и максимально оградить пользователя от того, чтобы заморачиваться дебетом и кредитом. Юзер должен максимально наглядно управлять счетами (средствами), как в простеньких программах для учета финансов. При этом, должна обеспечиваться строгость, т.е. биться баланс и целостность.

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

Нужно создать страницу управления одним, конкретным счетом, для того чтобы работать с проводками. Вывести баланс по счету. Форма создания проводки должна быть максимально наглядной, должен быть pre-view операции, т.е. результирующие балансы на счетах.
Код виджета таблицы самописный, возможно заменить на Backgrid.
Реализовать undo-redo.

Пожалуйста, указывайте сразу приблизительные сроки/цены.

P.S. Переписать на Angular, Ember и прочее не предлагать :)