Kwestia techniczna Grupy Mail.ru 2019

Kwestia techniczna Grupy Mail.ru 2019

Pod koniec maja nasi absolwenci Technoparku (Bauman MSTU), Technotrack (MIPT), Techn Sfery (Moskiewski Uniwersytet Państwowy Łomonosowa) i Technopolis (Politechnika Piotra Wielkiego w Petersburgu) obronili swoje projekty dyplomowe. Na pracę przeznaczono trzy miesiące, a chłopaki zainwestowali w swoje pomysły wiedzę i umiejętności zdobyte w ciągu dwóch lat studiów.

W sumie powstało 13 projektów dotyczących obronności, rozwiązujących różne problemy w różnych gałęziach przemysłu. Na przykład:

  • przechowywanie w chmurze z kryptograficznym szyfrowaniem plików;
  • platforma do tworzenia interaktywnych filmów (z różnymi zakończeniami);
  • inteligentna tablica do gry w prawdziwe szachy przez sieć;
  • architektura inteligentnego wyszukiwania artykułów medycznych;
  • Oprogramowanie do nauczania dzieci szkół podstawowych podstaw algorytmizacji.

A także projekty z jednostek biznesowych:

  • System CRM dla komunikatora TamTam;
  • serwis internetowy do wyszukiwania zdjęć tematycznych na mapie Odnoklassnik;
  • usługa geokodowania adresów dla MAPS.ME.

Dziś opowiemy Wam szerzej o pięciu projektach naszych absolwentów.

Inteligentne wyszukiwanie artykułów medycznych

Kwestia techniczna Grupy Mail.ru 2019

Obszarów nauki jest wiele, w każdym z nich prowadzone są badania, w różnorodnych czasopismach publikowana jest ogromna liczba artykułów. Są to informatyka, fizyka, matematyka, biologia, medycyna i wiele innych.

Autorzy projekt zdecydował się skupić na medycynie. Prawie wszystkie artykuły o tematyce medycznej zgromadzone są na portalu PubMed. Portal udostępnia własną wyszukiwarkę. Jednak jego możliwości są bardzo ograniczone. Dlatego chłopaki ulepszyli system wyszukiwania, dodali obsługę długich zapytań i możliwość zawężania zapytań za pomocą modelowania tematycznego.

Kwestia techniczna Grupy Mail.ru 2019
SERP zawiera rankingową listę dokumentów ze zdefiniowanymi tematami, a słowa i terminy związane z tymi tematami są wyróżnione za pomocą probabilistycznego modelowania tematów. Użytkownik może kliknąć podświetlone terminy, aby zawęzić zapytanie.

Kwestia techniczna Grupy Mail.ru 2019
Aby przyspieszyć przeszukiwanie ogromnej bazy PubMed, autorzy napisali własną wyszukiwarkę, którą można łatwo zintegrować z dowolną infrastrukturą.

Wyszukiwanie odbywa się w trzech etapach:

  1. Dokumenty kandydatów są wybierane przy użyciu indeksu odwrotnego.
  2. Ranking kandydatów odbywa się za pomocą algorytmu BM25F, który podczas wyszukiwania uwzględnia różne pola w dokumentach. Zatem słowa w tytule mają większą wagę niż słowa w abstrakcji.
  3. System buforowania służy również do przyspieszenia przetwarzania częstych żądań.

Kwestia techniczna Grupy Mail.ru 2019

Architektura mikroserwisów:

Kwestia techniczna Grupy Mail.ru 2019
Zasadniczo dane tekstowe są przesyłane pomiędzy usługami. Do dużych prędkości transferu wykorzystywany jest GRPC – framework do łączenia modułów w architekturze mikroserwisowej. Serializacja danych jest również używana przy użyciu formatu wymiany komunikatów Protobuf.

Z jakich elementów składa się system:

  • Serwer do przetwarzania przychodzących żądań użytkowników w Node.js.
  • Żądania równoważenia obciążenia za pomocą serwera proxy Nginx.
  • Serwer Flask implementuje REST API i odbiera żądania przekazywane z Node.js.
  • Wszystkie surowe i przetworzone dane, a także informacje o zapytaniach są przechowywane w MongoDB.
  • Wszystkie prośby o odpowiednie wyniki tematyzacji dokumentów trafiają do RabbitMQ.

Przykład wyników wyszukiwania:

Kwestia techniczna Grupy Mail.ru 2019

Co planujemy dalej:

  • Zalecenia przy tworzeniu recenzji na zadany temat (identyfikacja ważnych tematów w dokumencie i przeszukiwanie podzbiorów dokumentów).
  • Wyszukaj pliki PDF.
  • Semantyczna segmentacja tekstu.
  • Śledź tematy i trendy na przestrzeni czasu.

Zespół projektowy: Fedor Petryaykin, Vladislav Dorozhinsky, Maxim Nakhodnov, Maxim Filin

Dziennik bloków

Kwestia techniczna Grupy Mail.ru 2019

Dziś, ucząc programowania i informatyki, dzieci w wieku szkolnym (klasy 5–7) mają problemy z opanowaniem materiału. Dodatkowo, jeśli uczniowie chcą odrabiać zadania w domu, muszą zainstalować na swoich komputerach dodatkowe oprogramowanie. Nauczyciele muszą sprawdzić dużą liczbę podobnych rozwiązań problemów, a w przypadku nauki zdalnej muszą także opracować metodykę przyjmowania zadań od uczniów.

Autorzy projektu Block Log doszli do wniosku, że ucząc dzieci w wieku szkolnym podstaw algorytmizacji, nacisk nie powinien być położony na zapamiętywanie poleceń języka programowania, ale na konstruowanie diagramów algorytmów. Dzięki temu uczniowie będą mogli poświęcić czas i wysiłek na zaprojektowanie algorytmu, zamiast wpisywać kłopotliwe struktury składniowe.

platforma Dziennik bloków pozwala na:

  1. Twórz i edytuj schematy blokowe.
  2. Uruchom utworzone schematy blokowe i zobacz wynik ich pracy (dane wyjściowe).
  3. Zapisz i wczytaj utworzone projekty.
  4. Rysuj obrazy rastrowe (generowanie obrazu na podstawie algorytmu stworzonego przez dziecko).
  5. Otrzymuj informacje o złożoności utworzonego algorytmu (na podstawie liczby operacji wykonanych w algorytmie).

Oczekuje się podziału ról na nauczycieli i uczniów. Każdy użytkownik otrzymuje status studenta, aby uzyskać status nauczyciela należy skontaktować się z administratorem systemu. Nauczyciel może nie tylko wprowadzać opisy i warunki problemów, ale także tworzyć automatyczne testy, które będą automatycznie uruchamiane, gdy uczeń zgłosi rozwiązanie problemu do systemu.

Edytor dziennika bloków przeglądarki:

Kwestia techniczna Grupy Mail.ru 2019

Po rozwiązaniu problemu uczeń może pobrać rozwiązanie i zobaczyć wyniki:

Kwestia techniczna Grupy Mail.ru 2019

Platforma składa się z aplikacji front-endowej w Vue.js oraz aplikacji back-endowej w Ruby on Rails. Jako baza danych używany jest PostgreSQL. Aby uprościć wdrażanie, wszystkie komponenty systemu są pakowane w kontenery Docker i montowane przy użyciu Docker Compose. Wersja komputerowa Block Log jest oparta na frameworku Electron. Do zbudowania kodu JavaScript wykorzystano pakiet Webpack.

Zespół projektowy: Alexander Barulev, Maxim Kolotovkin, Kirill Kucherov.

System CRM dla komunikatora TamTam

Kwestia techniczna Grupy Mail.ru 2019

CRM to narzędzie umożliwiające wygodną interakcję pomiędzy firmami a użytkownikami TamTam. Zaimplementowano następujące funkcje:

  • Konstruktor botów umożliwiający tworzenie botów bez umiejętności programowania. W kilka minut możesz otrzymać w pełni działającego bota, który potrafi nie tylko pokazywać użytkownikom pewne informacje, ale także zbierać dane m.in. pliki, które administrator może przeglądać później.
  • RSS. Możesz łatwo podłączyć RSS do dowolnego kanału.
  • Opóźnione opublikowanie. Umożliwia wysyłanie i usuwanie wiadomości o zadanych porach.

Zespół wziął także udział w testowaniu Bot API, tworząc kilka samodzielnie napisanych botów, takich jak bot na Mistrzostwa Świata w Hokeju 2019, bot do rejestracji/autoryzacji w naszym serwisie oraz bot do CI/CD.

Infrastruktura rozwiązania:

  • Serwer zarządzający zawiera system monitorowania każdego serwera i każdego znajdującego się na nim kontenera Docker, aby szybko i wygodnie wykryć problem i go rozwiązać, przeglądać różne wskaźniki i statystyki użytkowania. Istnieje również system zdalnego zarządzania konfiguracją naszej aplikacji.
  • Serwer pomostowy zawiera aktualną wersję naszej aplikacji, dostępną do ogólnych testów przez zespół programistów.
  • Serwery zarządzające i pomostowe są dostępne dla programistów wyłącznie za pośrednictwem VPN, a serwer produkcyjny zawiera wydaną wersję aplikacji. Jest odizolowany od rąk programistów i jest dostępny tylko dla użytkownika końcowego.
  • System CI/CD został zaimplementowany przy użyciu Githuba i Travisa, powiadamianie za pomocą niestandardowego bota w TamTam.

Kwestia techniczna Grupy Mail.ru 2019

Architektura aplikacji jest rozwiązaniem modułowym. Aplikacja, baza danych, menedżer konfiguracji i monitorowanie uruchamiane są w oddzielnych kontenerach Docker, co pozwala na wyodrębnienie ze środowiska startowego, zmianę lub ponowne uruchomienie osobnego kontenera. Tworzenie topologii sieci i zarządzanie kontenerami odbywa się za pomocą Docker Compose.

Kwestia techniczna Grupy Mail.ru 2019

Zespół projektowy: Aleksiej Antufiew, Jegor Gorbatow, Aleksiej Kotelewski.

ForkMe

Kwestia techniczna Grupy Mail.ru 2019

Projekt ForkMe to platforma do oglądania interaktywnych filmów, na której możesz stworzyć własny film i pokazać go znajomym. Po co nam interaktywne filmy, skoro istnieją zwykłe?

Nieliniowa fabuła filmu i możliwość samodzielnego wyboru kontynuacji pozwolą na zaangażowanie widza, a twórcy treści będą mogli pokazać unikalne historie, na których fabułę będą mieli wpływ użytkownicy. Ponadto twórcy treści, badając statystyki konwersji wideo, będą mogli zrozumieć, co najbardziej interesuje odbiorców i uatrakcyjnić materiały.

Opracowując projekt, chłopaki inspirowali się interaktywnym filmem Bandersnatch z Netflix, który zebrał wiele wyświetleń i dobrych recenzji. Gdy MVP był już napisany, pojawiła się informacja, że ​​Youtube planuje uruchomić platformę z interaktywnymi serialami, co po raz kolejny potwierdza popularność tego kierunku.

MVP obejmuje: interaktywny odtwarzacz, konstruktor wideo, wyszukiwanie według treści i tagów, kolekcje wideo, komentarze, wyświetlenia, oceny, kanały i profile użytkowników.

Kwestia techniczna Grupy Mail.ru 2019

Stos technologiczny wykorzystany w projekcie:

Kwestia techniczna Grupy Mail.ru 2019

Jak planuje się rozwijać projekt:

  • gromadzenie statystyk i infografik dotyczących przejść na wideo;
  • powiadomienia i wiadomości osobiste dla użytkowników serwisu;
  • wersje na Androida i iOS.

Następnie planujemy dodać:

  • tworzenie historii wideo z telefonu;
  • edycja pobranych fragmentów wideo (np. przycinanie);
  • stworzenie i uruchomienie interaktywnej reklamy w odtwarzaczu.

Zespół projektowy: Maxim Morev (programista fullstack, pracował nad architekturą projektu) i Roman Maslov (programista fullstack, pracował nad projektem projektu).

On-line-na-pokładzie

Kwestia techniczna Grupy Mail.ru 2019

Kwestia techniczna Grupy Mail.ru 2019

Dziś rodzice przywiązują dużą wagę do rozwoju umysłowego swoich dzieci, a dzieci interesują się grami intelektualnymi. Dlatego szachy znów zyskują na popularności. I chociaż szachy w ogóle są dość popularne, znalezienie stałego przeciwnika do gier jest problematyczne. Dlatego wiele osób korzysta z serwisów szachowych online, mimo że wielu graczy woli grać „na żywo” prawdziwymi figurami. Jednak grając w szachy, człowiek wkłada duży wysiłek umysłowy i męczy się, a zmęczenie to dopełniają negatywne skutki siedzenia przy komputerze czy smartfonie. W rezultacie mózg zostaje przeciążony już po dwóch grach.

Wszystkie te czynniki popchnęły autorów do pomysłu projektu On-Line-On-Board, który składa się z trzech części: fizycznej szachownicy, aplikacji desktopowej oraz serwisu internetowego. Szachownica to zwykłe pole szachowe, które rozpoznaje położenie pionów i za pomocą sygnalizacji świetlnej wskazuje ruchy przeciwnika. Płytka podłączana jest poprzez USB do komputera PC i komunikuje się z aplikacją desktopową. W trybie treningowym (i dla dzieci) podświetlone są możliwe ruchy.

Aplikacja przejmuje podstawowe funkcje zarządzania tablicą, co pozwala znacznie obniżyć jej koszt i przenieść realizację większości funkcji do poziomu oprogramowania. Aplikacja komunikuje się z serwisem internetowym, którego główną wartością jest dynamiczna aktualizacja.

Główny scenariusz korzystania z produktu: jedna osoba gra w serwisie, druga na fizycznej planszy podłączonej do serwisu. Oznacza to, że usługa przyjmuje funkcję komunikacyjną.

Zespół projektowy: Daniil Tuchin, Anton Dmitriev, Sasha Kuznetsov.

Więcej o naszych projektach edukacyjnych można przeczytać na stronie link. I częściej odwiedzaj kanał Technostream, regularnie pojawiają się tam nowe filmy edukacyjne na temat programowania, rozwoju i innych dyscyplin.

Źródło: www.habr.com

Dodaj komentarz