Rilis Tech Mail.ru Group 2019



Pada akhir Mei, lulusan kami dari Technopark (MSTU dinamai Bauman), Technotrek (MIPT), Technosphere (Universitas Negeri Moskow dinamai Lomonosov) dan Technopolis (SPbPU Peter the Great) membela proyek kelulusan mereka. Tiga bulan dialokasikan untuk bekerja, dan orang-orang itu memasukkan pengetahuan dan keterampilan yang diperoleh dalam dua tahun masa belajar ke dalam keturunan mereka.

Secara total, ada 13 proyek pertahanan, menyelesaikan berbagai masalah di berbagai industri. Sebagai contoh:

  • penyimpanan cloud dengan enkripsi file kriptografi;
  • platform untuk membuat video interaktif (dengan ujung yang berbeda);
  • papan pintar untuk bermain catur nyata di jaringan;
  • arsitektur untuk pencarian artikel medis yang cerdas;
  • Perangkat lunak untuk mengajar anak-anak sekolah dasar dasar-dasar algoritmaisasi.

Serta proyek dari unit bisnis:

  • Sistem CRM untuk messenger TamTam;
  • layanan web untuk menemukan foto tematik di peta untuk Odnoklassniki;
  • layanan alamat geocoding untuk MAPS.ME.

Hari ini kami memberi tahu Anda lebih banyak tentang lima proyek lulusan kami.

Pencarian artikel medis cerdas




Ada banyak bidang dalam bidang ilmiah, di mana masing-masing penelitian sedang dilakukan, sejumlah besar artikel diterbitkan dalam berbagai jurnal. Ini adalah teknologi informasi, fisika, matematika, biologi, kedokteran, dan banyak lainnya.

Penulis proyek memutuskan untuk fokus pada bidang medis. Hampir semua artikel tentang topik medis dikumpulkan di portal PubMed. Portal menyediakan pencarian sendiri. Namun, kemampuannya sangat terbatas. Oleh karena itu, orang-orang meningkatkan sistem pencarian, menambahkan dukungan untuk permintaan panjang dan kemampuan untuk memperbaiki permintaan menggunakan pemodelan tematik.


Hasil pencarian berisi daftar peringkat dokumen dengan definisi topik mereka, dan kata-kata dan istilah yang terkait dengan topik ini disorot karena pemodelan tematik probabilistik. Pengguna dapat mengklik pada istilah yang disorot dengan mempersempit kueri pencarian.


Untuk dengan cepat mencari basis data PubMed yang besar, penulis menulis mesin pencari mereka sendiri yang dapat dengan mudah diintegrasikan ke dalam infrastruktur apa pun.

Pencarian dilakukan dalam tiga tahap:

  1. Menggunakan indeks terbalik, dokumen kandidat dipilih.
  2. Peringkat pemohon diterapkan sesuai dengan algoritma BM25F, yang memperhitungkan berbagai bidang dalam dokumen saat melakukan pencarian. Dengan demikian, kata-kata dalam judul memiliki bobot lebih dari kata-kata dalam anotasi.
  3. Sistem caching juga digunakan untuk mempercepat pemrosesan permintaan frekuensi.



Arsitektur microservice:


Pada dasarnya, data teks terstruktur ditransfer antar layanan. Untuk transmisi kecepatan tinggi, GRPC digunakan sebagai kerangka kerja untuk menghubungkan modul dalam arsitektur layanan mikro. Serialisasi data juga digunakan menggunakan format pesan Protobuf.

Komponen apa yang termasuk dalam sistem:

  • Server untuk memproses permintaan pengguna yang masuk di Node.js.
  • Minta penyetelan beban dengan proxy nginx.
  • Server Flask mengimplementasikan REST API dan menerima permintaan yang diteruskan dari Node.js.
  • Semua data mentah dan diproses, serta informasi permintaan, disimpan dalam MongoDB.
  • Semua permintaan untuk penerbitan dokumen terkait yang berkaitan dengan tema diajukan ke RabbitMQ.

Contoh hasil pencarian:



Apa yang direncanakan akan dilakukan di masa depan:

  • Rekomendasi saat mengumpulkan ulasan tentang topik yang diberikan (mengidentifikasi topik penting dalam dokumen dan mencari subset dokumen).
  • Cari file PDF.
  • Segmentasi teks semantik.
  • Melacak topik dan tren dari waktu ke waktu.

Tim proyek: Fedor Petryaykin, Vladislav Dorozhinsky, Maxim Nakhodnov, Maxim Filin

Blokir log




Saat ini, ketika mengajar pemrograman dan ilmu komputer, anak-anak usia sekolah dasar (kelas 5-7) memiliki masalah dengan penguasaan materi. Selain itu, jika siswa ingin menyelesaikan tugas di rumah, mereka harus menginstal perangkat lunak tambahan di komputer mereka. Guru harus memeriksa sejumlah besar solusi serupa untuk masalah, dan dalam hal pembelajaran jarak jauh, mereka juga harus mengembangkan metodologi untuk menerima tugas dari siswa.

Para penulis proyek Block Log sampai pada kesimpulan: ketika mengajar anak-anak sekolah dasar dasar-dasar algoritmaisasi, penekanannya seharusnya bukan pada menghafal perintah dalam bahasa pemrograman, tetapi pada membangun skema algoritmik. Ini akan memungkinkan siswa untuk menghabiskan waktu dan energi dalam merancang suatu algoritma, daripada pada konstruksi sintaksis yang rumit.

Platform Block Log memungkinkan Anda untuk:

  1. Buat dan edit diagram alur.
  2. Jalankan diagram alur yang dibuat dan lihat hasil pekerjaan mereka (data keluaran).
  3. Simpan dan muat proyek yang dibuat.
  4. Gambar bitmap (pembuatan gambar berdasarkan algoritma yang dibuat oleh anak).
  5. Dapatkan informasi tentang kompleksitas algoritma yang dibuat (berdasarkan pada jumlah operasi yang dilakukan dalam algoritma).

Peran tersebut seharusnya dibagi menjadi guru dan siswa. Setiap pengguna menerima status siswa, untuk mendapatkan status guru, Anda harus menghubungi administrator sistem. Guru tidak hanya dapat memasukkan deskripsi dan kondisi tugas, tetapi juga membuat tes otomatis yang akan berjalan secara otomatis ketika siswa mengirimkan solusi ke sistem.

Editor Blok Browser Log:



Setelah memecahkan masalah, siswa dapat mengunduh solusinya dan melihat hasilnya:



Platform terdiri dari aplikasi frontend di Vue.js dan aplikasi backend di Ruby on Rails. Basis datanya adalah PostgreSQL. Untuk mempermudah penyebaran, semua komponen sistem dikemas dalam wadah Docker dan dirakit menggunakan Docker Compose. Versi desktop Block Log didasarkan pada kerangka Elektron. Webpack digunakan untuk membuat kode JavaScript.

Tim proyek: Alexander Barulev, Maxim Kolotovkin, Kirill Kucherov.

Sistem CRM untuk TamTam messenger




CRM adalah alat untuk interaksi bisnis yang nyaman dengan pengguna TamTam. Fungsi-fungsi berikut diimplementasikan:

  • perancang bot yang memungkinkan Anda membuat bot tanpa keterampilan pemrograman. Dalam beberapa menit, Anda bisa mendapatkan bot yang berfungsi penuh yang tidak hanya dapat menampilkan beberapa informasi kepada pengguna, tetapi juga mengumpulkan data, termasuk File yang dapat dilihat administrator nanti.
  • Umpan RSS. Anda dapat dengan mudah menghubungkan RSS ke feed apa pun.
  • Posting tertunda. Memungkinkan Anda mengirim dan menghapus pesan pada waktu yang telah ditentukan.

Tim juga mengambil bagian dalam pengujian Bot API, membuat beberapa bot yang ditulis sendiri, seperti bot untuk World Hockey World 2019, bot untuk mendaftar / mengesahkan dalam layanan kami, bot untuk CI / CD.

Solusi Infrastruktur:

  • Server manajemen berisi sistem pemantauan untuk setiap server dan setiap wadah Docker di atasnya, untuk mendeteksi masalah dengan cepat dan mudah, lihat berbagai metrik dan statistik penggunaan. Ada juga sistem manajemen konfigurasi jarak jauh untuk aplikasi kita.
  • Server pementasan berisi versi aplikasi kita saat ini, tersedia untuk pengujian umum oleh tim pengembang.
  • Server manajemen dan pementasan hanya tersedia melalui VPN untuk pengembang, dan server produksi berisi versi rilis aplikasi. Itu terisolasi dari tangan pengembang dan hanya tersedia untuk pengguna akhir.
  • Sistem CI / CD diimplementasikan menggunakan Github dan Travis, pemberitahuan menggunakan bot khusus di TamTam.



Arsitektur aplikasi adalah solusi modular. Aplikasi, basis data, manajer konfigurasi, dan pemantauan diluncurkan dalam wadah Docker yang terpisah, yang memungkinkan Anda untuk abstrak dari lingkungan startup, mengubah atau memulai kembali wadah yang terpisah. Topologi jaringan dan manajemen wadah dilakukan menggunakan Docker Compose.



Tim proyek: Alexey Antufiev, Egor Gorbatov, Alexey Kotelevsky.

Forkme




Proyek ForkMe adalah platform menonton video interaktif di mana Anda dapat mendesain video Anda dan menunjukkannya kepada teman-teman. Mengapa kita perlu video interaktif, jika ada yang biasa?

Plot non-linear dari video dan kemampuan untuk memilih kelanjutan sendiri memungkinkan Anda untuk melibatkan pemirsa, dan pembuat konten akan dapat menunjukkan kisah unik bahwa pengguna akan mempengaruhi plot. Selain itu, pembuat konten, mempelajari statistik transisi dalam video, akan dapat memahami apa yang paling diminati pemirsa dan membuat materi lebih menarik.

Ketika mengembangkan proyek, mereka terinspirasi oleh film Netflix Bandersnatch interaktif, yang mengumpulkan banyak pandangan dan ulasan bagus. Ketika MVP sudah ditulis, muncul berita bahwa Youtube juga berencana untuk meluncurkan platform untuk seri interaktif, yang sekali lagi menegaskan popularitas arahan ini.

MVP meliputi: pemutar interaktif, perancang video, pencarian berdasarkan konten dan tag, koleksi video, komentar, tampilan, peringkat, profil saluran dan pengguna.



Tumpukan teknologi yang digunakan dalam proyek:



Bagaimana Anda berencana untuk mengembangkan proyek:

  • koleksi statistik dan infografis tentang transisi dalam video;
  • pemberitahuan dan pesan pribadi untuk pengguna situs;
  • versi untuk Android dan iOS.

Setelah itu, direncanakan untuk menambahkan:

  • membuat cerita video dari telepon;
  • mengedit fragmen video yang diunduh (misalnya, memotong);
  • pembuatan dan peluncuran iklan interaktif di pemain.

Tim proyek: Maxim Morev (pengembang fullstack, terlibat dalam arsitektur proyek) dan Roman Maslov (fullstack-developer, terlibat dalam desain proyek).

On-line-on-board






Saat ini, orang tua menaruh perhatian besar pada perkembangan mental anak-anak, dan anak-anak tertarik dengan permainan intelektual. Oleh karena itu, catur mendapatkan popularitas lagi. Meskipun catur umumnya cukup populer, menemukan lawan reguler untuk permainan itu bermasalah. Oleh karena itu, banyak orang menggunakan layanan catur online, meskipun kenyataannya banyak pemain lebih suka bermain live, dengan potongan nyata. Namun, saat bermain catur, seseorang berusaha keras dan lelah, dan kelelahan ini ditambah dengan dampak negatif dari duduk di depan komputer atau smartphone. Akibatnya, otak kelebihan beban setelah dua pihak.

Semua faktor ini mendorong penulis untuk ide proyek On-Line-On-Board, yang terdiri dari tiga bagian: papan catur fisik, aplikasi desktop, dan layanan web. Papan adalah bidang catur reguler yang mengenali posisi bidak dan dengan bantuan indikasi cahaya menunjukkan gerakan lawan. Papan terhubung melalui USB ke PC dan berkomunikasi dengan aplikasi desktop. Dalam mode pembelajaran (dan untuk anak-anak) kemungkinan gerakan Anda disorot.

Aplikasi ini mengambil fungsi dasar mengelola papan, yang dapat sangat mengurangi biaya dan membawa implementasi sebagian besar fungsi ke tingkat program. Aplikasi ini dikaitkan dengan layanan web yang nilai utamanya adalah pembaruan dinamis.

Skenario utama untuk menggunakan produk: satu orang bermain di layanan, yang kedua di papan fisik yang terhubung ke layanan. Artinya, layanan ini mengambil fungsi komunikatif.

Tim proyek: Daniil Tuchin, Anton Dmitriev, Sasha Kuznetsov.



Anda dapat membaca lebih lanjut tentang proyek pendidikan kami di tautan ini . Dan sering pergi ke saluran Technostream , video instruksional baru tentang pemrograman, pengembangan dan disiplin ilmu lainnya secara teratur muncul di sana.

Source: https://habr.com/ru/post/id462277/


All Articles