Создание дашбордов — удалённая работа в Москве
Дата: 2025-05-01
Детали
Регион
Москва
Занятость
дистанционно
Стоимость
договорная
Дата публикации
2025-05-01
Описание
Необходимо построить дашборд. Источник данных - таблицы Excel. Предпочтительно использовать Yandex Data Lens, но можно и другие инструменты. Суть дашборда: отображать количество пациентов и свободных мест в мед. организациях. Все данные предоставляются в виде таблиц в формате Excel. Таблицы собираются вручную. Настроить прям обращение к базе данные невозможно, т.к. система закрыта.
Похожие заказы
Программисты 1С
дистанционно
договорная
Настроить, установить, интеграция с сайтом, проконсультировать сотрудников. 1С: Управление торговлей. Версия: 8.3. Есть 1с УТ тонкий клиент. 1С:Предприятие 8.3 [Телефон скрыт]) Товаров ~ 1000 Сама база находится в облаке. Необходимо настроить возможность "отдавать" данные по API с сервисом чат-ботов (Salebot) Сервис чат-ботов работает на Phyton. Сервисом можно делать запросы по API и забирать данные. Нужно настроить возможность забирать данные с 1С по товарам Сейчас все товары в 1С разбиты по группам, нужно забирать по API сервисом данные по товарам, остаткам, наименованию, описанию, фото. 1с тонкий клиент, в облаке есть понимания по API запросам, был опыт настройки и итеграции API запросов. Нужна настройка в 1с возможностью отдавать данные и возможность дать информацию по url запроса, json параметрам.
Калининград
Фрилансеры
2025-08-22
Разработка ботов Telegram
дистанционно
договорная
Задачи чат-бота: информирование клиентов, сбор информации, интерактивное меню или каталог, ответы на типовые вопросы, приём текстовых заказов, автоматическое бронирование, финансовые операции. Продукт: . Техзадания нет. Доброго времени суток, меня зовут Иван, ищу спецов по созданию чат ботов.Желательно с опытом работы и примерами работ (Кейсы / портфолио). Есть пара предложений к вам можете связаться со мной здесь или же написать мне в TG - Inewsunrise. Ожидаю от вас реакции.
Москва
Фрилансеры
2025-08-22
Разработка ботов Telegram
дистанционно
договорная
Задачи чат-бота: сбор информации. Продукт: Яндекс Формы. Техзадание есть. Нужна интеграция Яндекс Формы и телеграмм бота. В яндекс форме находится мини-тест, который проходит клиент, он отвечает на каждое из задание (выбирает определенный ответ), вводит свое имя и тд (Яндекс форма есть), нужно, чтобы эта информация поступала в телеграмм. Я автоматизировал это через Albato, ищу специалиста, который поможет обойтись без сервисов для автоматизации и интеграции.
Москва
Фрилансеры
2025-08-22
Перенос сайта на другую CMS
дистанционно
договорная
Перенос сайта на другой хостинг. Количество страниц: 150. Текущая платформа: Reg. Перенести на: WordPress. Перенести сайт на другой хостинг с использованием того же имени.
Москва
Фрилансеры
2025-08-22
Создание сайтов
дистанционно
договорная
Доставка еды/ланч боксов. Платформа: shopify. Функционал сайта: Простая версия этого сайта https://www.littlespoon.com/. Контента нет.
Москва
Фрилансеры
2025-08-22
Программирование в Excel
дистанционно
договорная
Автоматизация формирования отчётов, анализ и работа с базами данных. Техническое задание есть. Вы описали идеальную архитектуру для сбора конфиденциальных или индивидуальных данных, где каждый участник работает только со своим файлом и не видит других. Это реализуется с помощью Google Forms и Google Apps Script (скриптов). Вот как это работает: --- Общая схема работы 1. Пользователь заполняет общую Google Форму. 2. Скрипт автоматически создает для него персональную Google Таблицу. 3. Скрипт записывает ответы пользователя и ссылку на его персональную таблицу в вашу главную таблицу. 4. Скрипт отправляет пользователю письмо со ссылкой на его личную таблицу. В итоге: · Вы в главной таблице видите все данные и все ссылки на личные файлы. · Каждый пользователь имеет доступ только к своей личной таблице и не видит ни главную таблицу, ни таблицы других людей. --- Пошаговая инструкция по реализации Это более сложный скрипт, но он решает именно вашу задачу. Шаг 1: Подготовка файлов 1. Создайте Главную таблицу (Master Sheet). · Создайте новую Google Таблицу. Это будет ваша база данных. · Создайте заголовки для столбцов, например: Timestamp, Email, Link to Personal Sheet. · Запишите ее ID из URL (длинная строка между /d/ и /edit). 2. Создайте Шаблон личной таблицы (Template Sheet). · Создайте новую Google Таблицу, оформите ее: сделайте заголовки, формулы, инструкции — все, что должен видеть пользователь. · Важно: Не заполняйте ее данными пользователей. Это просто шаблон. · Запишите ее ID. 3. Создайте Google Форму. · Создайте форму, которая будет собирать данные для доступа (как минимум, email). · В настройках формы (шестеренка) включите сбор email-адресов. · Привяжите к форме скрипт: в форме нажмите меню (три точки) -> Редактор скриптов. Шаг 2: Написание скрипта Вставьте этот код в редакторе скриптов, связанном с вашей Формой. Вам нужно будет заменить значения в `CONFIG` на свои. ```javascript // КОНФИГУРАЦИЯ - ЗАМЕНИТЕ ЭТИ ЗНАЧЕНИЯ НА СВОИ const CONFIG = { // ID главной таблицы (из URL) MASTER_SHEET_ID: 'Ваш_ID_Главной_Таблицы', // Имя листа внутри главной таблицы, куда писать данные (обычно "Лист1") MASTER_SHEET_NAME: 'Лист1', // ID таблицы-шаблона (из URL) TEMPLATE_SHEET_ID: 'Ваш_ID_Таблицы_Шаблона', // Папка на Google Диске, куда складывать личные таблицы (необязательно). Оставьте пустым, чтобы файлы создавались в корне. TARGET_FOLDER_ID: '' }; function onFormSubmit(e) { // Получаем ответ из формы var formResponse = e.response; var itemResponses = formResponse.getItemResponses(); var respondentEmail = formResponse.getRespondentEmail(); // Получаем email из настроек формы // Если в форме были другие вопросы, вы можете получить их ответы здесь // var answer1 = itemResponses[0].getResponse(); // 1. СОЗДАЕМ КОПИЮ ШАБЛОНА ДЛЯ ПОЛЬЗОВАТЕЛЯ var personalSheet = createPersonalSheet(respondentEmail); // 2. ЗАПИСЫВАЕМ ДАННЫЕ В ГЛАВНУЮ ТАБЛИЦУ writeToMasterSheet(formResponse, respondentEmail, personalSheet.getUrl()); // 3. ОТПРАВЛЯЕМ ПРИГЛАШЕНИЕ ПОЛЬЗОВАТЕЛЮ НА ЕГО ТАБЛИЦУ sendEmailWithLink(respondentEmail, personalSheet.getUrl()); } function createPersonalSheet(userEmail) { // Открываем шаблон var template = DriveApp.getFileById(CONFIG.TEMPLATE_SHEET_ID); // Создаем имя для новой таблицы var newFileName = 'Моя персональная таблица для ' + userEmail; // Создаем копию шаблона var personalSheetFile = template.makeCopy(newFileName); // Если указана папка, перемещаем файл в нее if (CONFIG.TARGET_FOLDER_ID) { var targetFolder = DriveApp.getFolderById(CONFIG.TARGET_FOLDER_ID); personalSheetFile.moveTo(targetFolder); } // Открываем копию как Google Таблицу var personalSheet = SpreadsheetApp.openById(personalSheetFile.getId()); // Даем пользователю права на редактирование ЭТОЙ таблицы personalSheet.addEditor(userEmail); // Опционально: удаляем права у всех, кроме владельца и пользователя // var editors = personalSheet.getEditors(); // for (var i = 0; i < editors.length; i++) { // if (editors[i].getEmail() != Session.getActiveUser().getEmail()) { // personalSheet.removeEditor(editors[i]); // } // } return personalSheet; } function writeToMasterSheet(formResponse, userEmail, sheetUrl) { // Открываем главную таблицу и нужный лист var masterSheet = SpreadsheetApp.openById(CONFIG.MASTER_SHEET_ID).getSheetByName(CONFIG.MASTER_SHEET_NAME); // Формируем строку для записи: [Время, Email, Ссылка] var timestamp = formResponse.getTimestamp(); var newRow = [timestamp, userEmail, sheetUrl]; // Добавляем строку в конец таблицы masterSheet.appendRow(newRow); } function sendEmailWithLink(userEmail, sheetUrl) { var subject = 'Доступ к вашей персональной таблице'; var body = 'Здравствуйте! Ваша персональная таблица готова. ' + 'Перейдите по ссылке, чтобы начать работу: ' + sheetUrl; MailApp.sendEmail(userEmail, subject, body); } ``` Шаг 3: Настройка триггера Как и в первом примере, вы должны настроить триггер для функции onFormSubmit, чтобы она запускалась При отправке формы. --- Что получится в итоге? Действие пользователя Результат 1. Пользователь заполняет форму и указывает email. 2. Скрипт создает копию шаблона, дает права на нее пользователю, записывает данные в вашу главную таблицу и шлет email. 3. Пользователь получает письмо со ссылкой. 4. Он переходит по ссылке и видит только свою личную таблицу. Он даже не подозревает о существовании главной таблицы и таблиц других участников. 5. Вы открываете свою Главную таблицу. 6. Вы видите список всех участников, их email и прямые ссылки на их личные таблицы. У вас есть полный контроль и обзор над всем процессом. Это мощная, профессиональная и очень надежная схема для управления данными множества пользователей, полностью соответствующая вашим требованиям.
Москва
Фрилансеры
2025-08-21
Программисты
дистанционно
договорная
Разработка приложений для ПК. Разработка с нуля. Добрый вечер Подзадача 1.1: Написать скрипт-обертку, который запускает Panaroo и затем фильтрует его результаты. Вход: 5 обновленных GFF-файлов. Что должен делать скрипт: 1. Запустить Panaroo с указанными параметрами (например, panaroo -i ./results/reannotated_gffs/*.gff -o ./results/panaroo_output --clean-mode strict -t 6 --aligner mafft). 2. После завершения работы Panaroo, прочитать его выходной файл gene_presence_absence.csv. 3. Отфильтровать этот файл по двум критериям: Консервативность: "No. isolates" ≥ 3 (или 4, этот параметр должен быть настраиваемым). Гипотетичность: "Annotation" содержит ключевые слова "hypothetical protein", "unknown function", "uncharacterized protein". Выход: Один текстовый файл со списком ID ортогрупп, которые являются КГО, и, возможно, CSV-файл с отфильтрованной таблицей из Panaroo • Подзадача 1.2: Написать Python-скрипт, который для белков из списка КГО автоматизирует поиск известных белковых доменов. • Вход: Список ID ортогрупп КГО. Файлы с аминокислотными последовательностями (.faa). • Что должен делать скрипт: 1. Прочитать список КГО. 2. Для каждой КГО извлечь последовательности всех белков, входящих в нее. 3. Для каждой белковой последовательности запустить InterProScan (предпочтительно) или hmmscan(из пакета HMMER) против базы Pfam. 4. Собрать и спарсить результаты. Вывод должен быть очищен и представлен в удобном табличном формате. • Выход: Один или несколько TSV-файлов, где для каждого белка из КГО указаны: ID белка. ID ортогруппы (КГО). Найденные домены (например, ID из Pfam/InterPro). Описание домена. Координаты домена на белке. Статистическая значимость (E-value). • Подзадача 1.3: Написать Python-скрипт, который автоматизирует предсказание 3D-структур для белков из КГО и поиск их структурных аналогов. • Вход: Список ID ортогрупп КГО. Файлы с аминокислотными последовательностями (.faa). • Что должен делать скрипт: 1. Для каждой КГО извлечь последовательности белков. 2. Для каждой уникальной последовательности (или для репрезентативной последовательности каждой КГО) запустить ColabFold (через API или локально) или локальный AlphaFold2 для предсказания 3D-структуры. 3. После получения PDB-файлов со структурами, для каждой структуры запустить Foldseek для поиска по базам PDB и/или AlphaFold DB. 4. Спарсить результаты Foldseek, сохранив информацию о лучших структурных аналогах. • Выход: Папка со сгенерированными PDB-файлами (.pdb) и файлами с оценкой качества (pLDDT). TSV-файл с результатами поиска структурных аналогов, содержащий колонки: ID белка. ID ортогруппы (КГО). Лучший структурный аналог (PDB ID). Описание/функция аналога. Метрики сходства (TM-score, E-value). • Подзадача 1.4: Написать Python-скрипт, который для каждого гена из КГО анализирует его генное окружение. Вход: Список ID ортогрупп КГО и генов, входящих в них (можно получить из вывода Panaroo, например, из gene_data.csv). 5 обновленных GFF-файлов. Что должен делать скрипт: 1. Для каждого гена, входящего в КГО, определить, в каком из 5 фаговых геномов он находится. 2. Открыть соответствующий GFF-файл. 3. Найти этот ген и извлечь информацию о его соседях (например, 5 генов "вверх" по координатам и 5 генов "вниз"). 4. Для каждого соседа сохранить его locus_tag, product (аннотацию) и направление транскрипции (strand). 5. Собрать эту информацию для всех генов из одной КГО. Выход: Текстовый отчет или TSV-файл, где для каждой КГО будет представлен анализ ее геномного окружения во всех фагах, где она присутствует. Например: ID ортогруппы (КГО). ID фага. Соседи "вверх" (их аннотации). Ген из КГО. Соседи "вниз" (их аннотации). (Повторяется для каждого фага, где есть эта КГО).
Москва
Фрилансеры
2025-08-21