Tekniskt nummer av Mail.ru Group 2019

Tekniskt nummer av Mail.ru Group 2019

I slutet av maj försvarade våra utexaminerade från Technopark (Bauman MSTU), Technotrack (MIPT), Technosphere (Lomonosov Moscow State University) och Technopolis (Peter the Great St. Petersburg Polytechnic University) sina diplomprojekt. Tre månader avsattes för arbete, och killarna investerade i sina idéer de kunskaper och färdigheter som förvärvats under två års studier.

Totalt var det 13 projekt om försvar, som löste olika problem inom olika branscher. Till exempel:

  • molnlagring med kryptografisk filkryptering;
  • plattform för att skapa interaktiva videor (med olika slut);
  • smart bräda för att spela riktigt schack över nätverket;
  • arkitektur för intelligent hämtning av medicinska artiklar;
  • Programvara för att lära grundskolebarn grunderna i algoritmisering.

Samt projekt från affärsenheter:

  • CRM-system för TamTam messenger;
  • webbtjänst för att söka efter tematiska bilder på kartan för Odnoklassniki;
  • adress geokodningstjänst för MAPS.ME.

Idag kommer vi att berätta mer i detalj om fem projekt av våra utexaminerade.

Intelligent sökning av medicinska artiklar

Tekniskt nummer av Mail.ru Group 2019

Det finns många områden inom det vetenskapliga området, inom vart och ett av vilka forskning bedrivs publiceras ett stort antal artiklar i en mängd olika tidskrifter. Dessa är informationsteknologi, fysik, matematik, biologi, medicin och många andra.

Författare projektet beslutade att fokusera på det medicinska området. Nästan alla artiklar om medicinska ämnen finns samlade på PubMed-portalen. Portalen ger en egen sökning. Men dess möjligheter är mycket begränsade. Därför förbättrade killarna söksystemet, lade till stöd för långa frågor och möjligheten att förfina frågor med hjälp av ämnesmodellering.

Tekniskt nummer av Mail.ru Group 2019
SERP innehåller en rankad lista över dokument med deras ämnen definierade, och ord och termer relaterade till dessa ämnen markeras med hjälp av probabilistisk ämnesmodellering. Användaren kan klicka på de markerade termerna för att begränsa sökfrågan.

Tekniskt nummer av Mail.ru Group 2019
För att göra sökningen i den enorma PubMed-databasen snabb, skrev författarna sin egen sökmotor som enkelt kan integreras i vilken infrastruktur som helst.

Sökningen utförs i tre steg:

  1. Kandidatdokument väljs ut med ett omvänt index.
  2. Kandidaterna rangordnas med hjälp av algoritmen BM25F, som tar hänsyn till olika fält i dokument under sökningen. Ord i titeln har alltså större vikt än ord i det abstrakta.
  3. Ett cachningssystem används också för att påskynda behandlingen av frekventa förfrågningar.

Tekniskt nummer av Mail.ru Group 2019

Mikrotjänstarkitektur:

Tekniskt nummer av Mail.ru Group 2019
I grund och botten överförs strukturerad textdata mellan tjänster. För höga överföringshastigheter används GRPC - ett ramverk för att ansluta moduler i en mikrotjänstarkitektur. Dataserialisering används också med hjälp av meddelandeutbytesformatet Protobuf.

Vilka komponenter innehåller systemet:

  • Server för bearbetning av inkommande användarförfrågningar på Node.js.
  • Lastbalanseringsförfrågningar med hjälp av nginx proxyserver.
  • Flask-servern implementerar REST API och tar emot förfrågningar som vidarebefordras från Node.js.
  • All rå och bearbetad data, såväl som frågeinformation, lagras i MongoDB.
  • Alla förfrågningar om relevanta resultat för dokumenttematisering går till RabbitMQ.

Exempel på sökresultat:

Tekniskt nummer av Mail.ru Group 2019

Vad vi planerar att göra härnäst:

  • Rekommendationer vid sammanställning av recensioner om ett givet ämne (identifiera viktiga ämnen i ett dokument och genomsökning av undergrupper av dokument).
  • Sök i PDF-filer.
  • Semantisk textsegmentering.
  • Spåra ämnen och trender över tid.

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

Blockera logg

Tekniskt nummer av Mail.ru Group 2019

I dag, när de undervisar i programmering och datavetenskap, har barn i grundskoleåldern (5–7 årskurser) problem med att bemästra materialet. Dessutom, om eleverna vill utföra uppgifter hemma, måste de installera ytterligare programvara på sina datorer. Lärare måste kontrollera ett stort antal liknande lösningar på problem, och vid distansutbildning måste de också utveckla en metodik för att ta emot uppgifter från elever.

Författarna till Block Log-projektet kom till slutsatsen: när man lär barn i grundskoleåldern grunderna i algoritmisering, bör tonvikten inte ligga på att memorera programmeringsspråkskommandon, utan på att konstruera algoritmdiagram. Detta kommer att tillåta eleverna att lägga tid och ansträngning på att designa en algoritm, snarare än att skriva in krångliga syntaktiska strukturer.

Plattform Blockera logg tillåter:

  1. Skapa och redigera flödesscheman.
  2. Kör de skapade flödesschemana och se resultatet av deras arbete (utdata).
  3. Spara och ladda skapade projekt.
  4. Rita rasterbilder (genererar en bild baserad på en algoritm skapad av barnet).
  5. Ta emot information om komplexiteten hos den skapade algoritmen (baserat på antalet operationer som utförs i algoritmen).

En rollfördelning på lärare och elever förväntas. Alla användare får studentstatus; för att få lärarstatus måste du kontakta systemadministratören. Läraren kan inte bara skriva in beskrivningar och villkor för problem, utan också skapa automatiserade test som kommer att startas automatiskt när en elev skickar in en lösning på problemet i systemet.

Redigerare för webbläsarblockering:

Tekniskt nummer av Mail.ru Group 2019

Efter att ha löst problemet kan eleven ladda ner lösningen och se resultatet:

Tekniskt nummer av Mail.ru Group 2019

Plattformen består av en front-end-applikation i Vue.js och en back-end-applikation i Ruby on Rails. PostgreSQL används som databas. För att förenkla driftsättningen paketeras alla systemkomponenter i Docker-containrar och monteras med Docker Compose. Desktopversionen av Block Log är baserad på Electron-ramverket. Webpack användes för att bygga JavaScript-koden.

Projektteam: Alexander Barulev, Maxim Kolotovkin, Kirill Kucherov.

CRM-system för TamTam messenger

Tekniskt nummer av Mail.ru Group 2019

CRM är ett verktyg för bekväm interaktion mellan företag och TamTam-användare. Följande funktioner har implementerats:

  • En botkonstruktör som låter dig skapa bots utan programmeringskunskaper. På några minuter kan du få en fullt fungerande bot som inte bara kan visa viss information för användarna, utan även samla in data, inkl. filer som administratören kan se senare.
  • RSS. Du kan enkelt ansluta RSS till vilken kanal som helst.
  • Försenat inlägg. Låter dig skicka och radera meddelanden vid förinställda tider.

Teamet deltog också i att testa Bot API, och skapade flera självskrivna bots, som en bot för 2019 World Cup of Hockey, en bot för registrering/auktorisering i vår tjänst och en bot för CI/CD.

Lösningsinfrastruktur:

  • Hanteringsservern innehåller ett övervakningssystem för varje server och varje Docker-container på den för att snabbt och bekvämt upptäcka ett problem och lösa det, se olika mätvärden och användningsstatistik. Det finns också ett system för fjärrkonfigurationshantering av vår applikation.
  • Staging-servern innehåller den aktuella versionen av vår applikation, tillgänglig för allmän testning av utvecklingsteamet.
  • Hanterings- och iscensättningsservrar är endast tillgängliga via VPN för utvecklare, och produktionsservern innehåller releaseversionen av applikationen. Den är isolerad från utvecklarnas händer och är endast tillgänglig för slutanvändaren.
  • CI/CD-systemet implementerades med Github och Travis, avisering med en anpassad bot i TamTam.

Tekniskt nummer av Mail.ru Group 2019

Applikationsarkitekturen är en modulär lösning. Applikationen, databasen, konfigurationshanteraren och övervakningen lanseras i separata Docker-containrar, vilket låter dig abstrahera från startmiljön, ändra eller starta om en separat container. Att skapa en nätverkstopologi och hantera behållare görs med Docker Compose.

Tekniskt nummer av Mail.ru Group 2019

Projektteam: Alexey Antufiev, Egor Gorbatov, Alexey Kotelevsky.

Gaffla mig

Tekniskt nummer av Mail.ru Group 2019

ForkMe-projektet är en plattform för att titta på interaktiva videor, där du kan skapa din egen video och visa den för dina vänner. Varför behöver vi interaktiva videor om det finns vanliga?

Den icke-linjära handlingen i videon och möjligheten att själva välja fortsättningen gör att tittaren kan vara involverad, och innehållsskapare kommer att kunna visa unika berättelser, vars handling kommer att påverkas av användarna. Dessutom kommer innehållsskapare, genom att studera videokonverteringsstatistik, att kunna förstå vad som intresserar publiken mest och göra material mer attraktivt.

När de utvecklade projektet inspirerades killarna av den interaktiva filmen Bandersnatch från Netflix, som fick många visningar och bra recensioner. När MVP redan skrevs dök det upp nyheter om att Youtube planerar att lansera en plattform för interaktiva serier, vilket återigen bekräftar populariteten för denna riktning.

MVP inkluderar: interaktiv spelare, videokonstruktör, sökning efter innehåll och taggar, videosamlingar, kommentarer, visningar, betyg, kanal- och användarprofiler.

Tekniskt nummer av Mail.ru Group 2019

Teknikstack som används i projektet:

Tekniskt nummer av Mail.ru Group 2019

Hur är det planerat att utveckla projektet:

  • insamling av statistik och infografik om övergångar till video;
  • aviseringar och personliga meddelanden för webbplatsanvändare;
  • versioner för Android och iOS.

Efter detta planerar vi att lägga till:

  • skapa videoberättelser från din telefon;
  • redigera nedladdade videofragment (till exempel trimning);
  • skapande och lansering av interaktiv reklam i spelaren.

Projektteam: Maxim Morev (fullstackutvecklare, arbetade med projektarkitekturen) och Roman Maslov (fullstackutvecklare, arbetade med projektdesignen).

On-Line-On-board

Tekniskt nummer av Mail.ru Group 2019

Tekniskt nummer av Mail.ru Group 2019

Idag ägnar föräldrar stor uppmärksamhet åt sina barns mentala utveckling, och barn är intresserade av intellektuella spel. Därför blir schack populärt igen. Och även om schack i allmänhet är ganska populärt, är det problematiskt att hitta en vanlig motståndare för spel. Därför använder många människor online schacktjänster, trots att många spelare föredrar att spela "live" med riktiga pjäser. Men när man spelar schack, lägger en person mycket mental ansträngning och blir trött, och denna trötthet kompletteras av den negativa effekten av att sitta vid en dator eller smartphone. Som ett resultat blir hjärnan överbelastad efter bara två spel.

Alla dessa faktorer drev författarna till idén om On-Line-On-Board-projektet, som består av tre delar: ett fysiskt schackbräde, en skrivbordsapplikation och en webbtjänst. Brädan är ett vanligt schackfält, som känner igen pjäsens position och med hjälp av en lätt indikering indikerar motståndarens drag. Kortet ansluts via USB till en PC och kommunicerar med skrivbordsapplikationen. I träningsläge (och för barn) är dina möjliga rörelser markerade.

Applikationen tar över de grundläggande funktionerna för att hantera styrelsen, vilket gör att du kan minska dess kostnader avsevärt och föra implementeringen av de flesta funktioner till mjukvarunivån. Applikationen kommunicerar med en webbtjänst vars huvudvärde är dynamisk uppdatering.

Huvudscenariot för att använda produkten: en person spelar på tjänsten, den andra på ett fysiskt kort som är anslutet till tjänsten. Det vill säga tjänsten får en kommunikativ funktion.

Projektteam: Daniil Tuchin, Anton Dmitriev, Sasha Kuznetsov.

Du kan läsa mer om våra utbildningsprojekt på denna länk. Och besök kanalen oftare Technostream, nya utbildningsfilmer om programmering, utveckling och andra discipliner dyker upp där regelbundet.

Källa: will.com

Lägg en kommentar