XNUMX月底,我们来自Technopark(鲍曼MSTU)、Technotrack(MIPT)、Technosphere(罗蒙诺索夫莫斯科国立大学)和Technopolis(彼得大帝圣彼得堡理工大学)的毕业生完成了他们的文凭项目的答辩。 三个月的工作时间被分配给了这些人,他们将两年学习中获得的知识和技能投入到他们的创意中。
总共有13个国防项目,解决了不同行业的各种问题。 例如:
- 具有加密文件加密功能的云存储;
- 创建互动视频的平台(具有不同的结局);
- 用于通过网络下真正的国际象棋的智能棋盘;
- 医学文章智能检索架构;
- 用于教授小学生算法化基础知识的软件。
以及来自业务部门的项目:
- TamTam Messenger 的 CRM 系统;
- 用于在 Odnoklassniki 地图上搜索专题照片的网络服务;
- MAPS.ME 的地址地理编码服务。
医学文章智能检索
科学领域有很多领域,每个领域都进行研究,并在各种期刊上发表大量文章。 这些领域包括信息技术、物理、数学、生物学、医学等等。
作者
SERP 包含已定义主题的文档排名列表,并且使用概率主题建模突出显示与这些主题相关的单词和术语。 用户可以单击突出显示的术语来缩小搜索查询范围。
为了快速搜索庞大的 PubMed 数据库,作者编写了自己的搜索引擎,可以轻松集成到任何基础设施中。
搜索分三个阶段进行:
- 使用反向索引选择候选文档。
- 使用 BM25F 算法对候选者进行排名,该算法在搜索过程中考虑了文档中的各个字段。 因此,标题中的单词比摘要中的单词更有分量。
- 缓存系统还用于加速频繁请求的处理。
微服务架构:
基本上,结构化文本数据在服务之间传输。 为了实现高传输速度,使用了 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项目的作者得出的结论是:在教小学生算法化基础知识时,重点不应该是记忆编程语言命令,而是构建算法图。 这将使学生能够花费时间和精力来设计算法,而不是输入繁琐的语法结构。
平台
- 创建和编辑流程图。
- 运行创建的流程图并查看其工作结果(输出数据)。
- 保存并加载创建的项目。
- 绘制光栅图像(根据孩子创建的算法生成图像)。
- 接收有关所创建算法的复杂性的信息(基于算法中执行的操作数)。
预计角色分为教师和学生。 任何用户都会获得学生身份;要获得教师身份,您必须联系系统管理员。 教师不仅可以输入问题的描述和条件,还可以创建自动化测试,当学生向系统提交问题的解决方案时,测试将自动启动。
浏览器阻止日志编辑器:
解决问题后,学生可以下载解决方案并查看结果:
该平台由 Vue.js 中的前端应用程序和 Ruby on Rails 中的后端应用程序组成。 使用 PostgreSQL 作为数据库。 为了简化部署,所有系统组件都打包在 Docker 容器中,并使用 Docker Compose 进行组装。 Block Log 的桌面版本基于 Electron 框架。 Webpack 用于构建 JavaScript 代码。
项目团队:Alexander Barulev、Maxim Kolotovkin、Kirill Kucherov。
TamTam Messenger 的 CRM 系统
CRM是企业和TamTam用户之间便捷交互的工具。 已实现以下功能:
- 机器人构造器,让您无需编程技能即可创建机器人。 几分钟后,您就可以获得一个完全工作的机器人,它不仅可以向用户显示一些信息,还可以收集数据,包括数据。 管理员稍后可以查看的文件。
- RSS。 您可以轻松地将 RSS 连接到任何频道。
- 延迟发帖。 允许您在预设时间发送和删除消息。
团队还参与了Bot API的测试,创建了多个自写的机器人,例如2019年曲棍球世界杯的机器人、我们服务中的注册/授权的机器人以及CI/CD的机器人。
解决方案基础设施:
- 管理服务器包含针对每台服务器及其上的每个 Docker 容器的监控系统,以便快速方便地检测问题并解决问题,查看各种指标和使用情况统计信息。 还有一个用于我们的应用程序的远程配置管理的系统。
- 登台服务器包含我们应用程序的当前版本,可供开发团队进行一般测试。
- 开发人员只能通过 VPN 访问管理和临时服务器,而生产服务器包含应用程序的发布版本。 它脱离了开发人员的控制,仅可供最终用户使用。
- CI/CD 系统是使用 Github 和 Travis 实现的,使用 TamTam 中的自定义机器人进行通知。
应用程序架构是模块化解决方案。 应用程序、数据库、配置管理器和监控在单独的 Docker 容器中启动,这允许您从启动环境中抽象、更改或重新启动单独的容器。 创建网络拓扑和管理容器是使用 Docker Compose 完成的。
项目团队:Alexey Antufiev、Egor Gorbatov、Alexey Kotelevsky。
叉我
ForkMe 项目是一个观看互动视频的平台,您可以在其中创建自己的视频并将其展示给您的朋友。 既然有常规视频,为什么还需要互动视频呢?
视频的非线性情节以及自己选择延续的能力让观看者能够参与其中,内容创作者将能够展示独特的故事,其情节将受到用户的影响。 此外,内容创作者通过研究视频转换统计数据,将能够了解观众最感兴趣的内容并使内容更具吸引力。
在开发该项目时,他们受到 Netflix 互动电影《潘达斯奈基》的启发,该电影获得了很多观看次数和好评。 当MVP已经写完的时候,有消息出现,Youtube正计划推出互动系列平台,这再次印证了这个方向的受欢迎程度。
MVP 包括:交互式播放器、视频构造器、按内容和标签搜索、视频收藏、评论、观看次数、评级、频道和用户配置文件。
项目中使用的技术栈:
项目计划如何开发:
- 收集有关视频转换的统计数据和信息图表;
- 网站用户的通知和个人消息;
- Android 和 iOS 版本。
在此之后我们计划添加:
- 从您的手机创建视频故事;
- 编辑下载的视频片段(例如修剪);
- 在播放器中创建和启动互动广告。
项目团队:Maxim Morev(全栈开发人员,负责项目架构)和 Roman Maslov(全栈开发人员,负责项目设计)。
在线机上
如今,家长非常注重孩子的智力发展,孩子对智力游戏很感兴趣。 因此,国际象棋再次流行起来。 尽管国际象棋总体上很受欢迎,但找到固定的比赛对手却是个问题。 因此,许多人使用在线国际象棋服务,尽管许多玩家更喜欢“现场”玩真棋。 然而,下棋时,一个人会投入大量脑力并感到疲劳,而坐在电脑或智能手机前的负面影响又加剧了这种疲劳。 结果,仅仅两场比赛之后,大脑就变得超负荷。
所有这些因素促使作者产生了 On-Line-On-Board 项目的想法,该项目由三部分组成:物理棋盘、桌面应用程序和 Web 服务。 棋盘是一个常规的棋场,它可以识别棋子的位置,并借助灯光指示指示对手的走法。 该板通过 USB 连接到 PC 并与桌面应用程序通信。 在训练模式(对于儿童),您可能的动作会突出显示。
该应用程序接管了管理板的基本功能,这使您可以大大降低其成本,并将大多数功能的实现带到软件级别。 该应用程序与 Web 服务进行通信,其主要价值是动态更新。
使用该产品的主要场景:一个人玩该服务,另一个人在连接到该服务的物理板上玩。 即,服务承担通信功能。
项目团队:Daniil Tuchin、Anton Dmitriev、Sasha Kuznetsov。
您可以阅读有关我们教育项目的更多信息
来源: habr.com