With summertime around the corner, people are looking forward to have fun more and more every day. Despite being a solid IT company that’s all about standards and best practices, we know how to have fun too. So, recently, JetRuby has held a Hackathon. Basically, it’s a place where you can contribute to projects of other people or come up with your own idea and bring it to life.
“How’s it different to a regular day at work?”
First, there are no guidelines or rules you would normally find while working on an actual commercial project. Second, the time allowed for the implementation of a whole project (or a minimum deliverable) is usually very limited. In our case, the teams were given two days. Finally, people can try themselves in different roles. If you’re a developer and you’ve always wanted to experience what it’s like to be a project manager/QA engineer/designer/etc., you can become one for the time a Hackathon is held.
“Ok, but how’s that fun?”
Well, since there are no strict rules, teams can have drinks or play a couple of matches in FIFA while waiting for their code to be compiled. What’s more, in addition to learning a lot of new tech stuff, Hackathon also allows you to see that working in a team can be truly fun!
In this article, we’re going to tell you about the most interesting projects that our guys were working on. There is also a short part after that, in which they’re sharing their thoughts and emotions about this event.
Project #1 — Telegram bot
Idea of the project: create a Telegram bot that would convert website articles into telegraph pages and send them right to your smartphone.
People on the team: 2.
Time spent: 8 hours.
Technologies used:Ruby on Rails, Telegram API, and Telegraph API.
- Considering the time limitation, getting started with Telegram’s API took some effort.
- The bot leverages the “Instant View” feature so that you can receive your articles within seconds.
- Downloaded articles can be accessed offline.
- The bot stores a backup copy of your articles on the Telegraph servers.
- You can promptly receive push-notifications about newly published articles.
- Nice and clean UI.
What’s been accomplished
The team was able to develop a telegram bot with a mailing list.
Project #2 — Arcade game
Idea of the project: Develop an engaging arcade game with an appealing and simple interface.
Number of people on the team: 2.
Time spent: 6 hours.
Technologies used: Unity and С#.
- Rendering of elements was a new thing to the team.
The game script consists of a certain number of levels. You’re playing as a ball, which is trapped inside a labyrinth and needs to find a way out (you can see the gameplay screenshots below). The main feature of the game is that the circles of the labyrinth are constantly rotating, wherein the speed can change depending on a specific level. For skilled players, the game can offer various bonuses and perks, e.g. you can simply “freeze” the circles and finish the level within a couple of seconds.
What’s been accomplished
The team fully implemented the basic logic of the application and the first two levels of the game.
Project #3 — virtual remote office
Idea of the project: create an application that would provide smooth interaction between teams, emulating real office communication.
People on the team: 4.
Time spent: 60 hours.
Technologies used: Elixir/Phoenix, VueJS, WebSocket and WebRTC.
Despite the fact that WebRTC is quite stable and has been being used for a while, it turned out to be challenging for the team. Looking into all the specifications, knowing we had only one day in store, was quite a struggle. There are great examples and wrappers, but they either have really poor documentation or are too inflexible to implement right off the bat.
The application has many advantages for remote employees. It allows for creating fully custom virtual offices with an unlimited number of rooms. After you’ve created a map, you can enter any room to join a text or voice chat with your colleagues.
What’s been accomplished
Within a short period of time, we were able to make a proof of concept and set plans for the future development of the project.
Project #4 — Gourmand
Idea of the project: create an application to simplify the procedure of submitting and tracking expenses for the company employees.
Number of people on the team: 3.
Time spent: 15 hours.
Technologies used: Ruby on Rails.
- The app allows you to sign in using your Google account.
- Uploading a photo of your lunch receipts takes just a few clicks.
- The calendar provides all the necessary information.
- You can easily access and keep track of your budget balance.
What’s been accomplished
The team fully implemented their project being able to develop both mobile and desktop versions. Using this application, office managers can forget about daunting and time-consuming paperwork, while company employees can rest assured knowing their week budget isn’t going to shrink because of lost receipts.
What the participants think about the event
Oleg (the organizer): I enjoyed this Hackathon a lot. I think the biggest win was that we didn’t have to rush like crazy and were able to define the scope of tasks and come up with basic functionality before the actual development started. Our team also knew that we might not be able to implement every piece of functionality in time, especially that we decided to experiment with mixing technologies like Elixir+Phoenix, Vuejs, and WebRTC. But that didn’t upset us. Anyway, that feeling when you’re sitting with your team knowing you’ve finally achieved the goal after one sleepless night is hard to put into words. But the event didn’t stop there. We had an office party up to 5 AM, which was also great!
Bogdan (Front-end developer): For me, taking part in a Hackathon is like doing an all-nighter with Heroes of Might and Magic and stuff — there is no way you can know how it will end :) I liked that everybody was able to choose from activities that they enjoy in the first place. Another thing I liked was that several people could work on the same task (e.g. Bob writes code while Alice refines it afterward). The quality you get in the end is insane.
Andrey (Elixir developer): The reason Hackathon grabbed my attention was that I saw a great opportunity to gain new experience. At first, I was only excited about working with new technologies, but then I started to dig the idea of creating a virtual office. After all, I had an actual opportunity to create something useful for my team and for the company in general. In spite of the fact that we faced some challenges during the development, I think that we did a great job.
Artur (Front-end developer): I decided to participate because I found the concept (of a virtual office) appealing. I’m very proud that I had a chance to work with such a great team and was able to contribute.
Pavel (Author; RoR backend): I’ve been having a lot of ideas and Hackathon enabled me to bring all of them to life! I was working in two different teams. In the first one, I was working as the author of the mobile game and in the second one, I was helping to develop the telegram bot. I’m glad that we have accomplished everything we wanted.
Alexey (RoR backend): I took part in Hackathon and it’s been amazing. I was able not only to gain new experience but also to make something that’s truly useful for my company. Our goal was to create a solution that we could use in our office, which we did. I am very happy.
This was the first time we had an event like Hackathon. Because this was only a beta version, the list of participant included only JetRuby employees. However, we learned a lot and have already come up with lots of cool things for the next Hackathon. More importantly, we’ll be sure to invite people from other companies, which will definitely make the event truly amazing and unforgettable. Hope you’ve enjoyed this post!