Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Post your project for free and start receiving proposals from freelancers within minutes after publication!

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


  1. 818    26  0   1
    16 days255 USD

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

  2. 184    13  1
    5 days102 USD

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

  3. 1 proposal concealed
    1 proposal concealed
  • Profile deleted
    9 September 2020, 0:53 |

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

  • Profile deleted
    9 September 2020, 10:23 |

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

  • Pavel Mezhevikin
    9 September 2020, 1:12 |

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

  • Profile deleted
    9 September 2020, 10:25 |

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

  • Aleksey N.
    9 September 2020, 9:24 |

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

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

  • Profile deleted
    9 September 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 }

    }


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

  • Profile deleted
    9 September 2020, 12:38 |

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

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

  • Aleksey N.
    9 September 2020, 12:56 |

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

  • Profile deleted
    9 September 2020, 16:13 |

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

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

  • Profile deleted
    9 September 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[]

    }


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

Current freelance projects in the category Web Programming

Improvement of the catalog for the website

For the catalog website, improvements need to be made: (the work can be divided into stages or taken by qualification part) 1. In the admin panel, the ability to upload SQL files for updating prices (in the archive it is price_balluff_2026_for_site.sql). (currently they are…

AI Content CreationWeb Programming ∙ 5 minutes back ∙ 1 proposal

Part-Time English-Speaking Communication Specialist

2000 USD

Position Type: Part-Time Hours: Flexible, a few hours per day Location: RemoteAbout the Role We are seeking a confident and energetic individual with excellent English communication skills to join our team on a part-time basis. The ideal candidate is passionate, engaging, and…

Script WritingWeb Programming ∙ 16 minutes back ∙ 1 proposal

WhatsApp Business API / Meta Cloud API.

Hello. I need help with the official connection of WhatsApp Business API / Meta Cloud API. The situation is as follows: I already have a working WhatsApp Business number. It is currently used on a phone in the WhatsApp Business app. I do not want to delete the app, transfer the…

Web Programming ∙ 49 minutes back ∙ 10 proposals

Shopify accounts

I'm looking for a person to set up an existing children's furniture store; the store has not yet been operational but is partially filled.

Web Programming ∙ 1 hour 3 minutes back ∙ 9 proposals

Remote setup and launch of an interactive wall (Unity / TouchDesigner / Kinect)

About the ProjectAn interactive children's wall is being created in a room. Equipment: • Acer H6518STi projector (short throw) • Kinect for Xbox One (Kinect v2) • PC running Windows • Projection on a wall approximately 3 × 2 m It is necessary to remotely configure the…

AR & VR DevelopmentWeb Programming ∙ 1 hour 11 minutes back ∙ 2 proposals

Client
Profile deleted


Project published
5 years back
96 views