Lanzamiento técnico Mail.ru Group 2019



A finales de mayo, nuestros graduados de Technopark (MSTU llamado así por Bauman), Technotrek (MIPT), Technosphere (Universidad Estatal de Moscú nombrada por Lomonosov) y Technopolis (SPbPU Peter the Great) defendieron sus proyectos de graduación. Se asignaron tres meses para el trabajo, y los muchachos pusieron el conocimiento y las habilidades adquiridas en dos años de estudio en sus hijos.

En total, hubo 13 proyectos de defensa, resolviendo varios problemas en diferentes industrias. Por ejemplo:

  • almacenamiento en la nube con cifrado de archivos criptográficos;
  • plataforma para crear video interactivo (con diferentes finales);
  • tablero inteligente para jugar ajedrez real en la red;
  • arquitectura para la búsqueda inteligente de artículos médicos;
  • Software para enseñar a los niños de primaria los conceptos básicos de algoritmo.

Además de proyectos de unidades de negocio:

  • Sistema CRM para el mensajero TamTam;
  • un servicio web para encontrar fotos temáticas en un mapa de Odnoklassniki;
  • servicio de geocodificación de direcciones para MAPS.ME.

Hoy te contamos más sobre los cinco proyectos de nuestros graduados.

Búsqueda inteligente de artículos médicos




Hay muchas áreas en el campo científico, en cada una de las cuales se están realizando investigaciones, se publica una gran cantidad de artículos en varias revistas. Estas son las tecnologías de la información, física, matemáticas, biología, medicina y muchas otras.

Los autores del proyecto decidieron centrarse en el campo médico. Casi todos los artículos sobre temas médicos se recopilan en el portal PubMed. El portal proporciona su propia búsqueda. Sin embargo, sus capacidades son muy limitadas. Por lo tanto, los chicos mejoraron el sistema de búsqueda, agregaron soporte para consultas largas y la capacidad de refinar consultas usando modelado temático.


Los resultados de la búsqueda contienen una lista ordenada de documentos con una definición de sus temas, y las palabras y términos relacionados con estos temas se destacan debido al modelado temático probabilístico. El usuario puede hacer clic en los términos resaltados al limitar la consulta de búsqueda.


Para buscar rápidamente en la enorme base de datos PubMed, los autores escribieron su propio motor de búsqueda que se puede integrar fácilmente en cualquier infraestructura.

La búsqueda se lleva a cabo en tres etapas:

  1. Usando el índice inverso, se seleccionan los documentos candidatos.
  2. La clasificación del solicitante se aplica de acuerdo con el algoritmo BM25F, que tiene en cuenta varios campos en los documentos al buscar. Por lo tanto, las palabras en el título tienen más peso que las palabras en la anotación.
  3. Un sistema de almacenamiento en caché también se utiliza para acelerar el procesamiento de solicitudes de frecuencia.



Arquitectura de microservicios:


Básicamente, los datos de texto estructurado se transfieren entre servicios. Para la transmisión de alta velocidad, GRPC se utiliza como marco para conectar módulos en la arquitectura de microservicios. La serialización de datos también se usa usando el formato de mensaje Protobuf.

Qué componentes incluye el sistema:

  • Servidor para procesar solicitudes de usuario entrantes en Node.js.
  • Solicite equilibrio de carga con proxy nginx.
  • El servidor Flask implementa la API REST y recibe las solicitudes reenviadas desde Node.js.
  • Todos los datos sin procesar y procesados, así como la información de solicitud, se almacenan en MongoDB.
  • Todas las solicitudes de emisión relevante de documentos relacionados con temas se envían a RabbitMQ.

Ejemplo de resultados de búsqueda:



Lo que se planea hacer en el futuro:

  • Recomendaciones al compilar revisiones sobre un tema determinado (identificación de temas importantes en un documento y búsqueda de subconjuntos de documentos).
  • Busca archivos PDF.
  • Segmentación de texto semántico.
  • Seguimiento de temas y tendencias a lo largo del tiempo.

Equipo del proyecto: Fedor Petryaykin, Vladislav Dorozhinsky, Maxim Nakhodnov, Maxim Filin

Bloquear registro




Hoy, cuando enseñan programación y ciencias de la computación, los niños en edad escolar primaria (grados 5–7) tienen problemas para dominar el material. Además, si los estudiantes desean completar tareas en casa, deben instalar software adicional en sus computadoras. Los maestros deben verificar una gran cantidad de soluciones similares a los problemas y, en el caso del aprendizaje a distancia, también deben desarrollar una metodología para recibir tareas de los estudiantes.

Los autores del proyecto Block Log llegaron a la conclusión: al enseñar a los niños de primaria los conceptos básicos de la algoritmización, el énfasis no debe estar en memorizar comandos en un lenguaje de programación, sino en construir esquemas algorítmicos. Esto permitirá a los estudiantes gastar tiempo y energía en el diseño de un algoritmo, en lugar de en construcciones sintácticas engorrosas.

La plataforma Block Log le permite:

  1. Crear y editar diagramas de flujo.
  2. Ejecute los diagramas de flujo creados y vea el resultado de su trabajo (datos de salida).
  3. Guardar y cargar proyectos creados.
  4. Dibuje imágenes de mapa de bits (generación de imágenes basada en el algoritmo creado por el niño).
  5. Obtenga información sobre la complejidad del algoritmo creado (en función del número de operaciones realizadas en el algoritmo).

Se supone que el rol se divide en maestros y estudiantes. Cualquier usuario recibe el estado de estudiante, para obtener el estado de un maestro, debe comunicarse con el administrador del sistema. El profesor no solo puede ingresar una descripción y condiciones de las tareas, sino también crear pruebas automatizadas que se ejecutarán automáticamente cuando el alumno envíe la solución al sistema.

Editor de bloque de registro del navegador:



Una vez resuelto el problema, el alumno puede descargar la solución y ver los resultados:



La plataforma consta de una aplicación frontend en Vue.js y una aplicación back-end en Ruby on Rails. La base de datos es PostgreSQL. Para simplificar la implementación, todos los componentes del sistema se empaquetan en contenedores Docker y se ensamblan con Docker Compose. La versión de escritorio de Block Log se basa en el marco Electron. Webpack se usó para construir código JavaScript.

Equipo del proyecto: Alexander Barulev, Maxim Kolotovkin, Kirill Kucherov.

Sistema CRM para mensajería TamTam




CRM es una herramienta para la interacción comercial conveniente con los usuarios de TamTam. Se implementan las siguientes funciones:

  • diseñador de bots que te permite crear bots sin habilidades de programación. En unos minutos, puede obtener un bot totalmente funcional que no solo puede mostrar cierta información a los usuarios, sino también recopilar datos, incluidos Archivos que el administrador puede ver más tarde.
  • RSS feed. Puede conectar fácilmente RSS a cualquier feed.
  • Publicación retrasada. Le permite enviar y eliminar mensajes a una hora predeterminada.

El equipo también participó en las pruebas de la API de Bot, creando varios bots auto-escritos, como un bot para el World Hockey World 2019, un bot para registrarse / autorizar en nuestro servicio, un bot para CI / CD.

Soluciones de infraestructura:

  • El servidor de administración contiene un sistema de monitoreo para cada servidor y cada contenedor Docker en él, para detectar de manera rápida y conveniente un problema y resolverlo, ver varias métricas y estadísticas de uso. También hay un sistema de gestión de configuración remota para nuestra aplicación.
  • El servidor provisional contiene la versión actual de nuestra aplicación, disponible para pruebas generales por parte del equipo de desarrollo.
  • Los servidores de administración y preparación están disponibles solo a través de VPN para los desarrolladores, y el servidor de producción contiene una versión de lanzamiento de la aplicación. Está aislado de las manos de los desarrolladores y está disponible solo para el usuario final.
  • El sistema CI / CD se implementa usando Github y Travis, notificación usando un bot personalizado en TamTam.



La arquitectura de la aplicación es una solución modular. La aplicación, la base de datos, el administrador de configuración y la supervisión se inician en contenedores Docker separados, lo que le permite abstraerse del entorno de inicio, cambiar o reiniciar un contenedor separado. La topología de red y la gestión de contenedores se realizan con Docker Compose.



Equipo del proyecto: Alexey Antufiev, Egor Gorbatov, Alexey Kotelevsky.

Forkme




El proyecto ForkMe es una plataforma de visualización de video interactiva donde puede diseñar su video y mostrárselo a sus amigos. ¿Por qué necesitamos videos interactivos, si hay videos comunes?

La trama no lineal del video y la capacidad de elegir la continuación usted mismo le permiten involucrar al espectador, y los creadores de contenido podrán mostrar historias únicas en las que los usuarios influirán en la trama. Además, los creadores de contenido, que estudian las estadísticas de las transiciones en el video, podrán comprender lo que más le interesa al público y hacer que los materiales sean más atractivos.

Al desarrollar el proyecto, los chicos se inspiraron en la película interactiva de Netflix Bandersnatch, que reunió muchas vistas y buenas críticas. Cuando el MVP ya estaba escrito, apareció la noticia de que Youtube también planea lanzar una plataforma para series interactivas, lo que una vez más confirma la popularidad de esta dirección.

MVP incluye: reproductor interactivo, diseñador de video, búsqueda por contenido y etiquetas, colecciones de videos, comentarios, vistas, calificaciones, canales y perfiles de usuario.



Pila tecnológica utilizada en el proyecto:



¿Cómo planea desarrollar el proyecto?

  • recopilación de estadísticas e infografías sobre transiciones en el video;
  • notificaciones y mensajes personales para usuarios del sitio;
  • versiones para Android e iOS.

Después de eso, se planea agregar:

  • crear historias de video desde el teléfono;
  • editar fragmentos de video descargados (por ejemplo, recortar);
  • Creación y lanzamiento de publicidad interactiva en el reproductor.

Equipo del proyecto: Maxim Morev (desarrollador fullstack, dedicado a la arquitectura del proyecto) y Roman Maslov (desarrollador fullstack, dedicado al diseño del proyecto).

En línea a bordo






Hoy, los padres prestan gran atención al desarrollo mental de los niños, y los niños están interesados ​​en los juegos intelectuales. Por lo tanto, el ajedrez está ganando popularidad nuevamente. Aunque el ajedrez es generalmente bastante popular, encontrar un oponente regular para los juegos es problemático. Por lo tanto, muchas personas usan los servicios de ajedrez en línea, a pesar de que muchos jugadores prefieren jugar en vivo, con piezas reales. Sin embargo, cuando juega al ajedrez, una persona hace un gran esfuerzo mental y se cansa, y esta fatiga se complementa con la influencia negativa de sentarse frente a una computadora o un teléfono inteligente. Como resultado, el cerebro se sobrecarga después de dos partes.

Todos estos factores llevaron a los autores a la idea del proyecto On-Line-On-Board, que consta de tres partes: un tablero de ajedrez físico, una aplicación de escritorio y un servicio web. El tablero es un campo de ajedrez regular que reconoce la posición de las piezas y con la ayuda de una luz indica los movimientos del oponente. La placa se conecta por USB a la PC y se comunica con la aplicación de escritorio. En el modo de aprendizaje (y para niños), se resaltan sus posibles movimientos.

La aplicación asume las funciones básicas de administrar el tablero, lo que puede reducir en gran medida su costo y llevar la implementación de la mayoría de las funciones al nivel del programa. La aplicación está asociada a un servicio web cuyo valor principal es la actualización dinámica.

El escenario principal para usar el producto: una persona juega en el servicio, la segunda en la placa física conectada al servicio. Es decir, el servicio adquiere una función comunicativa.

Equipo del proyecto: Daniil Tuchin, Anton Dmitriev, Sasha Kuznetsov.



Puede leer más sobre nuestros proyectos educativos en este enlace . Y a menudo visita el canal Technostream , regularmente aparecen nuevos videos instructivos sobre programación, desarrollo y otras disciplinas.

Source: https://habr.com/ru/post/462277/


All Articles