On April 6-8, a
hackathon was organized on the territory of the Moscow Aviation Institute, organized by the
MAI IT center , where tasks from IT companies and representatives of the aviation industry were presented.
The ivi online cinema was a partner of the hackathon: it provided a set of data on the content, and also provided mentoring support for the teams. The final presentations were evaluated by an independent jury, which included representatives from the MAI it-center. Some details under the cut.
Task statement
Data from ivi became three datasets:
- Uploading the viewing history for the week in CSV format: date and time of viewing, viewing time and user ID (data anonymized);
- Geodata about viewing: country and city, description of video content in the form of XML (this document is received, including ivi partners who implement their products based on API);
- Text description of content in TSV format (for recommender systems based on natural language processing algorithms). All data is available for download in the repository of the
organizers .
')
The hackathon participants were asked to create a service for the entertainment of passengers during air travel: for long journeys it is important to select suitable content. Also, as a baseline, the participants were provided with a script for full-text
search using content descriptions (which in the end nobody used ¯ \ _ (ツ) _ / ¯).
Team work
Formally, the hackathon lasted from April 6th to 8th, but in fact, on Friday evening, the participants got to know each other, and on Sunday evening they had to present the projects, so the guys wrote the code all night from Saturday to Sunday, converting coffee and buns from cabbage in the application.
Information about the content from ivi interested 4 teams of 12: the team "Black Rose" made a bot that responded to requests from users in Telegram; The Data Cats team, in which there were guys from the largest open community
Open Data Science , provided an application for a tablet with an offline part on Spark, where, in addition to content recommendations, there were sections with recommendations for educational courses and books.
The winners in the nomination of ivi, as well as the absolute leaders in the total number of points, were the team “Level Pro” consisting of two students: Cherepko Igor and Kuzmin Anton, both from the 3rd year of undergraduate studies, Faculty No. 8 “Information technology and applied mathematics” ). The guys organized teamwork in a harmonious way: Igor was engaged in visualization and the database, and Anton was involved in an Android application and a backend in PHP.
For the backend, a cloud platform was used from the partners of the event -
Microsoft Azure . The data from ivi (XML and CSV) were uploaded to the virtual machine on which the recommendations were calculated.

The Android application was an interface where the passenger specified the flight data — the destination city and the time in the air:
After that, the request flew to the backend, where the available content was sorted by popularity in the destination city (CSV data) and IMDB rating (XML data), the sorted list was returned to the application as JSON. Links to ivi came to the client application - if an ivi client is installed on the device (for example, Android or iOS), the passenger continued to browse in a user-friendly interface.


Conclusion
According to the
results of the hackathon : the event was organized at a high level, thanks to this, in less than 48 hours teams came from raw ideas to full-fledged products, gained experience using new technologies and “big data”. The guys improved teamwork skills and expanded their technological stack: for example, the data on content viewing did not fit into the laptop's RAM, which led developers to take advantage of Microsoft cloud technologies. The winners of the hackathon will be interviewed at the position of interns in ivi.
Recall that in the MAI in the fall, new “
master programs ” will start, which were prepared jointly with it companies (Mail.ru, Avito, ivi, HeadHunter, CROC, LUXOFT, etc.)