Teknisk utgave av Mail.ru Group 2019

Teknisk utgave av Mail.ru Group 2019

I slutten av mai forsvarte våre kandidater fra Technopark (Bauman MSTU), Technotrack (MIPT), Technosphere (Lomonosov Moscow State University) og Technopolis (Peter the Great St. Petersburg Polytechnic University) diplomprosjektene sine. Tre måneder ble bevilget til arbeid, og gutta investerte i hjernen sin kunnskap og ferdigheter som ble tilegnet over to års studier.

Totalt var det 13 prosjekter på forsvar som løste ulike problemer i ulike bransjer. For eksempel:

  • skylagring med kryptografisk filkryptering;
  • plattform for å lage interaktive videoer (med forskjellige avslutninger);
  • smartbrett for å spille ekte sjakk over nettverket;
  • arkitektur for intelligent henting av medisinske artikler;
  • Programvare for å lære grunnskolebarn det grunnleggende om algoritmisering.

I tillegg til prosjekter fra forretningsenheter:

  • CRM-system for TamTam messenger;
  • netttjeneste for å søke etter tematiske bilder på kartet for Odnoklassniki;
  • adresse geokodingstjeneste for MAPS.ME.

I dag vil vi fortelle deg mer detaljert om fem prosjekter til våre nyutdannede.

Intelligent søk etter medisinske artikler

Teknisk utgave av Mail.ru Group 2019

Det er mange områder innen det vitenskapelige feltet, hvor det forskes på hvert av dem, publiseres et stort antall artikler i en rekke tidsskrifter. Disse er informasjonsteknologi, fysikk, matematikk, biologi, medisin og mange andre.

Forfattere prosjekt bestemte seg for å fokusere på det medisinske feltet. Nesten alle artikler om medisinske emner er samlet på PubMed-portalen. Portalen gir sitt eget søk. Dens evner er imidlertid svært begrenset. Derfor forbedret gutta søkesystemet, la til støtte for lange søk og muligheten til å avgrense søk ved hjelp av emnemodellering.

Teknisk utgave av Mail.ru Group 2019
SERP inneholder en rangert liste over dokumenter med deres emner definert, og ord og termer relatert til disse emnene er uthevet ved hjelp av sannsynlige emnemodellering. Brukeren kan klikke på de uthevede ordene for å begrense søket.

Teknisk utgave av Mail.ru Group 2019
For å gjøre det raskt å søke gjennom den enorme PubMed-databasen, skrev forfatterne sin egen søkemotor som enkelt kan integreres i enhver infrastruktur.

Søket utføres i tre trinn:

  1. Kandidatdokumenter velges ved hjelp av en omvendt indeks.
  2. Kandidatene rangeres ved hjelp av BM25F-algoritmen, som tar hensyn til ulike felt i dokumenter under søket. Dermed har ord i tittelen større vekt enn ord i abstrakt.
  3. Et hurtigbuffersystem brukes også for å fremskynde behandlingen av hyppige forespørsler.

Teknisk utgave av Mail.ru Group 2019

Mikrotjenestearkitektur:

Teknisk utgave av Mail.ru Group 2019
I utgangspunktet overføres strukturerte tekstdata mellom tjenester. For høye overføringshastigheter brukes GRPC – et rammeverk for tilkobling av moduler i en mikrotjenestearkitektur. Dataserialisering brukes også ved å bruke Protobuf-meldingsutvekslingsformatet.

Hvilke komponenter inkluderer systemet:

  • Server for behandling av innkommende brukerforespørsler på Node.js.
  • Lastbalanseringsforespørsler ved å bruke nginx proxy-serveren.
  • Flask-serveren implementerer REST API og mottar forespørsler videresendt fra Node.js.
  • All rå og behandlet data, samt spørringsinformasjon, lagres i MongoDB.
  • Alle forespørsler om relevante resultater for dokumenttematisering går til RabbitMQ.

Eksempel på søkeresultater:

Teknisk utgave av Mail.ru Group 2019

Hva vi planlegger å gjøre videre:

  • Anbefalinger ved sammenstilling av anmeldelser om et gitt emne (identifisering av viktige emner i et dokument og søk gjennom undergrupper av dokumenter).
  • Søk i PDF-filer.
  • Semantisk tekstsegmentering.
  • Spor emner og trender over tid.

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

Blokker logg

Teknisk utgave av Mail.ru Group 2019

I dag, når de underviser i programmering og informatikk, har barn i grunnskolealder (5.–7. klassetrinn) problemer med å mestre stoffet. I tillegg, hvis studentene ønsker å fullføre oppgaver hjemme, må de installere tilleggsprogramvare på datamaskinene sine. Lærere må sjekke et stort antall lignende løsninger på problemer, og ved fjernundervisning må de også utvikle en metodikk for å motta oppgaver fra studenter.

Forfatterne av Block Log-prosjektet kom til konklusjonen: når man lærer barn i grunnskolealder det grunnleggende om algoritmisering, bør det ikke legges vekt på å huske programmeringsspråkkommandoer, men på å konstruere algoritmediagrammer. Dette vil tillate elevene å bruke tid og krefter på å designe en algoritme, i stedet for å skrive inn tungvinte syntaktiske strukturer.

plattform Blokker logg muliggjør:

  1. Opprett og rediger flytskjemaer.
  2. Kjør de opprettede flytskjemaene og se resultatet av arbeidet deres (utdata).
  3. Lagre og last inn opprettede prosjekter.
  4. Tegn rasterbilder (generer et bilde basert på en algoritme laget av barnet).
  5. Motta informasjon om kompleksiteten til den opprettede algoritmen (basert på antall operasjoner utført i algoritmen).

Det forventes en rollefordeling i lærere og elever. Enhver bruker mottar studentstatus; for å få lærerstatus må du kontakte systemadministratoren. Læreren kan ikke bare legge inn beskrivelser og betingelser for problemer, men også lage automatiserte tester som automatisk vil bli lansert når en student sender inn en løsning på problemet i systemet.

Editor for nettleserblokkering:

Teknisk utgave av Mail.ru Group 2019

Etter å ha løst problemet kan eleven laste ned løsningen og se resultatene:

Teknisk utgave av Mail.ru Group 2019

Plattformen består av en front-end-applikasjon i Vue.js og en back-end-applikasjon i Ruby on Rails. PostgreSQL brukes som database. For å forenkle distribusjonen pakkes alle systemkomponenter i Docker-beholdere og settes sammen ved hjelp av Docker Compose. Desktop-versjonen av Block Log er basert på Electron-rammeverket. Webpack ble brukt til å bygge JavaScript-koden.

Prosjektteam: Alexander Barulev, Maxim Kolotovkin, Kirill Kucherov.

CRM-system for TamTam messenger

Teknisk utgave av Mail.ru Group 2019

CRM er et verktøy for praktisk interaksjon mellom bedrifter og TamTam-brukere. Følgende funksjoner er implementert:

  • En bot-konstruktør som lar deg lage roboter uten programmeringskunnskaper. På få minutter kan du få en fullt fungerende bot som ikke bare kan vise noe informasjon til brukerne, men også samle inn data, inkl. filer som administratoren kan se senere.
  • RSS. Du kan enkelt koble RSS til hvilken som helst kanal.
  • Forsinket innlegg. Lar deg sende og slette meldinger til forhåndsinnstilte tider.

Teamet deltok også i testing av Bot API, og laget flere selvskrevne roboter, for eksempel en bot for 2019 World Cup of Hockey, en bot for registrering/autorisasjon i tjenesten vår, og en bot for CI/CD.

Løsningsinfrastruktur:

  • Administrasjonsserveren inneholder et overvåkingssystem for hver server og hver Docker-beholder på den for raskt og enkelt å oppdage et problem og løse det, se ulike beregninger og bruksstatistikk. Det finnes også et system for fjernkonfigurasjonsadministrasjon av applikasjonen vår.
  • Staging-serveren inneholder den gjeldende versjonen av applikasjonen vår, tilgjengelig for generell testing av utviklingsteamet.
  • Administrasjons- og stagingservere er kun tilgjengelige via VPN for utviklere, og produksjonsserveren inneholder utgivelsesversjonen av applikasjonen. Den er isolert fra hendene til utviklere og er kun tilgjengelig for sluttbrukeren.
  • CI/CD-systemet ble implementert ved hjelp av Github og Travis, varsling ved hjelp av en tilpasset bot i TamTam.

Teknisk utgave av Mail.ru Group 2019

Applikasjonsarkitekturen er en modulær løsning. Applikasjonen, databasen, konfigurasjonsbehandlingen og overvåkingen lanseres i separate Docker-containere, som lar deg abstrahere fra lanseringsmiljøet, endre eller starte en separat container på nytt. Å lage en nettverkstopologi og administrere containere gjøres ved hjelp av Docker Compose.

Teknisk utgave av Mail.ru Group 2019

Prosjektteam: Alexey Antufiev, Egor Gorbatov, Alexey Kotelevsky.

ForkMe

Teknisk utgave av Mail.ru Group 2019

ForkMe-prosjektet er en plattform for å se interaktive videoer, hvor du kan lage din egen video og vise den til vennene dine. Hvorfor trenger vi interaktive videoer hvis det er vanlige?

Det ikke-lineære plottet til videoen og muligheten til å velge fortsettelsen selv gjør at seeren kan bli involvert, og innholdsskapere vil kunne vise unike historier, hvis handling vil bli påvirket av brukere. Dessuten vil innholdsskapere, ved å studere videokonverteringsstatistikk, være i stand til å forstå hva som interesserer publikum mest og gjøre materialer mer attraktive.

Ved utviklingen av prosjektet ble gutta inspirert av den interaktive filmen Bandersnatch fra Netflix, som fikk mange visninger og gode anmeldelser. Da MVP allerede var skrevet, dukket det opp nyheter om at Youtube planla å lansere en plattform for interaktive serier, som nok en gang bekrefter populariteten til denne retningen.

MVP inkluderer: interaktiv spiller, videokonstruktør, søk etter innhold og tagger, videosamlinger, kommentarer, visninger, rangeringer, kanal og brukerprofiler.

Teknisk utgave av Mail.ru Group 2019

Teknologistabel brukt i prosjektet:

Teknisk utgave av Mail.ru Group 2019

Hvordan er det planlagt å utvikle prosjektet:

  • innsamling av statistikk og infografikk om overganger til video;
  • varsler og personlige meldinger for brukere av nettstedet;
  • versjoner for Android og iOS.

Etter dette planlegger vi å legge til:

  • lage videohistorier fra telefonen din;
  • redigering av nedlastede videofragmenter (for eksempel trimming);
  • opprettelse og lansering av interaktiv annonsering i spilleren.

Prosjektteam: Maxim Morev (fullstack-utvikler, jobbet med prosjektarkitekturen) og Roman Maslov (fullstack-utvikler, jobbet med prosjektdesign).

On-Line-On-Board

Teknisk utgave av Mail.ru Group 2019

Teknisk utgave av Mail.ru Group 2019

I dag legger foreldre stor vekt på den mentale utviklingen til barna sine, og barn er interessert i intellektuelle spill. Derfor blir sjakk stadig mer populært. Og selv om sjakk generelt er ganske populært, er det problematisk å finne en vanlig motstander for spill. Derfor bruker mange online sjakktjenester, til tross for at mange spillere foretrekker å spille "live" med ekte brikker. Men når du spiller sjakk, legger en person mye mental innsats og blir sliten, og denne trettheten kompletteres av den negative effekten av å sitte ved en datamaskin eller smarttelefon. Som et resultat blir hjernen overbelastet etter bare to kamper.

Alle disse faktorene presset forfatterne til ideen om On-Line-On-Board-prosjektet, som består av tre deler: et fysisk sjakkbrett, en skrivebordsapplikasjon og en webtjeneste. Brettet er et vanlig sjakkfelt, som gjenkjenner posisjonen til brikkene og ved hjelp av en lys indikasjon indikerer motstanderens trekk. Brettet kobles via USB til en PC og kommuniserer med skrivebordsapplikasjonen. I treningsmodus (og for barn) er dine mulige bevegelser uthevet.

Applikasjonen overtar de grunnleggende funksjonene for å administrere styret, noe som lar deg redusere kostnadene betydelig og bringe implementeringen av de fleste funksjoner til programvarenivået. Applikasjonen kommuniserer med en webtjeneste hvis hovedverdi er dynamisk oppdatering.

Hovedscenarioet for bruk av produktet: én person spiller på tjenesten, den andre på et fysisk brett koblet til tjenesten. Det vil si at tjenesten får en kommunikativ funksjon.

Prosjektteam: Daniil Tuchin, Anton Dmitriev, Sasha Kuznetsov.

Du kan lese mer om våre utdanningsprosjekter på denne linken. Og besøk kanalen oftere Technostream, nye pedagogiske videoer om programmering, utvikling og andre disipliner dukker opp der jevnlig.

Kilde: www.habr.com

Legg til en kommentar