На главную

JavaScript разработчик с профильным опытом

Ищем React-разработчика с опытом работы с canvas (fabric.js) и Redux, который готов взяться за интересный челлендж: поддержку и развитие существующего сервиса для автоматизации проектирования и расчета стоимости изделий из листового материала.<br> <br> Сервис помогает клиенту создавать чертежи изделий, выбирать материалы, технологические операции и на выходе рассчитывать стоимость проекта, формировать коммерческие предложения.<br><br> Наш текущий стек не самый свежий: у нас React 16.2.0, Redux 3.x, Fabric.js 1.6.7, старенький Webpack и прочие библиотеки в версиях нескольких летней давности. <br><br> Необходимо:<br><ol><li>Поддерживать и дорабатывать существующий функционал (пока всё работает в проде, бизнес не остановишь!).</li><li>Постепенно переводить проект на более актуальные технологии, чтобы кодовая база стала современной и удобной в развитии.</li></ol> Мы делаем:<br><br><ul><li>Canvas-проектирование (на fabric.js) — пользователь строит чертежи изделий, подбирает материалы и рассчитывает стоимость.</li><li>React + Redux — для управления состоянием и маршрутизацией.</li><li>Коммерческие предложения, подбор материалов, расчеты — всё это бизнес-логика, которую нужно рефакторить и развивать.</li></ul> Что важно для нас:<br><ul><li>Умение разбираться в чужом коде и поддерживать старые версии библиотек.</li><li>Понимание, как грамотно мигрировать и переписывать части приложения на современные решения без остановки работы сервиса.</li><li>Опыт с canvas-библиотеками (fabric.js или аналогами).</li><li>Понимание архитектуры React и Redux, желание прокачиваться на связке React + canvas.</li></ul> Если тебе интересно развивать реально используемый продукт, который решает вполне осязаемые задачи и ты не боишься legacy-кода — мы будем рады обсудить детали. Для понимания специфики проекта:<br><br>{<br> "license": "ISC",<br><br> "scripts": {<br> "build": "nps build.develop",<br> "watch": "nps watch.develop",<br> "serve": "nps serve.develop",<br> "lint": "nps lint",<br> "test": "nps test.coverage.changed"<br> },<br><br> "dependencies": {<br> "@hot-loader/react-dom": "^16.8.4",<br> "babel-polyfill": "^6.20.0",<br> "classnames": "^2.2.5",<br> "copy-webpack-plugin": "^5.0.0",<br> "@sentry/browser": "^5.6.3",<br> "fabric": "1.6.7",<br> "filesaver.js": "^0.2.0",<br> "font-awesome": "^4.6.3",<br> "handlebars": "^4.0.11",<br> "html-webpack-harddisk-plugin": "^1.0.1",<br> "html-webpack-plugin": "^3.2.0",<br> "jquery": "^3.1.1",<br> "jsondiffpatch": "^0.1.41",<br> "less-loader": "^4.1.0",<br> "lodash": "^4.17.11",<br> "moment": "^2.12.0",<br> "normalize.less": "^1.0.0",<br> "nps": "^5.9.4",<br> "prop-types": "^15.5.10",<br> "react": "^16.2.0",<br> "react-datepicker": "^1.8.0",<br> "react-debounce-input": "^3.0.1",<br> "react-dom": "^16.2.0",<br> "react-hot-loader": "^4.8.0",<br> "react-onclickoutside": "^6.7.1",<br> "react-overlays": "^0.8.3",<br> "popper.js": "^1.14.1",<br> "react-popper": "^1.3.3",<br> "react-redux": "^4.4.5",<br> "react-refetch": "^1.0.0",<br> "react-router-dom": "^4.1.2",<br> "react-select": "^1.0.0-rc.10",<br> "redux": "^3.1.4",<br> "redux-devtools-extension": "^2.13.8",<br> "redux-filterlist": "^0.3.0",<br> "redux-form": "^7.0.3",<br> "redux-logger": "^2.4.0",<br> "redux-thunk": "^1.0.3",<br> "require-from-string": "https://github.com/floatdrop/require-from-string/tarball/v1.1.0",<br> "select2": "^4.0.3",<br> "webpack-merge": "^4.2.1",<br> "whatwg-fetch": "^1.0.0",<br> "write-file-webpack-plugin": "^4.5.0"<br> },<br><br> "devDependencies": {<br> "@babel/core": "^7.3.4",<br> "@babel/plugin-proposal-class-properties": "^7.3.4",<br> "@babel/plugin-proposal-export-default-from": "^7.2.0",<br> "@babel/plugin-proposal-object-rest-spread": "^7.3.4",<br> "@babel/preset-env": "^7.3.4",<br> "@babel/preset-flow": "^7.0.0",<br> "@babel/preset-react": "^7.0.0",<br> "assert": "^1.3.0",<br> "autoprefixer": "^7.2.4",<br> "babel-eslint": "^8.1.1",<br> "babel-jest": "^20.0.3",<br> "babel-loader": "^8.0.5",<br> "babel-preset-stage-0": "^6.24.1",<br> "base64-loader": "^1.0.0",<br> "css-loader": "^0.28.8",<br> "eslint": "^4.2.0",<br> "eslint-plugin-flowtype": "^2.35.0",<br> "eslint-plugin-jest": "^20.0.3",<br> "eslint-plugin-react": "^7.1.0",<br> "file-loader": "^1.1.11",<br> "flow-bin": "^0.51.1",<br> "flow-coverage-report": "^0.3.0",<br> "gulp": "^3.9.0",<br> "gulp-less": "^3.0.5",<br> "gulp-util": "^3.0.7",<br> "jest": "^20.0.4",<br> "less": "^2.5.3",<br> "less-plugin-clean-css": "^1.5.1",<br> "mini-css-extract-plugin": "^0.4.0",<br> "path": "^0.12.7",<br> "popper.js": "^1.14.7",<br> "postcss-calc": "^6.0.1",<br> "postcss-import": "^11.0.0",<br> "postcss-loader": "^2.0.10",<br> "precss": "^2.0.0",<br> "style-loader": "^0.19.1",<br> "webpack": "^4.29.6",<br> "webpack-cli": "^3.0.6",<br> "webpack-dev-server": "^3.2.1",<br> "webpack-stylish": "^0.1.8"<br> }<br>}<br><br>Большая просьба с уважением относиться ко времени друг друга и не тратить его, если многое из package.json вам ничего не говорит. Пишите с описанием профильного опыта, примерами работ и желаемыми условиями сотрудничества.<br><br><br><br>

Нужно узнать расходы на маркетинг конкретных сайтов

Нужны расходы на маркетинг в целом: https://360.yandex.ru https://kontur.ru/talk https://mts-link.ru https://www.bitrix24.ru Т.е. Есть какие-то доступы к аналитическим сервисам, которые могут показать расходы...

Соединить n8n.io + ВКонтакте

Сделать workflow в n8n. Workflow должен выполнять функционал чат-бота для группы ВК. Предоставлю токены от группы вк, а также аккаунт n8n.

Обрисовка картинки

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