Tech release Mail.ru Group 2019





At the end of May, our graduates from Technopark (MSTU named after Bauman), Technotrek (MIPT), Technosphere (Moscow State University named after Lomonosov) and Technopolis (SPbPU Peter the Great) defended their graduation projects. Three months were allotted for work, and the guys put the knowledge and skills gained in two years of study into their offspring.



In total, there were 13 projects on defense, solving various problems in different industries. For example:





And also projects from business units:





Today we tell you more about the five projects of our graduates.



Intelligent medical article search







There are many areas in the scientific field, in each of which research is being conducted, a huge number of articles are published in various journals. These are information technologies, physics, mathematics, biology, medicine and many others.



The authors of the project decided to focus on the medical field. Almost all articles on medical topics are collected on the PubMed portal. The portal provides its own search. However, its capabilities are very limited. Therefore, the guys improved the search system, added support for long queries and the ability to refine queries using thematic modeling.









Search results contain a ranked list of documents with a definition of their topics, and words and terms related to these topics are highlighted due to probabilistic thematic modeling. The user can click on the highlighted terms by narrowing the search query.









To quickly search the huge PubMed database, the authors wrote their own search engine that can be easily integrated into any infrastructure.



The search is carried out in three stages:



  1. Using the reverse index, candidate documents are selected.
  2. Applicants are ranked according to the BM25F algorithm, which takes into account the various fields in the documents when searching. Thus, the words in the title have more weight than the words in the annotation.
  3. A caching system is also used to speed up the processing of frequency requests.






Microservice architecture:









Basically, structured text data is transferred between services. For high speed transmission, GRPC is used as a framework for connecting modules in a microservice architecture. It also serializes data using the Protobuf message format.



What components does the system include:





Example of search results:







What is planned to be done in the future:





Project team: Fedor Petryaykin, Vladislav Dorozhinsky, Maxim Nakhodnov, Maxim Filin



Block log







Today, when teaching programming and computer science, children of primary school age (grades 5–7) have problems with the assimilation of material. In addition, if students want to complete tasks at home, they have to install additional software on their computers. Teachers have to check a large number of similar solutions to problems, and in the case of distance learning, they also have to develop a methodology for receiving tasks from students.



The authors of the Block Log project came to the conclusion: when teaching primary school children the basics of algorithmization, the emphasis should not be on learning the programming language commands, but on the construction of algorithmic schemes. This will allow students to spend time and effort on designing an algorithm, rather than on cumbersome syntactic constructions.



Block Log platform allows you to:



  1. Create and edit flowcharts.

  2. Run the created flowcharts and see the result of their work (output data).

  3. Save and load created projects.

  4. Draw bitmap images (image generation based on the algorithm created by the child).

  5. Get information about the complexity of the created algorithm (based on the number of operations performed in the algorithm).



The role is supposed to be divided into teachers and students. Any user receives student status, to obtain the status of a teacher, you must contact the system administrator. The teacher can not only enter a description and conditions of the tasks, but also create automated tests that will be automatically run when the student sends the solution to the system.



Block Log Browser Editor:







Having solved the problem, the student can download the solution and see the results:







The platform consists of a frontend application on Vue.js and a backend application on Ruby on Rails. The database is PostgreSQL. To simplify deployment, all system components are packaged in Docker containers and assembled using Docker Compose. The desktop version of Block Log is based on the Electron framework. Webpack was used to build JavaScript code.



Project team: Alexander Barulev, Maxim Kolotovkin, Kirill Kucherov.



CRM system for TamTam messenger







CRM is a tool for convenient business interaction with TamTam users. The following functions are implemented:





The team also took part in testing the Bot API, creating several self-written bots, such as a bot for the 2019 World Hockey World, a bot for registering / authorizing in our service, a bot for CI / CD.



Infrastructure Solutions:









The application architecture is a modular solution. The application, database, configuration manager and monitoring are launched in separate Docker containers, which allows you to abstract from the startup environment, change or restart a separate container. Network topology and container management are done using Docker Compose.







Project team: Alexey Antufiev, Egor Gorbatov, Alexey Kotelevsky.



Forkme







The ForkMe project is an interactive video viewing platform where you can design your video and show it to friends. Why do we need interactive videos, if there are ordinary ones?



The non-linear plot of the video and the ability to choose the continuation yourself allow you to engage the viewer, and content creators will be able to show unique stories that users will influence the plot. Also, content creators, studying the statistics of transitions in the video, will be able to understand what the audience is most interested in and make the materials more attractive.



When developing the project, the guys were inspired by the interactive Netflix Bandersnatch movie, which collected a lot of views and good reviews. When the MVP was already written, the news appeared that Youtube also plans to launch a platform for interactive series, which once again confirms the popularity of this direction.



MVP includes: interactive player, video designer, search by content and tags, video collections, comments, views, ratings, channel and user profiles.







Technological stack used in the project:







How do you plan to develop the project:





After that, it is planned to add:





Project team: Maxim Morev (fullstack-developer, engaged in project architecture) and Roman Maslov (fullstack-developer, engaged in project design).



On-line-on-board











Today, parents pay great attention to the mental development of children, and children are interested in intellectual games. Therefore, chess is gaining popularity again. Although chess is generally quite popular, finding a regular rival for games is problematic. Therefore, many use online chess services, despite the fact that many players prefer to play “live”, with real pieces. However, when playing chess, a person makes a lot of mental effort and gets tired, and this fatigue is supplemented by the negative impact of sitting at a computer or smartphone. As a result, the brain is overloaded after two parties.



All these factors prompted the authors to the idea of ​​the On-Line-On-Board project, which consists of three parts: a physical chessboard, a desktop application and a web service. The board is a regular chess field that recognizes the position of the pieces and with the help of a light indication indicates the moves of the opponent. The board connects via USB to the PC and communicates with the desktop application. In the learning mode (and for children) your possible moves are highlighted.



The application takes on the basic functions of managing the board, which allows you to greatly reduce its cost and take the implementation of most functions to the program level. The application is associated with a web service, the main value of which is a dynamic update.



The main scenario for using the product: one person plays on the service, the second on the physical board connected to the service. That is, the service takes on a communicative function.



Project team: Daniil Tuchin, Anton Dmitriev, Sasha Kuznetsov.






You can read more about our educational projects at this link . And often go to the Technostream channel, new training videos about programming, development and other disciplines regularly appear there.



All Articles