Technische uitgave van Mail.ru Group 2019

Technische uitgave van Mail.ru Group 2019

Eind mei verdedigden onze afgestudeerden van Technopark (Bauman MSTU), Technotrack (MIPT), Technosphere (Lomonosov Moskou State University) en Technopolis (Peter the Great St. Petersburg Polytechnic University) hun diplomaprojecten. Er werd drie maanden uitgetrokken voor werk, en de jongens investeerden in hun geesteskind de kennis en vaardigheden die ze tijdens twee jaar studie hadden verworven.

In totaal waren er 13 defensieprojecten, waarmee verschillende problemen in verschillende industrieën werden opgelost. Bijvoorbeeld:

  • cloudopslag met cryptografische bestandsversleuteling;
  • platform voor het maken van interactieve video's (met verschillende eindes);
  • smartboard voor het spelen van echt schaken via het netwerk;
  • architectuur voor het intelligent ophalen van medische artikelen;
  • Software om basisschoolkinderen de basisbeginselen van algoritmisering te leren.

Evenals projecten van bedrijfsonderdelen:

  • CRM-systeem voor TamTam messenger;
  • webservice voor het zoeken naar thematische foto's op de kaart voor Odnoklassniki;
  • adresgeocoderingsservice voor MAPS.ME.

Vandaag vertellen we je meer in detail over vijf projecten van onze afstudeerders.

Intelligent zoeken naar medische artikelen

Technische uitgave van Mail.ru Group 2019

Er zijn veel gebieden op wetenschappelijk gebied, in elk waarvan onderzoek wordt uitgevoerd, een groot aantal artikelen wordt gepubliceerd in verschillende tijdschriften. Dit zijn informatietechnologie, natuurkunde, wiskunde, biologie, geneeskunde en vele anderen.

Auteurs project besloot zich te concentreren op de medische sector. Vrijwel alle artikelen over medische onderwerpen worden verzameld op de PubMed-portal. Het portaal biedt zijn eigen zoekfunctie. De mogelijkheden ervan zijn echter zeer beperkt. Daarom hebben de jongens het zoeksysteem verbeterd, ondersteuning toegevoegd voor lange zoekopdrachten en de mogelijkheid om zoekopdrachten te verfijnen met behulp van onderwerpmodellering.

Technische uitgave van Mail.ru Group 2019
De SERP bevat een gerangschikte lijst met documenten waarvan de onderwerpen zijn gedefinieerd, en woorden en termen die verband houden met deze onderwerpen worden gemarkeerd met behulp van probabilistische onderwerpmodellering. De gebruiker kan op de gemarkeerde termen klikken om de zoekopdracht te verfijnen.

Technische uitgave van Mail.ru Group 2019
Om het zoeken in de enorme database van PubMed snel te laten verlopen, hebben de auteurs een eigen zoekmachine geschreven die eenvoudig in elke infrastructuur kan worden geïntegreerd.

De zoektocht wordt in drie fasen uitgevoerd:

  1. Kandidaatdocumenten worden geselecteerd met behulp van een omgekeerde index.
  2. De kandidaten worden gerangschikt met behulp van het BM25F-algoritme, dat tijdens het zoeken rekening houdt met verschillende velden in documenten. Woorden in de titel hebben dus meer gewicht dan woorden in de samenvatting.
  3. Er wordt ook gebruik gemaakt van een cachingsysteem om de verwerking van frequente verzoeken te versnellen.

Technische uitgave van Mail.ru Group 2019

Microservice-architectuur:

Technische uitgave van Mail.ru Group 2019
Kortom, gestructureerde tekstgegevens worden tussen services overgedragen. Voor hoge overdrachtssnelheden wordt GRPC gebruikt: een raamwerk voor het verbinden van modules in een microservice-architectuur. Dataserialisatie wordt ook gebruikt met behulp van het Protobuf-berichtuitwisselingsformaat.

Welke componenten bevat het systeem:

  • Server voor het verwerken van inkomende gebruikersverzoeken op Node.js.
  • Verzoeken om taakverdeling met behulp van de nginx-proxyserver.
  • De Flask-server implementeert de REST API en ontvangt verzoeken die zijn doorgestuurd vanuit Node.js.
  • Alle ruwe en verwerkte gegevens, evenals vraaginformatie, worden opgeslagen in MongoDB.
  • Alle aanvragen voor relevante resultaten voor documentthematisering gaan naar RabbitMQ.

Voorbeeld van zoekresultaten:

Technische uitgave van Mail.ru Group 2019

Wat we hierna van plan zijn:

  • Aanbevelingen bij het samenstellen van recensies over een bepaald onderwerp (het identificeren van belangrijke onderwerpen in een document en het doorzoeken van subsets van documenten).
  • Zoek naar PDF-bestanden.
  • Semantische tekstsegmentatie.
  • Volg onderwerpen en trends in de loop van de tijd.

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

Logboek blokkeren

Technische uitgave van Mail.ru Group 2019

Tegenwoordig hebben kinderen in de basisschoolleeftijd (klas 5-7) bij het lesgeven in programmeren en informatica problemen met het beheersen van de stof. Als studenten thuis opdrachten willen maken, moeten ze bovendien extra software op hun computers installeren. Leraren moeten een groot aantal vergelijkbare oplossingen voor problemen controleren, en in het geval van leren op afstand moeten ze ook een methodologie ontwikkelen voor het ontvangen van opdrachten van studenten.

De auteurs van het Block Log-project kwamen tot de conclusie: wanneer kinderen in de basisschoolleeftijd de basisbeginselen van algoritmisering leren, moet de nadruk niet liggen op het onthouden van programmeertaalopdrachten, maar op het construeren van algoritmediagrammen. Hierdoor kunnen leerlingen tijd en moeite besteden aan het ontwerpen van een algoritme, in plaats van het intypen van omslachtige syntactische structuren.

Platform Logboek blokkeren staat toe:

  1. Stroomdiagrammen maken en bewerken.
  2. Voer de gemaakte stroomdiagrammen uit en bekijk het resultaat van hun werk (uitvoergegevens).
  3. Bewaar en laad gemaakte projecten.
  4. Rasterafbeeldingen tekenen (een afbeelding genereren op basis van een algoritme gemaakt door het kind).
  5. Ontvang informatie over de complexiteit van het gemaakte algoritme (op basis van het aantal uitgevoerde bewerkingen in het algoritme).

Er wordt een rolverdeling tussen docenten en studenten verwacht. Elke gebruiker krijgt de status van leerling; om de status van leraar te verkrijgen, moet u contact opnemen met de systeembeheerder. De docent kan niet alleen beschrijvingen en voorwaarden van problemen invoeren, maar ook geautomatiseerde tests maken die automatisch worden gestart wanneer een leerling een oplossing voor het probleem in het systeem indient.

Browserbloklogboekeditor:

Technische uitgave van Mail.ru Group 2019

Nadat het probleem is opgelost, kan de leerling de oplossing downloaden en de resultaten bekijken:

Technische uitgave van Mail.ru Group 2019

Het platform bestaat uit een front-end applicatie in Vue.js en een back-end applicatie in Ruby on Rails. PostgreSQL wordt gebruikt als database. Om de implementatie te vereenvoudigen, zijn alle systeemcomponenten verpakt in Docker-containers en geassembleerd met Docker Compose. De desktopversie van Block Log is gebaseerd op het Electron-framework. Webpack werd gebruikt om de JavaScript-code te bouwen.

Projectteam: Alexander Barulev, Maxim Kolotovkin, Kirill Kucherov.

CRM-systeem voor TamTam messenger

Technische uitgave van Mail.ru Group 2019

CRM is een hulpmiddel voor gemakkelijke interactie tussen bedrijven en TamTam-gebruikers. De volgende functies zijn geïmplementeerd:

  • Een botconstructor waarmee je bots kunt maken zonder programmeervaardigheden. Binnen een paar minuten kunt u een volledig werkende bot krijgen die niet alleen wat informatie aan gebruikers kan tonen, maar ook gegevens kan verzamelen, incl. bestanden die de beheerder later kan bekijken.
  • RSS. U kunt RSS eenvoudig op elk kanaal aansluiten.
  • Vertraagde plaatsing. Hiermee kunt u op vooraf ingestelde tijden berichten verzenden en verwijderen.

Het team nam ook deel aan het testen van de Bot API en creëerde verschillende zelfgeschreven bots, zoals een bot voor het WK hockey 2019, een bot voor registratie/autorisatie in onze service en een bot voor CI/CD.

Oplossingsinfrastructuur:

  • De beheerserver bevat een monitoringsysteem voor elke server en elke Docker-container erop om snel en gemakkelijk een probleem te detecteren en op te lossen, en verschillende statistieken en gebruiksstatistieken te bekijken. Er is ook een systeem voor configuratiebeheer op afstand van onze applicatie.
  • De staging-server bevat de huidige versie van onze applicatie, beschikbaar voor algemene tests door het ontwikkelteam.
  • Beheer- en stagingservers zijn alleen via VPN beschikbaar voor ontwikkelaars, en de productieserver bevat de releaseversie van de applicatie. Het is geïsoleerd van de handen van ontwikkelaars en is alleen beschikbaar voor de eindgebruiker.
  • Het CI/CD-systeem werd geïmplementeerd met behulp van Github en Travis, notificatie met behulp van een aangepaste bot in TamTam.

Technische uitgave van Mail.ru Group 2019

De applicatiearchitectuur is een modulaire oplossing. De applicatie, database, configuratiemanager en monitoring worden in aparte Docker-containers gelanceerd, waardoor je uit de opstartomgeving kunt abstraheren, een aparte container kunt wijzigen of opnieuw kunt opstarten. Het creëren van een netwerktopologie en het beheren van containers gebeurt met Docker Compose.

Technische uitgave van Mail.ru Group 2019

Projectteam: Alexey Antufiev, Egor Gorbatov, Alexey Kotelevsky.

Vork mij

Technische uitgave van Mail.ru Group 2019

Het ForkMe-project is een platform voor het bekijken van interactieve video's, waar u uw eigen video kunt maken en deze aan uw vrienden kunt laten zien. Waarom hebben we interactieve video's nodig als er reguliere video's zijn?

De niet-lineaire plot van de video en de mogelijkheid om zelf het vervolg te kiezen, zorgen ervoor dat de kijker betrokken kan worden en dat makers van inhoud unieke verhalen kunnen laten zien, waarvan de plot door gebruikers zal worden beïnvloed. Ook zullen makers van inhoud, door videoconversiestatistieken te bestuderen, kunnen begrijpen wat het publiek het meest interesseert en materialen aantrekkelijker kunnen maken.

Bij het ontwikkelen van het project lieten de jongens zich inspireren door de interactieve film Bandersnatch van Netflix, die veel views en goede recensies kreeg. Toen de MVP al geschreven was, verscheen het nieuws dat YouTube van plan was een platform voor interactieve series te lanceren, wat nogmaals de populariteit van deze richting bevestigt.

MVP omvat: interactieve speler, videoconstructor, zoeken op inhoud en tags, videocollecties, opmerkingen, weergaven, beoordelingen, kanaal- en gebruikersprofielen.

Technische uitgave van Mail.ru Group 2019

Technologiestapel gebruikt in het project:

Technische uitgave van Mail.ru Group 2019

Hoe is het de bedoeling om het project te ontwikkelen:

  • verzameling statistieken en infographics over overgangen naar video;
  • meldingen en persoonlijke berichten voor sitegebruikers;
  • versies voor Android en iOS.

Hierna zijn we van plan toe te voegen:

  • videoverhalen maken vanaf uw telefoon;
  • gedownloade videofragmenten bewerken (bijvoorbeeld bijsnijden);
  • creatie en lancering van interactieve advertenties in de speler.

Projectteam: Maxim Morev (fullstack ontwikkelaar, werkte aan de projectarchitectuur) en Roman Maslov (fullstack ontwikkelaar, werkte aan het projectontwerp).

Online aan boord

Technische uitgave van Mail.ru Group 2019

Technische uitgave van Mail.ru Group 2019

Tegenwoordig besteden ouders veel aandacht aan de mentale ontwikkeling van hun kinderen, en kinderen zijn geïnteresseerd in intellectuele spelletjes. Daarom wint schaken weer aan populariteit. En hoewel schaken over het algemeen behoorlijk populair is, is het vinden van een vaste tegenstander voor games problematisch. Daarom maken veel mensen gebruik van online schaakdiensten, ondanks het feit dat veel spelers er de voorkeur aan geven “live” met echte stukken te spelen. Bij het schaken levert iemand echter veel mentale inspanning en wordt hij moe, en deze vermoeidheid wordt aangevuld door de negatieve impact van het zitten achter een computer of smartphone. Het gevolg is dat de hersenen al na twee games overbelast raken.

Al deze factoren brachten de auteurs tot het idee van het On-Line-On-Board-project, dat uit drie delen bestaat: een fysiek schaakbord, een desktopapplicatie en een webservice. Het bord is een gewoon schaakveld, dat de positie van de stukken herkent en met behulp van een lichtindicatie de zetten van de tegenstander aangeeft. Het bord wordt via USB aangesloten op een pc en communiceert met de desktopapplicatie. In de trainingsmodus (en voor kinderen) worden je mogelijke bewegingen gemarkeerd.

De applicatie neemt de basisfuncties van het beheer van het bord over, waardoor u de kosten aanzienlijk kunt verlagen en de implementatie van de meeste functies naar softwareniveau kunt brengen. De applicatie communiceert met een webservice waarvan de belangrijkste waarde dynamische updates is.

Het hoofdscenario voor het gebruik van het product: één persoon speelt op de dienst, de tweede op een fysiek bord dat op de dienst is aangesloten. Dat wil zeggen dat de dienst een communicatieve functie vervult.

Projectteam: Daniil Tuchin, Anton Dmitriev, Sasha Kuznetsov.

Meer over onze onderwijsprojecten kunt u lezen op deze link. En bezoek het kanaal vaker TechnostreamDaar verschijnen regelmatig nieuwe educatieve video's over programmeren, ontwikkelen en andere disciplines.

Bron: www.habr.com

Voeg een reactie