Teknisk udgave af Mail.ru Group 2019

Teknisk udgave af Mail.ru Group 2019

I slutningen af ​​maj forsvarede vores kandidater fra Technopark (Bauman MSTU), Technotrack (MIPT), Technosphere (Lomonosov Moscow State University) og Technopolis (Peter den Store St. Petersborg Polytekniske Universitet) deres diplomprojekter. Der blev afsat tre måneder til arbejde, og fyrene investerede i deres ide, den viden og de færdigheder, de fik over to års studier.

I alt var der 13 projekter om forsvar, der løste forskellige problemer i forskellige brancher. For eksempel:

  • skylagring med kryptografisk filkryptering;
  • platform til at skabe interaktive videoer (med forskellige slutninger);
  • smart bord til at spille rigtig skak over netværket;
  • arkitektur til intelligent hentning af medicinske artikler;
  • Software til at lære folkeskolebørn det grundlæggende i algoritmisering.

Samt projekter fra forretningsenheder:

  • CRM-system til TamTam messenger;
  • webtjeneste til søgning af tematiske billeder på kortet til Odnoklassniki;
  • adressegeokodningstjeneste for MAPS.ME.

I dag vil vi fortælle dig mere detaljeret om fem projekter af vores kandidater.

Intelligent søgning af medicinske artikler

Teknisk udgave af Mail.ru Group 2019

Der er mange områder inden for det videnskabelige område, hvor der hver især udføres forskning, publiceres et stort antal artikler i en række forskellige tidsskrifter. Disse er informationsteknologi, fysik, matematik, biologi, medicin og mange andre.

Forfattere projekt besluttede at fokusere på det medicinske område. Næsten alle artikler om medicinske emner er samlet på PubMed-portalen. Portalen giver sin egen søgning. Dens muligheder er dog meget begrænsede. Derfor forbedrede fyrene søgesystemet, tilføjede understøttelse af lange forespørgsler og muligheden for at forfine forespørgsler ved hjælp af emnemodellering.

Teknisk udgave af Mail.ru Group 2019
SERP'en indeholder en rangeret liste over dokumenter med deres emner defineret, og ord og udtryk relateret til disse emner fremhæves ved hjælp af sandsynlig emnemodellering. Brugeren kan klikke på de fremhævede termer for at indsnævre søgeforespørgslen.

Teknisk udgave af Mail.ru Group 2019
For at gøre søgningen gennem den enorme PubMed-database hurtig, skrev forfatterne deres egen søgemaskine, der nemt kan integreres i enhver infrastruktur.

Eftersøgningen udføres i tre faser:

  1. Kandidatdokumenter udvælges ved hjælp af et omvendt indeks.
  2. Kandidaterne rangeres ved hjælp af BM25F-algoritmen, som tager højde for forskellige felter i dokumenter under søgningen. Ord i titlen har således mere vægt end ord i det abstrakte.
  3. Et caching-system bruges også til at fremskynde behandlingen af ​​hyppige anmodninger.

Teknisk udgave af Mail.ru Group 2019

Mikroservicearkitektur:

Teknisk udgave af Mail.ru Group 2019
Grundlæggende overføres strukturerede tekstdata mellem tjenester. Til høje overførselshastigheder bruges GRPC - en ramme til at forbinde moduler i en mikroservicearkitektur. Dataserialisering bruges også ved hjælp af Protobuf-meddelelsesudvekslingsformatet.

Hvilke komponenter omfatter systemet:

  • Server til behandling af indgående brugeranmodninger på Node.js.
  • Anmodninger om belastningsbalancering ved hjælp af nginx-proxyserveren.
  • Flask-serveren implementerer REST API og modtager anmodninger videresendt fra Node.js.
  • Alle rå og behandlede data, samt forespørgselsoplysninger, gemmes i MongoDB.
  • Alle anmodninger om relevante resultater for dokumenttematisering går til RabbitMQ.

Eksempel på søgeresultater:

Teknisk udgave af Mail.ru Group 2019

Hvad vi planlægger at gøre næste gang:

  • Anbefalinger ved kompilering af anmeldelser om et givet emne (identifikation af vigtige emner i et dokument og søgning i undergrupper af dokumenter).
  • Søg i PDF-filer.
  • Semantisk tekstsegmentering.
  • Spor emner og tendenser over tid.

Projektteam: Fedor Petryaykin, Vladislav Dorozhinsky, Maxim Nakhodnov, Maxim Filin

Bloker log

Teknisk udgave af Mail.ru Group 2019

I dag, når de underviser i programmering og datalogi, har børn i folkeskolealderen (5-7 klassetrin) problemer med at mestre stoffet. Hvis eleverne vil udføre opgaver derhjemme, skal de desuden installere ekstra software på deres computere. Lærere skal tjekke en lang række lignende løsninger på problemer, og i tilfælde af fjernundervisning skal de også udvikle en metode til at modtage opgaver fra elever.

Forfatterne af Block Log-projektet kom til den konklusion, at når man underviser børn i grundskolealderen i det grundlæggende i algoritmisering, skal der ikke lægges vægt på at huske programmeringssprogskommandoer, men på at konstruere algoritmediagrammer. Dette vil give eleverne mulighed for at bruge tid og kræfter på at designe en algoritme i stedet for at indtaste besværlige syntaktiske strukturer.

perron Bloker log tillader:

  1. Opret og rediger flowcharts.
  2. Kør de oprettede rutediagrammer og se resultatet af deres arbejde (outputdata).
  3. Gem og indlæs oprettede projekter.
  4. Tegn rasterbilleder (generer et billede baseret på en algoritme oprettet af barnet).
  5. Modtag information om kompleksiteten af ​​den oprettede algoritme (baseret på antallet af operationer udført i algoritmen).

Der forventes en rollefordeling i lærere og elever. Enhver bruger modtager elevstatus; for at opnå lærerstatus skal du kontakte systemadministratoren. Læreren kan ikke kun indtaste beskrivelser og betingelser for problemer, men også lave automatiserede test, der automatisk vil blive lanceret, når en elev indsender en løsning på problemet i systemet.

Browserbloklogeditor:

Teknisk udgave af Mail.ru Group 2019

Efter at have løst problemet kan eleven downloade løsningen og se resultaterne:

Teknisk udgave af Mail.ru Group 2019

Platformen består af en front-end-applikation i Vue.js og en back-end-applikation i Ruby on Rails. PostgreSQL bruges som database. For at forenkle implementeringen er alle systemkomponenter pakket i Docker-containere og samlet ved hjælp af Docker Compose. Desktopversionen af ​​Block Log er baseret på Electron frameworket. Webpack blev brugt til at bygge JavaScript-koden.

Projektteam: Alexander Barulev, Maxim Kolotovkin, Kirill Kucherov.

CRM-system til TamTam messenger

Teknisk udgave af Mail.ru Group 2019

CRM er et værktøj til bekvem interaktion mellem virksomheder og TamTam-brugere. Følgende funktioner er implementeret:

  • En bot-konstruktør, der giver dig mulighed for at oprette bots uden programmeringsevner. På få minutter kan du få en fuldt fungerende bot, der ikke kun kan vise nogle informationer til brugerne, men også indsamle data, inkl. filer, som administratoren kan se senere.
  • RSS. Du kan nemt forbinde RSS til enhver kanal.
  • Forsinket opslag. Giver dig mulighed for at sende og slette beskeder på forudindstillede tidspunkter.

Holdet deltog også i at teste Bot API'et, og skabte flere selvskrevne bots, såsom en bot til 2019 World Cup of Hockey, en bot til registrering/autorisation i vores tjeneste og en bot til CI/CD.

Løsningsinfrastruktur:

  • Administrationsserveren indeholder et overvågningssystem for hver server og hver Docker-container på den for hurtigt og bekvemt at opdage et problem og løse det, se forskellige metrics og brugsstatistikker. Der er også et system til fjernkonfigurationsstyring af vores applikation.
  • Staging-serveren indeholder den aktuelle version af vores applikation, tilgængelig til generel test af udviklingsteamet.
  • Administrations- og iscenesættelsesservere er kun tilgængelige via VPN for udviklere, og produktionsserveren indeholder udgivelsesversionen af ​​applikationen. Det er isoleret fra udviklernes hænder og er kun tilgængeligt for slutbrugeren.
  • CI/CD-systemet blev implementeret ved hjælp af Github og Travis, meddelelse ved hjælp af en brugerdefineret bot i TamTam.

Teknisk udgave af Mail.ru Group 2019

Applikationsarkitekturen er en modulær løsning. Applikationen, databasen, konfigurationsmanageren og overvågningen lanceres i separate Docker-containere, som giver dig mulighed for at abstrahere fra startmiljøet, ændre eller genstarte en separat container. Oprettelse af en netværkstopologi og håndtering af containere udføres ved hjælp af Docker Compose.

Teknisk udgave af Mail.ru Group 2019

Projektteam: Alexey Antufiev, Egor Gorbatov, Alexey Kotelevsky.

ForkMe

Teknisk udgave af Mail.ru Group 2019

ForkMe-projektet er en platform til at se interaktive videoer, hvor du kan lave din egen video og vise den til dine venner. Hvorfor har vi brug for interaktive videoer, hvis der er almindelige?

Videoens ikke-lineære plot og muligheden for selv at vælge fortsættelsen gør det muligt for seeren at blive involveret, og indholdsskabere vil være i stand til at vise unikke historier, hvis plot vil blive påvirket af brugerne. Desuden vil indholdsskabere, ved at studere videokonverteringsstatistikker, være i stand til at forstå, hvad der interesserer publikum mest og gøre materialer mere attraktive.

Ved udviklingen af ​​projektet blev fyrene inspireret af den interaktive film Bandersnatch fra Netflix, som fik mange visninger og gode anmeldelser. Da MVP allerede var skrevet, dukkede nyheder op om, at Youtube planlagde at lancere en platform for interaktive serier, hvilket endnu en gang bekræfter populariteten af ​​denne retning.

MVP inkluderer: interaktiv afspiller, videokonstruktør, søgning efter indhold og tags, videosamlinger, kommentarer, visninger, vurderinger, kanal- og brugerprofiler.

Teknisk udgave af Mail.ru Group 2019

Teknologistabel brugt i projektet:

Teknisk udgave af Mail.ru Group 2019

Hvordan er det planlagt at udvikle projektet:

  • indsamling af statistik og infografik om overgange til video;
  • meddelelser og personlige beskeder til webstedsbrugere;
  • versioner til Android og iOS.

Herefter planlægger vi at tilføje:

  • oprettelse af videohistorier fra din telefon;
  • redigering af downloadede videofragmenter (for eksempel trimning);
  • oprettelse og lancering af interaktiv reklame i afspilleren.

Projektteam: Maxim Morev (fullstack-udvikler, arbejdede på projektarkitekturen) og Roman Maslov (fullstack-udvikler, arbejdede på projektdesignet).

On-Line-On-Board

Teknisk udgave af Mail.ru Group 2019

Teknisk udgave af Mail.ru Group 2019

I dag er forældre meget opmærksomme på deres børns mentale udvikling, og børn er interesserede i intellektuelle spil. Derfor vinder skak igen popularitet. Og selvom skak generelt er ret populært, er det problematisk at finde en fast modstander til spil. Derfor bruger mange mennesker online skaktjenester, på trods af at mange spillere foretrækker at spille "live" med rigtige brikker. Men når man spiller skak, yder en person en stor mental indsats og bliver træt, og denne træthed suppleres af den negative påvirkning af at sidde ved en computer eller smartphone. Som et resultat bliver hjernen overbelastet efter blot to spil.

Alle disse faktorer skubbede forfatterne til ideen om On-Line-On-Board-projektet, som består af tre dele: et fysisk skakbræt, en desktopapplikation og en webservice. Brættet er et regulært skakfelt, som genkender brikkernes position og ved hjælp af en let indikation angiver modstanderens træk. Kortet er tilsluttet via USB til en pc og kommunikerer med desktop-applikationen. I træningstilstanden (og for børn) er dine mulige bevægelser fremhævet.

Applikationen overtager de grundlæggende funktioner til at styre bestyrelsen, hvilket giver dig mulighed for i høj grad at reducere omkostningerne og bringe implementeringen af ​​de fleste funktioner til softwareniveauet. Applikationen kommunikerer med en webtjeneste, hvis hovedværdi er dynamisk opdatering.

Hovedscenariet for brug af produktet: én person spiller på tjenesten, den anden på et fysisk board, der er forbundet med tjenesten. Det vil sige, at tjenesten påtager sig en kommunikativ funktion.

Projektteam: Daniil Tuchin, Anton Dmitriev, Sasha Kuznetsov.

Du kan læse mere om vores uddannelsesprojekter på dette link. Og besøg kanalen oftere Technostream, nye undervisningsvideoer om programmering, udvikling og andre discipliner dukker der jævnligt op.

Kilde: www.habr.com

Tilføj en kommentar