Доработка сайта на CMS Subdreamer
Разработка внутреннего мессенджера
Общий функционал похож на скайп.
Слева контакты: пользователи, групповые чаты, "прикрепленные" чаты (обсуждения объектов, задач, событий, формируемых в других модулях), а также - в дальнейшем - контакты, подтянутые из сторонних мессенджеров по API. Сортировка - по важности и хронологии. Т.е. сообщения, помеченные как "экстренные" и "срочные" выталкивают контакт наверх, независимо от того, сколько "обычных" сообщений пришло позже.
Все однажды начатые чаты хранятся в отдельной таблице и не удаляются (но могут быть помечены как "удаленные" юзером с соответствующими правами и не показываться в списке контактов).
Каждый чат хранит следующую инфу:
- ID
- Тип чата (ниже)
- id автора (создателя чата)
- Тип объекта, к которому "привязан" чат (типы - отдельная таблица), 0 - ни к чему не привязан. Чат, привязанный к объекту 1, привязанный к объекту 2 и не привязанный ни к чему - это три разных чата, даже если участники одни и те же.
- ID объекта (может быть пустым)
- Время создания
- Время последнего сообщения
- список участников (отд. таблица).
Типы чатов:
- Диалог (юзер-юзер) - создается, как только один юзер написал другому.
- Групповой - создается юзером по соответствующей кнопке "создать групповой чат" с последующим выбором участников. В чат можно добавлять участников в процессе, при этом он становится групповым. Если чат до этого был диалогом, диалог сохраняется неизменным, и формируется новый (пустой) групповой чат.
- Привязанный - то же, что и групповой, но создается "извне".
Каждый юзер в системе имеет реквизиты своих мессенджеров, доступных по API, и может добавлять в чат контакты оттуда. Т.е. если в чате юзер1 и юзер2, затем юзер2 добавил своего абонента из ватсапа, то в чате участвуют трое, все сообщения попадают в чат и отсылаются в мессенджер добавленному абоненту.
Поскольку интеграция с мессенджерами будет выполняться позже, сейчас нужно предусмотреть следующий функционал:
- таблица с типами мессенджеров: ID, название.
- таблица с их реквизитами для юзеров: id юзера. id мессенджера. логин, пароль, дополнительные дланные (пока просто текстовое поле, что и как там будем хранить - будет зависеть от мессенджера).
- Таблица с внешними контактами: юзер, мессенджер, имя контакта, доп инфа (свободное текстовое поле).
- функция получения контактов юзера из выбранного мессенджера и функция отправки сообщения через выбранный мессенджер с аккаунта юзера определенному контакту - пока просто заготовки, пусть возвращают false.
Функция создания чата должна принимать параметры: тип чата, тип объекта, id объекта, id юзера, список юзеров-участников, список "сторонних" контактов. Обязательный параметр - только тип. Возвращает ID созданного чата.
Переписка: обычный текст, тэги сообщения (отдельная строка с функцией автозаполнения. можно последовательно выбрать несколько тэгов) плюс отправка файлов. Файлы складируются в папке attachments/files_messenger. В базе фиксируется каждое сообщение: id чата, юзера-отправителя, стороннего контакта-отправителя, дата-время (все даты в timestamp), id файла, приоритет. Для файлов отдельная таблица: id, источник (пока пусть будет 1 - чат, дальше будут и другие), оригинальное название, "внутреннее" название (формируется при сохранении, можно использовать uniquid или что-то другое, обеспечивающее уникальность) - под этим именем файл сохраняется на диске.
Приоритет - обычное, срочное, экстренное.
Настройки доступа: Есть специальный модуль plugins/p1001_options, страница nastrojki.html, где можно создать свой набор настроек, задаваемых отдельно для каждой группы пользователей. Эти настройки попадают в таблицы qx2_plugin_options (собственно описание настроек) и qx2_plugin_optval (их значения для групп). Дальше их можно использовать внутри плагина. При помощи этих настроек нужно организовать права доступа:
- управление списком чатов: видны все чаты, фильтрация и сортировка по пользователю, типу/id объекта, дате создания, дате последнего сообщения. Возможность удалять чаты (не удалять физически. а помечать в базе как "удаленные", после чего юзеры перестают их видеть, но управляющий может восстановить)
- отправка срочных и экстренных сообщений
Функции, используемые извне: создание чата (уже описывал), отправка сообщения в чат - указывается id чата, юзера-отправителя (0 - системное), собственно сообщение (текст, тэги, файл, статус). Возвращает true|false
проверка новых сообщений для пользователя. Как лучше организовать (признак "прочитано", по времени захода юзера в чат/последнего сообщения в чате, или как-то еще) - без разницы, главное, чтобы функция возвращала ID сообщений, которых юзер еще не видел.
Актуальные фриланс-проекты в категории Веб-программирование
Создать небольшой сайт
15 000 UAH
Главный экран После входа пользователь попадает в личный кабинет. Дизайн выполнен в стиле современной криптовалютной биржи (Binance, Bybit, OKX). На главной странице отображаются: Общий баланс. Доход за сегодня. Доход за неделю. Доход за месяц. Общая прибыль. В центре страницы… HTML и CSS верстка, Веб-программирование ∙ 9 минут назад ∙ 27 ставок |
Разработка современного SEO-сайта для кофейного фудтрака
44 923 UAH
Ищу опытного разработчика, который создаст современный сайт для мобильной кофейни в США с учетом требований SEO. Текущий сайт уже существует, но требуется разработать новый сайт с нуля, ориентированный на долгосрочное продвижение в Google. Что необходимо: • Разработка… Веб-программирование ∙ 7 часов 22 минуты назад ∙ 72 ставки |
Создать плагин для Chrome, для подключение к проксиСоздать плагин для Chrome, для подключение к прокси ищу разработчка, возможно + ИИ который уже публиковал подобные плагины в сторе успешно просто ии написание без опыта в разработке не нужно пишите предложения по цене, срокам AI и машинное обучение, Веб-программирование ∙ 23 часа 46 минут назад ∙ 27 ставок |
Тик Ток Лайв node.je
700 UAH
Необходимо написать мини-программу на базе библиотеки TT-live-connector, чтобы при запуске она считывала Подарки, которые отправляются, и через обычную веб-страницу показывала плавную и красивую анимацию Веб-программирование ∙ 1 день 13 часов назад ∙ 29 ставок |
Создание сайта для бухгалтерской фирмы на WordPress (на готовом шаблоне)
25 000 UAH
Добрый день. Мы бухгалтерская фирма - хотим создать сайт для бухгалтерской фирмы на WordPress (на готовом шаблоне) на двух языках. Он будет оптимизирован под поиск Google и SEO. Веб-программирование ∙ 2 дня 18 часов назад ∙ 112 ставок |