Edizione tecnica del gruppo Mail.ru 2019

Edizione tecnica del gruppo Mail.ru 2019

Alla fine di maggio, i nostri laureati di Technopark (Bauman MSTU), Technotrack (MIPT), Technosphere (Università statale di Mosca Lomonosov) e Technopolis (Politecnico Pietro il Grande di San Pietroburgo) hanno difeso i loro progetti di diploma. Sono stati assegnati tre mesi di lavoro e i ragazzi hanno investito nella loro idea le conoscenze e le competenze acquisite in due anni di studio.

In totale, c'erano 13 progetti sulla difesa, che risolvevano vari problemi in diversi settori. Per esempio:

  • archiviazione cloud con crittografia crittografica dei file;
  • piattaforma per la creazione di video interattivi (con finali diversi);
  • tavola intelligente per giocare a veri scacchi in rete;
  • architettura per il recupero intelligente di articoli medici;
  • Software per insegnare ai bambini delle scuole primarie le basi dell'algoritmo.

Oltre ai progetti delle business unit:

  • Sistema CRM per TamTam Messenger;
  • servizio web per la ricerca di foto tematiche sulla mappa per Odnoklassniki;
  • servizio di geocodifica degli indirizzi per MAPS.ME.

Oggi vi parleremo più in dettaglio di cinque progetti dei nostri laureati.

Ricerca intelligente di articoli medici

Edizione tecnica del gruppo Mail.ru 2019

Ci sono molte aree nel campo scientifico, in ognuna delle quali viene condotta la ricerca, un numero enorme di articoli viene pubblicato su una varietà di riviste. Si tratta di informatica, fisica, matematica, biologia, medicina e molti altri.

Autori progetto ha deciso di concentrarsi sul campo medico. Quasi tutti gli articoli su argomenti medici sono raccolti sul portale PubMed. Il portale fornisce la propria ricerca. Tuttavia, le sue capacità sono molto limitate. Pertanto, i ragazzi hanno migliorato il sistema di ricerca, aggiunto il supporto per query lunghe e la possibilità di perfezionare le query utilizzando la modellazione degli argomenti.

Edizione tecnica del gruppo Mail.ru 2019
La SERP contiene un elenco classificato di documenti con i relativi argomenti definiti e le parole e i termini correlati a questi argomenti vengono evidenziati utilizzando la modellazione probabilistica degli argomenti. L'utente può fare clic sui termini evidenziati per restringere la query di ricerca.

Edizione tecnica del gruppo Mail.ru 2019
Per rendere rapida la ricerca nell'enorme database PubMed, gli autori hanno creato il proprio motore di ricerca che può essere facilmente integrato in qualsiasi infrastruttura.

La ricerca si svolge in tre fasi:

  1. I documenti candidati vengono selezionati utilizzando un indice inverso.
  2. I candidati vengono classificati utilizzando l'algoritmo BM25F, che tiene conto di diversi campi nei documenti durante la ricerca. Pertanto, le parole nel titolo hanno più peso delle parole nell’abstract.
  3. Viene utilizzato anche un sistema di caching per velocizzare l'elaborazione delle richieste frequenti.

Edizione tecnica del gruppo Mail.ru 2019

Architettura dei microservizi:

Edizione tecnica del gruppo Mail.ru 2019
Fondamentalmente, i dati di testo strutturati vengono trasferiti tra servizi. Per velocità di trasferimento elevate, viene utilizzato GRPC, un framework per la connessione di moduli in un'architettura di microservizi. La serializzazione dei dati viene utilizzata anche utilizzando il formato di scambio dei messaggi Protobuf.

Quali componenti include il sistema:

  • Server per l'elaborazione delle richieste degli utenti in entrata su Node.js.
  • Richieste di bilanciamento del carico utilizzando il server proxy nginx.
  • Il server Flask implementa l'API REST e riceve le richieste inoltrate da Node.js.
  • Tutti i dati grezzi ed elaborati, nonché le informazioni sulle query, sono archiviati in MongoDB.
  • Tutte le richieste di risultati rilevanti per la tematizzazione dei documenti vanno a RabbitMQ.

Esempio di risultati di ricerca:

Edizione tecnica del gruppo Mail.ru 2019

Cosa intendiamo fare dopo:

  • Raccomandazioni durante la compilazione di recensioni su un determinato argomento (identificazione di argomenti importanti in un documento e ricerca tra sottoinsiemi di documenti).
  • Cerca file PDF.
  • Segmentazione semantica del testo.
  • Tieni traccia degli argomenti e delle tendenze nel tempo.

Team di progetto: Fedor Petryaykin, Vladislav Dorozhinsky, Maxim Nakhodnov, Maxim Filin

Registro di blocco

Edizione tecnica del gruppo Mail.ru 2019

Oggi, quando insegnano programmazione e informatica, i bambini in età di scuola primaria (classi 5-7) hanno problemi a padroneggiare il materiale. Inoltre, se gli studenti desiderano completare i compiti a casa, devono installare software aggiuntivo sui propri computer. Gli insegnanti devono verificare un gran numero di soluzioni simili ai problemi e, nel caso dell'apprendimento a distanza, devono anche sviluppare una metodologia per ricevere i compiti dagli studenti.

Gli autori del progetto Block Log sono giunti alla conclusione: quando si insegnano ai bambini in età di scuola primaria le basi dell'algoritmo, l'enfasi non dovrebbe essere posta sulla memorizzazione dei comandi del linguaggio di programmazione, ma sulla costruzione di diagrammi di algoritmi. Ciò consentirà agli studenti di dedicare tempo e impegno alla progettazione di un algoritmo, anziché digitare strutture sintattiche scomode.

piattaforma Registro di blocco ti permette di:

  1. Creare e modificare diagrammi di flusso.
  2. Esegui i diagrammi di flusso creati e guarda il risultato del loro lavoro (dati di output).
  3. Salva e carica i progetti creati.
  4. Disegna immagini raster (generando un'immagine in base a un algoritmo creato dal bambino).
  5. Ricevi informazioni sulla complessità dell'algoritmo creato (in base al numero di operazioni eseguite nell'algoritmo).

È prevista una divisione dei ruoli tra docenti e studenti. Qualsiasi utente riceve lo stato di studente; per ottenere lo stato di insegnante è necessario contattare l'amministratore di sistema. L'insegnante può non solo inserire descrizioni e condizioni dei problemi, ma anche creare test automatizzati che verranno avviati automaticamente quando uno studente invia una soluzione al problema nel sistema.

Editor del registro dei blocchi del browser:

Edizione tecnica del gruppo Mail.ru 2019

Dopo aver risolto il problema, lo studente può scaricare la soluzione e vedere i risultati:

Edizione tecnica del gruppo Mail.ru 2019

La piattaforma è composta da un'applicazione front-end in Vue.js e un'applicazione back-end in Ruby on Rails. PostgreSQL viene utilizzato come database. Per semplificare la distribuzione, tutti i componenti del sistema vengono inseriti in contenitori Docker e assemblati utilizzando Docker Compose. La versione desktop di Block Log è basata sul framework Electron. Webpack è stato utilizzato per creare il codice JavaScript.

Gruppo di progetto: Alexander Barulev, Maxim Kolotovkin, Kirill Kucherov.

Sistema CRM per TamTam Messenger

Edizione tecnica del gruppo Mail.ru 2019

CRM è uno strumento per una comoda interazione tra aziende e utenti TamTam. Sono state implementate le seguenti funzioni:

  • Un costruttore di bot che ti consente di creare bot senza competenze di programmazione. In pochi minuti puoi ottenere un bot completamente funzionante che non solo può mostrare alcune informazioni agli utenti, ma anche raccogliere dati, incl. file che l'amministratore può visualizzare in seguito.
  • RSS. Puoi collegare facilmente RSS a qualsiasi canale.
  • Pubblicazione ritardata. Consente di inviare ed eliminare messaggi ad orari prestabiliti.

Il team ha anche preso parte al test dell'API Bot, creando diversi bot autoprodotti, come un bot per la Coppa del mondo di hockey 2019, un bot per la registrazione/autorizzazione nel nostro servizio e un bot per CI/CD.

Infrastruttura della soluzione:

  • Il server di gestione contiene un sistema di monitoraggio per ciascun server e ciascun contenitore Docker su di esso al fine di rilevare rapidamente e comodamente un problema e risolverlo, visualizzare varie metriche e statistiche di utilizzo. Esiste anche un sistema per la gestione remota della configurazione della nostra applicazione.
  • Il server di staging contiene la versione corrente della nostra applicazione, disponibile per test generali da parte del team di sviluppo.
  • I server di gestione e di staging sono disponibili agli sviluppatori solo tramite VPN e il server di produzione contiene la versione finale dell'applicazione. È isolato dalle mani degli sviluppatori ed è disponibile solo per l'utente finale.
  • Il sistema CI/CD è stato implementato utilizzando Github e Travis, la notifica utilizzando un bot personalizzato in TamTam.

Edizione tecnica del gruppo Mail.ru 2019

L'architettura dell'applicazione è una soluzione modulare. L'applicazione, il database, il gestore della configurazione e il monitoraggio vengono avviati in contenitori Docker separati, che consentono di astrarre dall'ambiente di lancio, modificare o riavviare un contenitore separato. La creazione di una topologia di rete e la gestione dei contenitori vengono eseguite utilizzando Docker Compose.

Edizione tecnica del gruppo Mail.ru 2019

Gruppo di progetto: Alexey Antufiev, Egor Gorbatov, Alexey Kotelevsky.

ForkMe

Edizione tecnica del gruppo Mail.ru 2019

Il progetto ForkMe è una piattaforma per guardare video interattivi, dove puoi creare il tuo video e mostrarlo ai tuoi amici. Perché abbiamo bisogno di video interattivi se ce ne sono di normali?

La trama non lineare del video e la possibilità di scegliere da soli il seguito consentono allo spettatore di essere coinvolto e i creatori di contenuti potranno mostrare storie uniche, la cui trama sarà influenzata dagli utenti. Inoltre, i creatori di contenuti, studiando le statistiche di conversione dei video, saranno in grado di capire cosa interessa di più al pubblico e rendere i materiali più attraenti.

Durante lo sviluppo del progetto, i ragazzi si sono ispirati al film interattivo Bandersnatch di Netflix, che ha ricevuto molte visualizzazioni e buone recensioni. Quando l'MVP era già stato scritto, è apparsa la notizia che Youtube stava progettando di lanciare una piattaforma per serie interattive, il che conferma ancora una volta la popolarità di questa direzione.

MVP include: lettore interattivo, costruttore di video, ricerca per contenuto e tag, raccolte di video, commenti, visualizzazioni, valutazioni, canali e profili utente.

Edizione tecnica del gruppo Mail.ru 2019

Stack tecnologico utilizzato nel progetto:

Edizione tecnica del gruppo Mail.ru 2019

Come è previsto lo sviluppo del progetto:

  • raccolta di statistiche e infografiche sulle transizioni al video;
  • notifiche e messaggi personali per gli utenti del sito;
  • versioni per Android e iOS.

Successivamente intendiamo aggiungere:

  • creare storie video dal tuo telefono;
  • modifica dei frammenti video scaricati (ad esempio ritaglio);
  • creazione e lancio di pubblicità interattiva nel player.

Team di progetto: Maxim Morev (sviluppatore fullstack, ha lavorato all'architettura del progetto) e Roman Maslov (sviluppatore fullstack, ha lavorato alla progettazione del progetto).

On-Line-On-Board

Edizione tecnica del gruppo Mail.ru 2019

Edizione tecnica del gruppo Mail.ru 2019

Oggi i genitori prestano grande attenzione allo sviluppo mentale dei loro figli e i bambini sono interessati ai giochi intellettuali. Pertanto, gli scacchi stanno guadagnando di nuovo popolarità. E sebbene gli scacchi in generale siano piuttosto popolari, trovare un avversario abituale per le partite è problematico. Pertanto, molte persone utilizzano i servizi di scacchi online, nonostante molti giocatori preferiscano giocare “dal vivo” con pezzi reali. Tuttavia, quando si gioca a scacchi, una persona fa un grande sforzo mentale e si stanca, e questa stanchezza è completata dall'impatto negativo di sedersi al computer o allo smartphone. Di conseguenza, il cervello viene sovraccaricato già dopo due partite.

Tutti questi fattori hanno spinto gli autori all'idea del progetto On-Line-On-Board, che si compone di tre parti: una scacchiera fisica, un'applicazione desktop e un servizio web. La scacchiera è un normale campo da scacchi, che riconosce la posizione dei pezzi e, con l’aiuto di un indicatore luminoso, indica le mosse dell’avversario. La scheda si collega tramite USB ad un PC e comunica con l'applicazione desktop. Nella modalità allenamento (e per i bambini), le tue possibili mosse sono evidenziate.

L'applicazione assume le funzioni di base della gestione della scheda, il che consente di ridurne notevolmente i costi e portare l'implementazione della maggior parte delle funzioni a livello software. L'applicazione comunica con un servizio web il cui valore principale è l'aggiornamento dinamico.

Lo scenario principale per l'utilizzo del prodotto: una persona gioca sul servizio, la seconda su un tabellone fisico collegato al servizio. Il servizio assume cioè una funzione comunicativa.

Gruppo di progetto: Daniil Tuchin, Anton Dmitriev, Sasha Kuznetsov.

Puoi leggere di più sui nostri progetti educativi su questo link. E visita il canale più spesso Technostream, vengono visualizzati regolarmente nuovi video didattici sulla programmazione, lo sviluppo e altre discipline.

Fonte: habr.com

Aggiungi un commento