Edición técnica de Mail.ru Group 2019

Edición técnica de Mail.ru Group 2019

A finais de maio, os nosos graduados de Technopark (Bauman MSTU), Technotrack (MIPT), Technosphere (Lomonosov Moscow State University) e Technopolis (Peter the Great St. Petersburg Polytechnic University) defenderon os seus proxectos de diploma. Destináronse tres meses para traballar, e os mozos investiron na súa creación os coñecementos e habilidades adquiridos ao longo de dous anos de estudo.

En total, foron 13 os proxectos de defensa, solucionando diversos problemas en diferentes industrias. Por exemplo:

  • almacenamento na nube con cifrado de ficheiros criptográficos;
  • plataforma para crear vídeos interactivos (con diferentes finais);
  • taboleiro intelixente para xogar ao xadrez real a través da rede;
  • arquitectura para a recuperación intelixente de artigos médicos;
  • Software para ensinar aos nenos de primaria os conceptos básicos de algoritmos.

Así como proxectos das unidades de negocio:

  • sistema CRM para TamTam messenger;
  • servizo web para buscar fotos temáticas no mapa de Odnoklassniki;
  • servizo de xeocodificación de enderezos para MAPS.ME.

Hoxe imos contarvos con máis detalle cinco proxectos dos nosos graduados.

Busca intelixente de artigos médicos

Edición técnica de Mail.ru Group 2019

Hai moitas áreas no campo científico, en cada unha das cales se realizan investigacións, publícanse un gran número de artigos en diversas revistas. Trátase de tecnoloxías da información, física, matemáticas, bioloxía, medicina e moitos outros.

Autores o proxecto decidiu centrarse no campo médico. Case todos os artigos sobre temas médicos recóllense no portal PubMed. O portal ofrece a súa propia busca. Non obstante, as súas capacidades son moi limitadas. Polo tanto, os mozos melloraron o sistema de busca, engadiron soporte para consultas longas e a posibilidade de refinar as consultas mediante o modelado de temas.

Edición técnica de Mail.ru Group 2019
O SERP contén unha lista clasificada de documentos cos seus temas definidos, e as palabras e os termos relacionados con estes temas destacan mediante o modelado probabilístico de temas. O usuario pode facer clic nos termos destacados para restrinxir a consulta de busca.

Edición técnica de Mail.ru Group 2019
Para facer a busca rápida na enorme base de datos de PubMed, os autores escribiron o seu propio motor de busca que se pode integrar facilmente en calquera infraestrutura.

A busca realízase en tres etapas:

  1. Os documentos candidatos son seleccionados mediante un índice inverso.
  2. Os candidatos clasifícanse mediante o algoritmo BM25F, que ten en conta varios campos dos documentos durante a busca. Así, as palabras do título teñen máis peso que as palabras do resumo.
  3. Tamén se utiliza un sistema de caché para acelerar o procesamento de solicitudes frecuentes.

Edición técnica de Mail.ru Group 2019

Arquitectura de microservizos:

Edición técnica de Mail.ru Group 2019
Basicamente, os datos de texto estruturados transfírense entre servizos. Para altas velocidades de transferencia, úsase GRPC, un marco para conectar módulos nunha arquitectura de microservizos. A serialización de datos tamén se usa usando o formato de intercambio de mensaxes Protobuf.

Que compoñentes inclúe o sistema:

  • Servidor para procesar solicitudes de usuarios entrantes en Node.js.
  • Solicitudes de equilibrio de carga usando o servidor proxy nginx.
  • O servidor Flask implementa a API REST e recibe solicitudes enviadas desde Node.js.
  • Todos os datos en bruto e procesados, así como a información de consulta, almacénanse en MongoDB.
  • Todas as solicitudes de resultados relevantes para a tematización do documento van a RabbitMQ.

Exemplo de resultados da busca:

Edición técnica de Mail.ru Group 2019

O que pensamos facer a continuación:

  • Recomendacións á hora de compilar recensións sobre un determinado tema (identificar temas importantes nun documento e buscar en subconxuntos de documentos).
  • Busca ficheiros PDF.
  • Segmentación de textos semánticos.
  • Rastrexa os temas e as tendencias ao longo do tempo.

Equipo do proxecto: Fedor Petryaykin, Vladislav Dorozhinsky, Maxim Nakhodnov, Maxim Filin

Rexistro de bloques

Edición técnica de Mail.ru Group 2019

Hoxe, cando ensinan programación e informática, os nenos de primaria (5º-7º) teñen problemas para dominar o material. Ademais, se os estudantes queren realizar tarefas na casa, teñen que instalar software adicional nos seus ordenadores. O profesorado ten que comprobar un gran número de solucións semellantes a problemas e, no caso da aprendizaxe a distancia, tamén teñen que desenvolver unha metodoloxía para recibir traballos dos alumnos.

Os autores do proxecto Block Log chegaron á conclusión: cando se ensinan aos nenos en idade de primaria os conceptos básicos da algoritmo, a énfase non debe poñerse na memorización de comandos da linguaxe de programación, senón na construción de diagramas de algoritmos. Isto permitirá que os estudantes dediquen tempo e esforzo a deseñar un algoritmo, en lugar de escribir estruturas sintácticas engorrosas.

Plataforma Rexistro de bloques permite:

  1. Crear e editar diagramas de fluxo.
  2. Executar os diagramas de fluxo creados e ver o resultado do seu traballo (datos de saída).
  3. Garda e carga os proxectos creados.
  4. Debuxar imaxes ráster (xerando unha imaxe baseada nun algoritmo creado polo neno).
  5. Recibir información sobre a complexidade do algoritmo creado (en función do número de operacións realizadas no algoritmo).

Espérase unha división de roles en profesorado e alumnado. Calquera usuario recibe o status de alumno; para obter o status de profesor, debes contactar co administrador do sistema. O profesor non só pode introducir descricións e condicións dos problemas, senón que tamén pode crear probas automatizadas que se lanzarán automaticamente cando un alumno envía unha solución ao problema ao sistema.

Editor de rexistro de bloques do navegador:

Edición técnica de Mail.ru Group 2019

Despois de resolver o problema, o alumno pode descargar a solución e ver os resultados:

Edición técnica de Mail.ru Group 2019

A plataforma consta dunha aplicación front-end en Vue.js e unha aplicación back-end en Ruby on Rails. PostgreSQL úsase como base de datos. Para simplificar o despregamento, todos os compoñentes do sistema están empaquetados en contedores Docker e montados mediante Docker Compose. A versión de escritorio de Block Log baséase no framework Electron. Utilizouse Webpack para construír o código JavaScript.

Equipo do proxecto: Alexander Barulev, Maxim Kolotovkin, Kirill Kucherov.

Sistema CRM para TamTam messenger

Edición técnica de Mail.ru Group 2019

CRM é unha ferramenta para a interacción cómoda entre as empresas e os usuarios de TamTam. Implementáronse as seguintes funcións:

  • Un construtor de bots que che permite crear bots sen habilidades de programación. En poucos minutos podes obter un bot que funcione completamente que non só pode mostrar algunha información aos usuarios, senón que tamén recolle datos, incl. ficheiros que o administrador pode ver máis tarde.
  • RSS. Podes conectar facilmente RSS a calquera canle.
  • Publicación atrasada. Permítelle enviar e eliminar mensaxes a horas predeterminadas.

O equipo tamén participou na proba da API de Bot, creando varios bots escritos por si mesmo, como un bot para a Copa do Mundo de Hockey 2019, un bot para o rexistro/autorización no noso servizo e un bot para CI/CD.

Infraestrutura da solución:

  • O servidor de xestión contén un sistema de seguimento para cada servidor e cada contenedor Docker para detectar un problema de forma rápida e cómoda e solucionalo, ver varias métricas e estatísticas de uso. Tamén hai un sistema para a xestión remota da configuración da nosa aplicación.
  • O servidor de preparación contén a versión actual da nosa aplicación, dispoñible para probas xerais polo equipo de desenvolvemento.
  • Os servidores de xestión e posta en escena só están dispoñibles a través de VPN para os desenvolvedores e o servidor de produción contén a versión de lanzamento da aplicación. Está illado das mans dos desenvolvedores e só está dispoñible para o usuario final.
  • O sistema CI/CD implementouse mediante Github e Travis, a notificación mediante un bot personalizado en TamTam.

Edición técnica de Mail.ru Group 2019

A arquitectura da aplicación é unha solución modular. A aplicación, a base de datos, o xestor de configuración e o seguimento lánzanse en contedores Docker separados, o que lle permite abstraerse do ambiente de lanzamento, cambiar ou reiniciar un contedor separado. A creación dunha topoloxía de rede e a xestión de contedores realízase mediante Docker Compose.

Edición técnica de Mail.ru Group 2019

Equipo do proxecto: Alexey Antufiev, Egor Gorbatov, Alexey Kotelevsky.

ForkMe

Edición técnica de Mail.ru Group 2019

O proxecto ForkMe é unha plataforma para ver vídeos interactivos, onde podes crear o teu propio vídeo e mostrarllo aos teus amigos. Por que necesitamos vídeos interactivos se os hai regulares?

A trama non lineal do vídeo e a posibilidade de escoller a continuación por si mesmos permiten que o espectador participe, e os creadores de contidos poderán mostrar historias únicas, cuxa trama estará influenciada polos usuarios. Ademais, os creadores de contidos, ao estudar as estatísticas de conversión de vídeos, poderán comprender o que máis interesa ao público e facer que os materiais sexan máis atractivos.

Ao desenvolver o proxecto, os mozos inspiráronse na película interactiva Bandersnatch de Netflix, que recibiu moitas visitas e boas críticas. Cando xa estaba escrito o MVP, apareceu a noticia de que Youtube planeaba lanzar unha plataforma para series interactivas, o que confirma unha vez máis a popularidade desta dirección.

MVP inclúe: reprodutor interactivo, construtor de vídeo, busca por contido e etiquetas, coleccións de vídeos, comentarios, visualizacións, valoracións, canles e perfís de usuario.

Edición técnica de Mail.ru Group 2019

Pila tecnolóxica utilizada no proxecto:

Edición técnica de Mail.ru Group 2019

Como está previsto desenvolver o proxecto:

  • colección de estatísticas e infografías sobre as transicións ao vídeo;
  • notificacións e mensaxes persoais para os usuarios do sitio;
  • versións para Android e iOS.

Despois disto, pensamos engadir:

  • crear historias de vídeo desde o teu teléfono;
  • editar fragmentos de vídeo descargados (por exemplo, recortar);
  • creación e lanzamento de publicidade interactiva no reprodutor.

Equipo do proxecto: Maxim Morev (desenvolvedor fullstack, traballou na arquitectura do proxecto) e Roman Maslov (desenvolvedor fullstack, traballou no deseño do proxecto).

On-Line-On-Board

Edición técnica de Mail.ru Group 2019

Edición técnica de Mail.ru Group 2019

Hoxe, os pais prestan moita atención ao desenvolvemento mental dos seus fillos, e os nenos están interesados ​​en xogos intelectuais. Polo tanto, o xadrez está gañando popularidade de novo. E aínda que o xadrez en xeral é bastante popular, atopar un opoñente habitual para os xogos é problemático. Polo tanto, moitas persoas usan servizos de xadrez en liña, a pesar de que moitos xogadores prefiren xogar "en directo" con pezas reais. Non obstante, ao xogar ao xadrez, unha persoa fai moito esforzo mental e cansa, e esta fatiga compleméntase co impacto negativo de estar sentado ante un ordenador ou un teléfono intelixente. Como resultado, o cerebro queda sobrecargado despois de só dous xogos.

Todos estes factores impulsaron aos autores á idea do proxecto On-Line-On-Board, que consta de tres partes: un taboleiro de xadrez físico, unha aplicación de escritorio e un servizo web. O taboleiro é un campo de xadrez normal, que recoñece a posición das pezas e, coa axuda dunha indicación luminosa, indica os movementos do adversario. A placa está conectada por USB a un PC e comunícase coa aplicación de escritorio. No modo de adestramento (e para nenos), destacan os teus posibles movementos.

A aplicación asume as funcións básicas de xestión do taboleiro, o que permite reducir moito o seu custo e levar a implementación da maioría das funcións ao nivel de software. A aplicación comunícase cun servizo web cuxo principal valor é a actualización dinámica.

O escenario principal para usar o produto: unha persoa xoga no servizo, a segunda nun taboleiro físico conectado ao servizo. É dicir, o servizo adquire unha función comunicativa.

Equipo do proxecto: Daniil Tuchin, Anton Dmitriev, Sasha Kuznetsov.

Podes ler máis sobre os nosos proxectos educativos en este enlace. E visita a canle con máis frecuencia Tecnostream, aparecen alí regularmente novos vídeos educativos sobre programación, desenvolvemento e outras disciplinas.

Fonte: www.habr.com

Engadir un comentario