技术发布Mail.ru Group 2019



5月底,我们来自Technopark(以Bauman命名的MSTU),Technotrek(MIPT),Technosphere(以莫斯科州立大学的罗蒙诺索夫命名)和Technopolis(SPbPU彼得大帝)的毕业生为毕业项目辩护。 分配了三个月的工作时间,这些家伙将两年学习中获得的知识和技能带入了后代。

总共有13个国防项目,解决了不同行业的各种问题。 例如:

  • 具有加密文件加密功能的云存储;
  • 用于创建交互式视频(具有不同结尾)的平台;
  • 用于在网络上下棋的智能板;
  • 智能搜索医学文章的架构;
  • 用于教小学生算法基础知识的软件。

以及业务部门的项目:

  • TamTam Messenger的CRM系统;
  • 用于在Odnoklassniki地图上查找专题照片的Web服务;
  • MAPS.ME的地址解析地址服务。

今天,我们向您详细介绍我们毕业生的五个项目。

智能医疗文章搜索




科学领域有很多领域,每个领域都在进行研究,许多期刊上发表了大量文章。 这些是信息技术,物理学,数学,生物学,医学等。

项目的作者决定专注于医学领域。 几乎所有有关医学主题的文章都在PubMed门户上收集。 门户网站提供其自己的搜索。 但是,其功能非常有限。 因此,他们改进了搜索系统,增加了对长查询的支持,并使用了主题建模功能来完善查询。


搜索结果包含具有主题定义的文档排名列表,并且由于概率主题建模,与这些主题相关的单词和术语会突出显示。 用户可以通过缩小搜索查询范围来单击突出显示的术语。


为了快速搜索巨大的PubMed数据库,作者编写了自己的搜索引擎,可以轻松地将其集成到任何基础架构中。

搜索分三个阶段进行:

  1. 使用反向索引,选择候选文档。
  2. 根据BM25F算法应用申请人排名,该算法在搜索时考虑了文档中的各个字段。 因此,标题中的单词比注释中的单词具有更大的权重。
  3. 缓存系统还用于加速频率请求的处理。



微服务架构:


基本上,结构化文本数据在服务之间传输。 对于高速传输,GRPC用作连接微服务体系结构中的模块的框架。 还使用Protobuf消息格式使用数据序列化。

系统包括哪些组件:

  • 用于处理Node.js上的传入用户请求的服务器。
  • 使用Nginx代理请求负载平衡。
  • Flask服务器实现REST API,并接收从Node.js转发的请求。
  • 所有原始数据和处理后的数据以及请求信息都存储在MongoDB中。
  • 所有与主题相关的文件的相关发行请求均提交给RabbitMQ。

搜索结果示例:



计划将来做什么:

  • 编制有关给定主题的评论时的建议(识别文档中的重要主题并搜索文档的子集)。
  • 搜索PDF文件。
  • 语义文本分割。
  • 随时间跟踪主题和趋势。

项目团队:Fedor Petryaykin,Vladislav Dorozhinsky,Maxim Nakhodnov,Maxim Filin

阻止日志




今天,在教授编程和计算机科学时,小学年龄(5-7年级)的孩子在掌握材料方面存在问题。 此外,如果学生想在家中完成任务,则必须在计算机上安装其他软件。 教师必须检查大量类似的问题解决方案,并且在远程学习的情况下,他们还必须开发一种方法来接收学生的任务。

Block Log项目的作者得出的结论是:在向小学生教授算法基础知识时,重点不应放在以编程语言存储命令上,而应着重构建算法方案。 这将使学生能够将时间和精力花在设计算法上,而不是花在繁琐的语法构造上。

Block Log平台使您能够:

  1. 创建和编辑流程图。
  2. 运行创建的流程图,并查看其工作结果(输出数据)。
  3. 保存和加载创建的项目。
  4. 绘制位图图像(基于子级创建的算法生成图像)。
  5. 获取有关所创建算法的复杂性的信息(基于算法中执行的操作数)。

该角色应分为教师和学生。 任何用户收到学生身份后,要获得教师身份,必须与系统管理员联系。 教师不仅可以输入任务的描述和条件,还可以创建自动测试,并在学生将解决方案发送到系统时自动运行。

阻止日志浏览器编辑器:



解决问题后,学生可以下载解决方案并查看结果:



该平台由Vue.js上的前端应用程序和Ruby on Rails上的后端应用程序组成。 该数据库是PostgreSQL。 为了简化部署,所有系统组件都打包在Docker容器中,并使用Docker Compose组装。 桌面版本的Block Log基于Electron框架。 Webpack用于构建JavaScript代码。

项目团队:亚历山大·巴鲁列夫,马克西姆·科洛托夫金,基里尔·库切罗夫。

TamTam Messenger的CRM系统




CRM是用于与TamTam用户进行方便的业务交互的工具。 实现了以下功能:

  • 机器人设计师,可让您无需编程即可创建机器人。 几分钟后,您将获得一个功能全面的机器人,该机器人不仅可以向用户显示一些信息,还可以收集数据,包括 管理员以后可以查看的文件。
  • RSS feed。 您可以轻松地将RSS连接到任何提要。
  • 延迟发布。 允许您在预定时间发送和删除消息。

该团队还参与了Bot API的测试,创建了一些自写的机器人,例如2019年世界曲棍球世界的机器人,注册/授权我们服务的机器人,CI / CD机器人。

基础架构解决方案:

  • 管理服务器包含一个针对每个服务器及其上每个Docker容器的监视系统,以快速方便地检测和解决问题,并查看各种指标和使用情况统计信息。 我们的应用程序还有一个远程配置管理系统。
  • 登台服务器包含我们应用程序的当前版本,可供开发团队进行常规测试。
  • 管理和登台服务器仅通过VPN提供给开发人员,生产服务器包含该应用程序的发行版。 它与开发人员隔离,仅对最终用户可用。
  • CI / CD系统是使用Github和Travis实施的,使用TamTam中的自定义漫游器进行通知。



应用程序体系结构是一种模块化解决方案。 应用程序,数据库,配置管理器和监视在单独的Docker容器中启动,这使您可以从启动环境中抽象,更改或重新启动单独的容器。 网络拓扑和容器管理使用Docker Compose完成。



项目团队:Alexey Antufiev,Egor Gorbatov,Alexey Kotelevsky。

前叉




ForkMe项目是一个交互式视频观看平台,您可以在其中设计视频并将其显示给朋友。 如果有普通视频,为什么我们需要交互式视频?

视频的非线性情节和您自己选择延续的能力使您能够吸引观众,内容创建者将能够展示用户会影响情节的独特故事。 此外,内容创建者通过研究视频中的转换统计信息,将能够了解观众最感兴趣的内容,并使材料更具吸引力。

在开发该项目时,这些家伙的灵感来自交互式Netflix Bandersnatch电影,该电影收集了很多观点和好评。 当MVP撰写完成后,有消息传出,Youtube还计划推出一个互动系列平台,这再次证实了这一方向的流行。

MVP包括:交互式播放器,视频设计师,按内容和标签搜索,视频收藏,评论,视图,评分,频道和用户个人资料。



项目中使用的技术堆栈:



您如何计划开发该项目:

  • 收集有关视频过渡的统计信息和图表;
  • 网站用户的通知和个人消息;
  • Android和iOS版本。

之后,计划添加:

  • 通过电话创建视频故事;
  • 编辑下载的视频片段(例如,裁剪);
  • 在播放器中创建和启动交互式广告。

项目团队:Maxim Morev(全职开发人员,从事项目架构)和Roman Maslov(全职开发人员,从事项目设计)。

机载在线






今天,父母非常重视孩子的心理发展,孩子们对智力游戏很感兴趣。 因此,国际象棋再次受到欢迎。 尽管国际象棋通常很受欢迎,但要找到一个正规的比赛对手是有问题的。 因此,尽管许多玩家更喜欢以真实的棋子进行现场比赛,但仍有许多人使用国际象棋在线服务。 但是,在下棋时,一个人会花费很多心思并感到疲倦,而坐在电脑或智能手机上所带来的负面影响则可以弥补这种疲劳。 结果,经过两次聚会,大脑超负荷。

所有这些因素促使作者想到了On-Line-On-Board项目,该项目包括三个部分:物理棋盘,桌面应用程序和Web服务。 棋盘是一个常规的国际象棋场,可识别棋子的位置,并借助灯光指示指示对手的移动。 该评估板通过USB连接到PC,并与桌面应用程序通信。 在学习模式(对于儿童)中,您的可能动作会突出显示。

该应用程序具有管理电路板的基本功能,可以大大降低其成本,并将大多数功能的实现带到程序级别。 该应用程序与Web服务相关联,其主要价值是动态更新。

使用产品的主要场景:一个人在使用该服务,第二个人在连接到该服务的物理板上。 即,该服务承担通信功能。

项目团队:Daniil Tuchin,Anton Dmitriev,Sasha Kuznetsov。



您可以通过此链接阅读有关我们的教育项目的更多信息。 经常访问Technostream频道,定期出现有关编程,开发和其他学科的新教学视频。

Source: https://habr.com/ru/post/zh-CN462277/


All Articles