Problema técnico do Grupo Mail.ru 2019

Problema técnico do Grupo Mail.ru 2019

No final de maio, nossos graduados do Technopark (Bauman MSTU), Technotrack (MIPT), Technosphere (Lomonosov Moscow State University) e Technopolis (Peter the Great St. Petersburg Polytechnic University) defenderam seus projetos de diploma. Foram alocados três meses para o trabalho, e os rapazes investiram na ideia os conhecimentos e habilidades adquiridos ao longo de dois anos de estudo.

No total, foram 13 projetos de defesa, resolvendo diversos problemas em diversos setores. Por exemplo:

  • armazenamento em nuvem com criptografia criptográfica de arquivos;
  • plataforma para criação de vídeos interativos (com finais diversos);
  • tabuleiro inteligente para jogar xadrez real pela rede;
  • arquitetura para recuperação inteligente de artigos médicos;
  • Software para ensinar a crianças do ensino fundamental os fundamentos da algoritmização.

Além de projetos de unidades de negócios:

  • Sistema CRM para mensageiro TamTam;
  • serviço web para pesquisa de fotos temáticas no mapa de Odnoklassniki;
  • serviço de geocodificação de endereços para MAPS.ME.

Hoje contaremos com mais detalhes sobre cinco projetos de nossos graduados.

Pesquisa inteligente de artigos médicos

Problema técnico do Grupo Mail.ru 2019

Existem muitas áreas no campo científico, em cada uma das quais são realizadas pesquisas, um grande número de artigos são publicados em diversas revistas. São tecnologia da informação, física, matemática, biologia, medicina e muitos outros.

Autores projeto decidiu focar na área médica. Quase todos os artigos sobre temas médicos são coletados no portal PubMed. O portal oferece sua própria pesquisa. No entanto, as suas capacidades são muito limitadas. Portanto, a galera melhorou o sistema de busca, adicionou suporte para consultas longas e a capacidade de refinar consultas usando modelagem de tópicos.

Problema técnico do Grupo Mail.ru 2019
O SERP contém uma lista ordenada de documentos com seus tópicos definidos, e palavras e termos relacionados a esses tópicos são destacados por meio de modelagem probabilística de tópicos. O usuário pode clicar nos termos destacados para restringir a consulta de pesquisa.

Problema técnico do Grupo Mail.ru 2019
Para agilizar a pesquisa no enorme banco de dados PubMed, os autores escreveram seu próprio mecanismo de busca que pode ser facilmente integrado a qualquer infraestrutura.

A busca é realizada em três etapas:

  1. Os documentos candidatos são selecionados usando um índice reverso.
  2. Os candidatos são ordenados pelo algoritmo BM25F, que leva em consideração diversos campos dos documentos durante a busca. Assim, as palavras do título têm mais peso do que as palavras do resumo.
  3. Um sistema de cache também é usado para acelerar o processamento de solicitações frequentes.

Problema técnico do Grupo Mail.ru 2019

Arquitetura de microsserviços:

Problema técnico do Grupo Mail.ru 2019
Basicamente, os dados de texto estruturado são transferidos entre serviços. Para altas velocidades de transferência, é usado GRPC - uma estrutura para conectar módulos em uma arquitetura de microsserviços. A serialização de dados também é usada usando o formato de troca de mensagens Protobuf.

Quais componentes o sistema inclui:

  • Servidor para processar solicitações recebidas de usuários em Node.js.
  • Solicitações de balanceamento de carga usando o servidor proxy nginx.
  • O servidor Flask implementa a API REST e recebe solicitações encaminhadas do Node.js.
  • Todos os dados brutos e processados, bem como informações de consulta, são armazenados no MongoDB.
  • Todas as solicitações de resultados relevantes para tematização de documentos vão para RabbitMQ.

Exemplo de resultados de pesquisa:

Problema técnico do Grupo Mail.ru 2019

O que planejamos fazer a seguir:

  • Recomendações ao compilar revisões sobre um determinado tópico (identificar tópicos importantes em um documento e pesquisar subconjuntos de documentos).
  • Pesquise arquivos PDF.
  • Segmentação semântica de texto.
  • Acompanhe tópicos e tendências ao longo do tempo.

Equipe do projeto: Fedor Petryaykin, Vladislav Dorozhinsky, Maxim Nakhodnov, Maxim Filin

Registro de blocos

Problema técnico do Grupo Mail.ru 2019

Hoje, ao ensinar programação e ciência da computação, as crianças em idade escolar primária (5ª a 7ª séries) têm problemas para dominar o material. Além disso, se os alunos quiserem realizar as tarefas em casa, terão de instalar software adicional nos seus computadores. Os professores têm que verificar um grande número de soluções semelhantes para problemas e, no caso do ensino remoto, também têm que desenvolver uma metodologia para receber as tarefas dos alunos.

Os autores do projeto Block Log chegaram à conclusão: ao ensinar às crianças em idade escolar os fundamentos da algoritmização, a ênfase não deve ser na memorização de comandos da linguagem de programação, mas na construção de diagramas de algoritmos. Isso permitirá que os alunos gastem tempo e esforço projetando um algoritmo, em vez de digitar estruturas sintáticas complicadas.

Plataforma Registro de blocos permite que você:

  1. Crie e edite fluxogramas.
  2. Execute os fluxogramas criados e veja o resultado do seu trabalho (dados de saída).
  3. Salve e carregue os projetos criados.
  4. Desenhe imagens raster (gerando uma imagem com base em um algoritmo criado pela criança).
  5. Receba informações sobre a complexidade do algoritmo criado (com base no número de operações realizadas no algoritmo).

Espera-se uma divisão de funções entre professores e alunos. Qualquer usuário recebe o status de aluno; para obter o status de professor, você deve entrar em contato com o administrador do sistema. O professor pode não apenas inserir descrições e condições dos problemas, mas também criar testes automatizados que serão lançados automaticamente quando um aluno enviar uma solução para o problema no sistema.

Editor de log de bloco do navegador:

Problema técnico do Grupo Mail.ru 2019

Após resolver o problema, o aluno pode baixar a solução e ver os resultados:

Problema técnico do Grupo Mail.ru 2019

A plataforma consiste em uma aplicação front-end em Vue.js e uma aplicação back-end em Ruby on Rails. PostgreSQL é usado como banco de dados. Para simplificar a implantação, todos os componentes do sistema são empacotados em contêineres Docker e montados usando Docker Compose. A versão desktop do Block Log é baseada na estrutura Electron. Webpack foi usado para construir o código JavaScript.

Equipe do projeto: Alexander Barulev, Maxim Kolotovkin, Kirill Kucherov.

Sistema CRM para mensageiro TamTam

Problema técnico do Grupo Mail.ru 2019

CRM é uma ferramenta para interação conveniente entre empresas e usuários TamTam. As seguintes funções foram implementadas:

  • Um construtor de bot que permite criar bots sem habilidades de programação. Em poucos minutos você pode obter um bot totalmente funcional que pode não apenas mostrar algumas informações aos usuários, mas também coletar dados, incl. arquivos que o administrador pode visualizar posteriormente.
  • RSS. Você pode conectar facilmente RSS a qualquer canal.
  • Postagem atrasada. Permite enviar e excluir mensagens em horários predefinidos.

A equipe também participou dos testes da API do Bot, criando diversos bots de autoria própria, como um bot para a Copa do Mundo de Hóquei 2019, um bot para registro/autorização em nosso serviço e um bot para CI/CD.

Infraestrutura da solução:

  • O servidor de gerenciamento contém um sistema de monitoramento para cada servidor e cada contêiner Docker nele contido, a fim de detectar e resolver um problema de forma rápida e conveniente, visualizar diversas métricas e estatísticas de uso. Existe também um sistema para gerenciamento remoto da configuração de nossa aplicação.
  • O servidor temporário contém a versão atual da nossa aplicação, disponível para testes gerais pela equipe de desenvolvimento.
  • Os servidores de gerenciamento e teste estão disponíveis apenas via VPN para desenvolvedores, e o servidor de produção contém a versão de lançamento do aplicativo. Ele está isolado das mãos dos desenvolvedores e está disponível apenas para o usuário final.
  • O sistema CI/CD foi implementado usando Github e Travis, notificação usando um bot customizado no TamTam.

Problema técnico do Grupo Mail.ru 2019

A arquitetura do aplicativo é uma solução modular. O aplicativo, banco de dados, gerenciador de configuração e monitoramento são lançados em contêineres Docker separados, o que permite abstrair do ambiente de inicialização, alterar ou reiniciar um contêiner separado. A criação de uma topologia de rede e o gerenciamento de contêineres são feitos usando Docker Compose.

Problema técnico do Grupo Mail.ru 2019

Equipe do projeto: Alexey Antufiev, Egor Gorbatov, Alexey Kotelevsky.

ForkMe

Problema técnico do Grupo Mail.ru 2019

O projeto ForkMe é uma plataforma para assistir vídeos interativos, onde você pode criar seu próprio vídeo e mostrá-lo para seus amigos. Por que precisamos de vídeos interativos se existem vídeos regulares?

O enredo não linear do vídeo e a possibilidade de escolher a continuação permitem o envolvimento do espectador, e os criadores de conteúdo poderão mostrar histórias únicas, cujo enredo será influenciado pelos usuários. Além disso, os criadores de conteúdo, ao estudarem as estatísticas de conversão de vídeos, poderão entender o que mais interessa ao público e tornar os materiais mais atrativos.

Ao desenvolver o projeto, a galera se inspirou no filme interativo Bandersnatch da Netflix, que recebeu muitas visualizações e boas críticas. Quando o MVP já estava escrito, apareceu a notícia de que o Youtube planejava lançar uma plataforma para séries interativas, o que mais uma vez confirma a popularidade dessa direção.

O MVP inclui: player interativo, construtor de vídeo, pesquisa por conteúdo e tags, coleções de vídeos, comentários, visualizações, classificações, canais e perfis de usuários.

Problema técnico do Grupo Mail.ru 2019

Pilha de tecnologia usada no projeto:

Problema técnico do Grupo Mail.ru 2019

Como está previsto o desenvolvimento do projeto:

  • coleta de estatísticas e infográficos sobre transições para vídeo;
  • notificações e mensagens pessoais para usuários do site;
  • versões para Android e iOS.

Depois disso, planejamos adicionar:

  • criando histórias em vídeo a partir do seu telefone;
  • editar fragmentos de vídeo baixados (por exemplo, cortar);
  • criação e lançamento de publicidade interativa no player.

Equipe do projeto: Maxim Morev (desenvolvedor fullstack, trabalhou na arquitetura do projeto) e Roman Maslov (desenvolvedor fullstack, trabalhou na concepção do projeto).

On-line-a bordo

Problema técnico do Grupo Mail.ru 2019

Problema técnico do Grupo Mail.ru 2019

Hoje, os pais prestam muita atenção ao desenvolvimento mental dos filhos e as crianças se interessam por jogos intelectuais. Portanto, o xadrez está ganhando popularidade novamente. E embora o xadrez em geral seja bastante popular, encontrar um adversário regular para os jogos é problemático. Portanto, muitas pessoas utilizam serviços de xadrez online, apesar de muitos jogadores preferirem jogar “ao vivo” com peças reais. Porém, ao jogar xadrez, a pessoa faz muito esforço mental e fica cansada, e esse cansaço é complementado pelo impacto negativo de sentar em frente ao computador ou smartphone. Como resultado, o cérebro fica sobrecarregado após apenas dois jogos.

Todos esses fatores levaram os autores à ideia do projeto On-Line-On-Board, que consiste em três partes: um tabuleiro de xadrez físico, um aplicativo desktop e um serviço web. O tabuleiro é um campo de xadrez normal, que reconhece a posição das peças e, com a ajuda de uma indicação luminosa, indica os movimentos do adversário. A placa é conectada via USB a um PC e se comunica com o aplicativo de desktop. No modo treino (e para crianças), seus possíveis movimentos ficam em destaque.

A aplicação assume as funções básicas de gestão da placa, o que permite reduzir significativamente o seu custo e trazer a implementação da maioria das funções para o nível do software. A aplicação se comunica com um serviço web cujo principal valor é a atualização dinâmica.

Cenário principal de utilização do produto: uma pessoa joga no serviço, a segunda em uma placa física conectada ao serviço. Ou seja, o serviço assume uma função comunicativa.

Equipe do projeto: Daniil Tuchin, Anton Dmitriev, Sasha Kuznetsov.

Você pode ler mais sobre nossos projetos educacionais em este link. E visite o canal com mais frequência Technostream, novos vídeos educacionais sobre programação, desenvolvimento e outras disciplinas aparecem regularmente lá.

Fonte: habr.com

Adicionar um comentário