Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Розмістіть свій проєкт безплатно та почніть отримувати пропозиції від фрилансерів-виконавців уже через хвилини після публікації!

Создание web-клиента почтового сервиса.


  1. 818    26  0   1
    16 днів10 613 UAH

    Здравствуйте. Заинтересовал ваш проект
    Необходимо обсудить для формирования плана работ, окончательного бюджета и сроков.
    Портфолио тут в профиле : - Freelancehunt

  2. 184    13  1
    5 днів4245 UAH

    Здравствуйте Вячислав, сделаю всё быстро и качественно.
    Имею опыт разработки на Angular TS/JS cli более года в продакшене.
    Пишите, консультаций бесплатные)

  3. 1 ставку приховано
    1 ставку приховано
  • Профіль видалено
    9 вересня 2020, 0:53 |

    это курсовая работа?

  • Профіль видалено
    9 вересня 2020, 10:23 |

    Нет, это часть платформы, которая отвечает за общение технической поддержки и пользователей.

  • Павел Межевикин
    9 вересня 2020, 1:12 |

    А почему web-клиент в названии, а в дано нужно только десктоп? Так веб или десктоп?

  • Профіль видалено
    9 вересня 2020, 10:25 |

    Корректную работу web-клиента нужно обеспечить на компьютерах, телефоны и планшеты не интересуют.

  • Алексей Н.
    9 вересня 2020, 9:24 |

    Протокол общения с беком есть?

    я про описание объектов которые гоняются между ними

  • Профіль видалено
    9 вересня 2020, 12:37 |

    Сокеты


    Запрос:

    {

      requestId: number,

      payload: { [key: string]: any }

    }


    Ответ:

    {

      requestId: number,

      success: boolean,

      error?: string,

      payload?: { [key: string]: any }

    }


    Для удобства можно реализовать ожидание ответа через промисы по requestId с таймаутом.


    Отправка сообщения бэком клиенту (напр., при новом сообщении):

    {

      event: string,

      payload: { [key: string]: any }

    }


    Тут для удобства можно реализовать подписку на события

  • Профіль видалено
    9 вересня 2020, 12:38 |

    Значение requestId генерирует клиент при запросе

    Сервер отвечает на этот запрос с таким же значением requestId

  • Алексей Н.
    9 вересня 2020, 12:56 |

    понял. спасибо.

  • Профіль видалено
    9 вересня 2020, 16:13 |

    как выглядит тикет и как он должен обрабатываться? чем отличается от обычного письма?

    какой почтовый сервер (серверы) используете? внешний или собственный?

  • Профіль видалено
    9 вересня 2020, 19:33 |

    Почтовый сервер собственный.


    Структура письма:

    {

      id: number, // messageId

      from: string,

      to: string,

      date: number, // unix

      subject?: string,

      text: string,

      html?: string,

      checked: boolean

    }


    Отличия тикета в том, что он приходит не в виде сообщения на почту, а через обращение на платформе:

    {

      id: number, // ticketId

      startDate: number,

      endDate?: number,

      from: string,

      subject: string,

      question: string,

      answer?: string

    }


    Отображаться должны в отдельном месте (как будто папка в обычной почте).

    При отправке ответа среди прочего должен передаваться id тикета.


    Ещё:

    есть два варианта тикетов: для зарегистрированных пользователей и для остальных

    (возможно, в дальнейшем, для зарегистрированных пользователей будет больше полей).


    То есть, должны быть следующие папки сообщений:

    - почта (входящие / исходящие);

    - тикеты для пользователей платформы;

    - тикеты для всех остальных.


    Поскольку тикеты подразумевают закрытие после ответа, то для них нужно в одном месте показывать и вопрос, и ответ (при наличии).


    Если было открыто входящее сообщение впервые, нужно отправить данные об этом на сервер

    (checked изменится на true).

    С тикетами такого нет, они считаются прочитанными только после ответа

    (endDate и answer перестанут быть null).


    Также напоминаю, что нужна возможность использовать шаблон для всех видов исходящих сообщений.

    Сам шаблон на сервер передавать не нужно, только текст и название шаблона

    (возможно, в дальнейшем, нужна будет возможность простенького конструктора html, но сейчас текст просто подставляется в указанное место).


    файлы с шаблонами вида


        exports = / export function(body) {

            return `<html>...${body}...</html>`;

        }


    будут.


    И напоследок - примеры payload'ов для общения с сервером:


    interface OutgoingMailData {

        from: string;

        to: string;

        subject?: string;

        text: string;

        template?: string;

    }


    Отправить письмо:

    {

        type: "sendMessage",

        params: OutgoingMailData

    }


    Ответить на тикет:

    {

        type: "answerInnerTicket" | "answerOuterTicket",

        params: OutgoingMailData & {

            ticketId: number

        }

    }


    Письмо прочитано:

    {

        type: "messageChecked",

        params: {

            messageId: number

        }

    }


    Загрузить входящие письма:

    {

        type: "getInboxMessages",

        params: {

            page?: number = 0,

            checked?: boolean = null,


            from?: string,

            to?: string, // для входящих может быть изменён только для суперпользователя

            subject?: string,

            text?: string

        }

    }


    Payload бэка на последнее:

    {

        amount: number, // количество подошедших

        list: MailData[]

    }


    Логика понимания того, какой это пользователь будет позже

Актуальні фриланс-проєкти в категорії Веб-програмування

Переніс сайта з опенкарту на платформу Хорошоп

Добрий день. Є сайт на опенкарті, інтернет магазин. Потрібно перенести струкутуру сайту на платформу хорошоп, підібрати дизайн для нового сайту та зробити його повноцінно працюючим

HTML та CSS верстанняВеб-програмування ∙ 13 хвилин тому ∙ 7 ставок

Внесення правок на сайт (WP, Elementor)

Доброго дня. Треба внести 2 правки на сайт: 1. Мейн меню "пляше" при наведенні курсора, плюс на укр версії воно центровано по вертикалі (так і повинно бути), а в ру - без центровки, зверху. Треба відцентрувати ру як в укр 2. На головній сторінці є блок "наші продукти", там…

Веб-програмування ∙ 2 години 49 хвилин тому ∙ 40 ставок

Необхідно модернізувати для зручності адмінку в Open Cart

Технічне завдання по налаштуванню/доопрацюванню OpenCart 1. Каталог → Товари Завдання 1. Додати колонку «Категорія» у список товарів Завдання 2. Додати колонку «Артикул» у список товарів Завдання 3. Додати колонку «Дата і час створення товару» Завдання 4. Швидке редагування…

Веб-програмування ∙ 3 години 5 хвилин тому ∙ 39 ставок

Доопрацювання каталогу для сайту

Для сайту каталогу потрібно зробити доопрацювання: (роботу можна розбити на етапи чи взяти по кваліфікації частину) 1. в адмінці можливість заливати SQL файли для оновлення цін (в архіві він price_balluff_2026_for_site.sql). (зараз вони залиті програмістом, потрібно на майбутнє,…

AI обробка текстівВеб-програмування ∙ 3 години 13 хвилин тому ∙ 25 ставок

WhatsApp Business API / Meta Cloud API.

Доброго дня. Мені потрібна допомога з офіційним підключенням WhatsApp Business API / Meta Cloud API. Ситуація така: У мене вже є робочий номер WhatsApp Business. Він зараз використовується на телефоні в додатку WhatsApp Business. Видаляти додаток, переносити номер тільки в API…

Веб-програмування ∙ 3 години 57 хвилин тому ∙ 15 ставок

Замовник
Профіль видалено


Проєкт опублікований
5 років тому
96 переглядів