Ваши
предложения по бюджету/срокам реализации проекта в целом. Прошу прежде ознакомиться с частичным описанием (если заинтересует, вышлю остальное в личку):
Видео одной из секций у
брокера:
https://drive.google.com/open?id=1dWSbgyjj_E2wubip...Видео одной из секций у
трейдера:
https://drive.google.com/open?id=1WFEMwH6IMKJ-DwVK...Общие требованияНужно собрать личный кабинет (ЛК), из уже готовых HTML/CSS/JS макетам. Приветствуются изменения данных версток на вкус исполнителя (скажем кнопку "Добавить" переместить туда-то или как-то улучшить презентацию поисковых фильтров), если это будет плюсом к UI/UX.
Имеется описание АПИ из нескольких (около 10) функций для подключения и проведения операций на удаленном сервере. ЛК говорит с удаленным сервером через АПИ, отправляет а также принимает данные в виде стандартных JSON объектов. Ответы от АПИ дублируем в локальной базе данных (БД), и шлем соответсвующую команду (вызов функции) на сервер если чего меняем локально. NB: Используем локальную БД для всех CRUD операций, вызывая АПИ и действуя по его результату.
Что уже есть
Имеются
готовые макеты страниц личного кабинета, выполненные в HTML + CSS. А
также примеры страниц с профилями, настройками, статистикой и тд которые
нужно будет подключить в систему.
Пример функционала- Новый трейдер (пользователь) вводит свои данные и регестрируется на сайте. Система создает запись в локальной БД, со статусом "Inactive".
- Админ заходит в свой ЛК, видит нового трейдера, и решает его активировать. ЛК меняет статус в БД на "Active", и шлет запрос на удаленный сервер через АПИ. В запросе указывает данные трейдера и "просит" его там (на сервере) создать.
- Сервер создает запись, возвращая соответствующий статус + идентификатор созданного трейдера обратно в АПИ --> ЛК.
- ЛК видит что все прошло успешно, и присваивает идентификатор трейдеру в локальной БД.
Какой-то момент трейдер решил что хочет сменить свое имя. Он его меняет в своем ЛК. ЛК через АПИ дает знать удаленному серверу что такой-то сменил имя. Но сервер получает неверную команду или по какой-то иной причине не меняет имя. АПИ это узнает через статус (ответ с сервера), и дает знать ЛК что операция НЕ прошла успешно. Имя трейдера НЕ обновляется в БД.
Это на 99% и есть концепт состовляющего, остальное это вокруг да около.
ЛК (БД) <==> АПИ <==> Сервер
По сути система состоит и вертится вокруг двух форм для создания аккаунтов: одна форма (больше полей) создает учетные записи (акаунты) на live сервере, другая (поменьше) на demo сервере. Остальное это отображение данных, немного статистики и функции связанные с CRUDом, например де/актививация аккаунта, измена статуса, других полей (например ФИО)-- принципе обыкновенный CRM но с некоторыми фишками.
Технологии/stackГлавное из требований -- простота в эксплуатации и возможность быстрой развертки новых компонентов: в будущем будем добавлять еще несколько фич.
ЛК должен быть динамичным и выносливым (например быстрое отображение таблицы в несколько тысяч рядов с pagination).
Из стека, предпочтение Node но можно рассмотреть и другие (Laravel например) если есть хорошие доводы:
- [ Node.js (Express?), React/Redux ] или другое?
- Bootstrap 4.1 + SCSS
- MongoDB 4 или Postgres 10
Фишки, фичи- Кабинет должен летать
- Регистрация, авторизация пользователей
- Кабинет для брокера (админа)
- Кабинет для клиентов (трейдеров)
- ЛК должен поддерживать несколько языков с возможностью настройки на лету (то-есть если брокер перевел ЛК на другой язык, то трейдер может его выбрать и спасти у себя в настройках, в дальнейшем видя все кнопки и тексты на этом языке)
- Возможность заливать файлы/документы
- Email уведомления (через SES или например Mailgun)
- Возможность добавлять админов в систему + настройка соответствующих прав
- Возможность создавать и отслеживать задачи (tasks) для админов
- Несколько категорий клиентов (demo, live, personal, corporate и пара других; небольшие различия между ними, например ФИО заменено на Название компании, для corporate и тому подобное)
Сроки, оплатаСроки не жмут, но чем раньше тем лучше. Главное качество работы. Середина-конец января. Возможно февраль.
Оплата по договоренности.