1001 Freelance Projects
Свежие проекты с фриланс-бирж
Сегодня: 19-May-2024 02:54 GMT
Просмотр проекта
Подробный просмотр проекта (вы будете перенаправлены на сторонний сайт)
Название проекта: node.js бекенд для дашборда
Кто разместил: Внешний проект с weblancer.net
Открыт: 09-Jan-2022 07:39 GMT
Описание: Нужно написать на node.js бекенд для вот такого дашборда https://bit.ly/3n7MP1x

Работа состоит из двух частей:
1. Парсер, который будет периодически забирать из ftp csv и xml файлы, разбирать их и складывать в БД (postgresql)
2. API, которое будет отдавать данные фронтенду.

Ниже текстовое ТЗ, а вот здесь красивое ТЗ с картинками: https://living-pentagon-5f4.notion.site/b84bc8af445c4f45923f5d77e35509e0

Часть 1.1: Парсинг csv
Раз в сутки скачать zip-архив с файлами CSV вот такого вида: https://www.dropbox.com/s/gukumii5lavcb87/Simplewealth_AG_Inception_December_21_2021.csv?dl=0
Нужно скачать свежий zip, разложить содержимое csv по таблицам в БД (если таблицы нет или какого-то поля в ней нет - создать)

Названия таблиц предлагаю формировать так:
- префикс: IbImport
- название: первый столбец + SubSection (если есть), пробелы убираем
Пример: https://monosnap.com/file/92XRfdNex2PlTgGxUlSJjkNEWfCJk3

Названия полей внутри таблиц предлагаю формировать исходя из полей Header, например: https://monosnap.com/file/LbXyEpMrkpFpasdglwD8xPdwyWT19j

Дополнительно:
- в каждой таблице должно быть поле id
- в каждой таблице должно быть поле IntroductionID - ссылка (внешний ключ) на запись в таблице IbImportIntroduction
- если в таблице есть MetaInfo - должно быть поле MetaInfoID, ссылка на таблицу IbImportMetaInfo

Все данные импортируем как строки, т.е. “как есть”. Исключение только для IbImportMetainfo.AnalysisPeriod - тут нужно сохранить “как есть” + распарсить даты и сохранить AnalysisPeriodBegin и AnalysisPeriodEnd
Дополнительно в поля IbImportIntroduction: ImportFile, ImportDate, ImportIBUID записываем имя импортируемого файла, дату импорта и ID аккаунта (он есть в названии файла)

Часть 1.2: Парсинг xml
Раз в сутки скачать из ftp xml-файл вот такого вида: https://www.dropbox.com/s/4wr928qhdfmb11c/clientonly.xml?dl=0
Нужно скачать свежий файл и разложить содержимое по таблицам в БД (если таблицы нет или какого-то поля в ней нет - создать. НО! Если внутри тега нет данных - пустую таблицу создавать не нужно)

Названия таблиц предлагаю формировать так:
- префикс: IbImport
- название: Названия тегов внутри <FlexStatement>

Названия полей внутри таблицы - по названию атрибутов
Пример: https://monosnap.com/file/OeXuVe8jFXeRUhhZBbyys6AFMrmdOp

Дополнительно:
- в каждой таблице должно быть поле id
- нужно сохранить данные из тега <FlexStatement> в таблицу FlexStatement
- данные из AccountInformation нужно сохранять только если они поменялись, и в этом случае нужно создавать новую запись а не обновлять старую.
- в каждой таблице должны быть поля FlexStatementID и AccountInformatinID - ссылки на соотв. таблицы


Часть 2: API
Нужны три endpoint’а:
1) POST /clientAuth
Принимает email и пароль, сравнивает с данными в таблице Users, возвращает "result": true/false и ставит сессионную куку
2) GET /table?name={TableName}&fields={FieldName1},{FieldName2},{FieldName3},...
Возвращает запрашиваемые поля указанной таблицы:
- из последнего импорта (определяем по IbImportIntroduction.ImportDate)
- для текущего пользователя (из cookies получаем имя сессии, по ней находим пользователя, получаем его IBUID)
- Если поля не перечислены - возвращает все поля таблицы
3) POST /table?name={Table}
Пример:
curl -X POST "https://api.service.com/table?name=Users" \
-d '{
"set": {"portfolio": "3", "duration": "5 years"},
"where": {"id": "123"}
}'
- По сессии проверяем что текущий пользователь - админ (Users.role=admin)
- исполнить UPDATE Users SET portfolio="3", duration="5 years" WHERE id="123"
- Перед исполнением проверить, - если запрос затронет больше одной записи, то вернуть ошибку


Формат ответа:
{
"result": {
"id":"2d4d028de3015345da9420df5514dad0",
"name":"blog.example.com",
"content":"2.6.4.5"
},
"success": true,
"errors": ,
"messages": ,
"result_info": {
"page": 1,
"per_page": 20,
"count": 1,
"total_count": 200
}
}

{
"result": null,
"success": false,
"errors": ,
"messages":
}

Пагинация:
curl "https://api.service.com/zones?page=3&per_page=20&order=type&direction=asc"
По умолчанию: page=1, per_page=100, order=id, direction=ASC

HTTP response codes:
- 200 OK request successful
- 400 Bad Request request was invalid
- 401 Unauthorized user does not have permission
- 403 Forbidden request not authenticated
- 405 Method Not Allowed incorrect HTTP method provided



Предлодите цену и сроки.
Project ID: 4192272
Категория проекта:
Бюджет проекта:
Подробный просмотр проекта (вы будете перенаправлены на сторонний сайт)
Последние проекты / Все проекты
  Проект Открыт
поиск комментариев в соцсетях и размещение комментариев по теме
Категория: Реклама и Маркетинг, SMM (маркетинг в соцсетях)
18-May-2024
22:04 GMT
Настроить рекламу в соц-сетях
Категория: Интернет продвижение и реклама
18-May-2024
22:04 GMT
Дизайн карточки товара
Категория: Графический дизайн
18-May-2024
21:57 GMT
Маркетинговая работа - написать структуру лендинга с текстами
Категория: Веб разработка
Бюджет: 2000 руб 2024-05-19
18-May-2024
21:35 GMT
Написати огляд на тему "Кращі книги у жанрі фентезі" - 400UAH
Категория: Копирайтинг
18-May-2024
21:31 GMT
Голосовой сервис для линукса
Категория: Программирование, Прототипирование
18-May-2024
21:28 GMT
Розробка мобільного додатку на Bubble, Adalo або Glide
Категория: Гибридные мобильные приложения
18-May-2024
21:26 GMT
Пересылка PDF файлов
Категория: Классическая реклама и маркетинг
Бюджет: 5000 руб 2024-05-19
18-May-2024
21:13 GMT
Сделать освещение для локации в UE5 - 275EUR
Категория: Визуализация и моделирование
18-May-2024
21:11 GMT
Написать игру на Android
Категория: Программирование и IT
18-May-2024
20:50 GMT
Мини API на Python - 4000UAH
Категория: Python
18-May-2024
20:46 GMT
Найти решение уравнения
Категория: Программирование, Прикладное программирование
Бюджет: 3000 руб
18-May-2024
20:43 GMT
анимации
Категория: Арт / Иллюстрации / Анимация
Бюджет: 5000 руб
18-May-2024
20:32 GMT
Набрать Sepolia эфира - 50USD
Категория: Blockchain, Python
18-May-2024
20:28 GMT
Тестировать функционал
Категория: Crypto/NFT
18-May-2024
20:00 GMT
Все проекты
Проекты по навыкам ...
Проекты 'android'
Проекты 'ajax'
Проекты 'asp'
Проекты 'aspnet'
Проекты 'cms'
Проекты 'cpp'
Проекты 'csharp'
Проекты 'css'
Проекты 'delphi'
Проекты 'design'
Проекты 'drupal'
Проекты 'excel'
Проекты 'facebook'
Проекты 'flash'
Проекты 'html'
Проекты 'java'
Проекты 'javascript'
Проекты 'joomla'
Проекты 'iphone'
Проекты 'mysql'
Проекты 'photoshop'
Проекты 'php'
Проекты 'python'
Проекты 'ruby'
Проекты 'seo'
Проекты 'sql'
Проекты 'sysadm'
Проекты 'translate'
Проекты 'typing'
Проекты 'twitter'
Проекты 'vbnet'
Проекты 'xml'
Проекты 'wordpress'
Проекты 'writing'
Проекты 'texts'
Читать RSS-ленты ... Новое!
Проекты 'android'
Проекты 'ajax'
Проекты 'asp'
Проекты 'aspnet'
Проекты 'cms'
Проекты 'cpp'
Проекты 'csharp'
Проекты 'css'
Проекты 'delphi'
Проекты 'design'
Проекты 'drupal'
Проекты 'excel'
Проекты 'facebook'
Проекты 'flash'
Проекты 'html'
Проекты 'java'
Проекты 'javascript'
Проекты 'joomla'
Проекты 'iphone'
Проекты 'mysql'
Проекты 'photoshop'
Проекты 'php'
Проекты 'python'
Проекты 'ruby'
Проекты 'seo'
Проекты 'sql'
Проекты 'sysadm'
Проекты 'translate'
Проекты 'typing'
Проекты 'twitter'
Проекты 'vbnet'
Проекты 'xml'
Проекты 'wordpress'
Проекты 'writing'
Проекты 'texts'
Новое!
Projects in English
Короткий URL:
1001fp.ru
Мобильная версия:
m.1001freelanceprojects.ru
Copyright © 2005-2022 1001 Freelance Projects