My First Hackathon Experience
Hackathon is something I have heard many times from my friends and my brother but had never got a chance to participate in one until now. When I heard about how much one achieved in a short time, I was very skeptical about it. I could never think of myself achieving so much in such short time.
When I joined Numpy Ninja, I heard about Hackathons. I was amused to hear experiences from other participants and how they learnt a topic from scratch and successfully implemented it within the deadline. It got me thinking again, will I be ever able to do it. And most of the seniors kept saying, “Hackathon was the best thing that happened. We learnt a lot from it. Never miss any opportunity to participate in a hackathon.”
Ready to Try?
When I got a chance to participate in Hackathon, I was half-minded. My team members/friends Sneha and Kanchan pushed me saying, “It’s just a week let’s give it a try”. And then we were lucky to find 3 more wonderful members Shilpa, Gomathi and Subathra to join us.
What is a Hackathon Actually?
A hackathon is an event, usually hosted by a tech company or organization, where programmers get together for a short period of time to collaborate on a project. The aim is to design, build and present the most innovative solution to a problem, and then pitch a final concept, prototype or presentation to the stakeholders.
The Hackathon was kicked off with a presentation from the organizers, there were 7 teams who had enrolled.
This is not a typical Hackathon where people meet at one location and work together. This was a virtual Hackathon.
My team met on Zoom and after all the initial introductions we started to discuss how we should approach this challenge. Our first thought was how do we even write an automation script for something that has not been developed yet. We had no working UI, and that was the first biggest hurdle. The next biggest challenge was none of us had worked with CI/CD, nor worked extensively with Git. We had not used Trello or Jira before. That was not a promising start, but we had a list of things we didn’t know how to do.
Then, we decided to go step by step and start with what we know and later start exploring on things we didn’t know. We divided the various models between the 6 of us and started working on it.
Here’s a quick snapshot of what we decide to start with:
We started with a maven project and worked on Step definitions for the given gherkins. We decided to use Page Object Model (POM) design pattern to reduce code duplication and improve code maintenance.
We had lot of doubts on the UI flow, and the organizers were always available to clarify any doubts.
We were spread out between different time zones. Free zoom calls were our savior. Anytime, we ran into some problems, we quickly got on zoom to tackle the issue. All team members were very flexible and understanding which made this feel easy.
3-4 days went on with the initial implementation. Then came the integration with Git. Initial check in was easy, but as we tried merging files from everyone, we had lot of conflicts and spent hours on this. In the end, we were able to learn the git flow through lot of mistakes.
We started thinking about what to add extra to make our framework stand out. We explored using Cucumber hooks for tagging scenarios and implementing end to end workflow.
I started researching on Extent reports and was able to set it up successfully along with failed scenario re-run feature for extent reports and setup screenshots for failed scenarios. We were able to generate various reports like Extent reports, Cucumber reports, Allure reports to show the status of test execution.
We used Jenkins for CI/CD implementation. I had not used Jenkins before the hackathon. I setup Jenkins on local machine but it made my machine run very slow. So we decided to set it up on cloud and noticed it was way faster. We were able to integrate with GitHub and kickoff the build on every Git Push. We ran into few hurdles while using Jenkins on cloud machine as there was an older version of Java on the virtual machine, but thanks to our late-night meetings we were able to debug and resolve the issues Google and YouTube were always there to help day and night.
We had a week full of sleepless nights. But in the end, we were so excited with our outcome.
Even with all the night outs, we were full of energy to resolve all the issues and deliver the project. Thanks to my teammates who were always ready to learn and explore.
On the day of Presentation:
We also had to come up with a good presentation to pitch in our project and why and what we did differently. We gave a presentation and demo to the stakeholders. We thought we did well. The other teams did very well too. It was going to be a tough competition.
In the end, guess what? My team won second place! After working on the project days and nights, our efforts had finally paid off!
If you are still thinking about whether to participate in a Hackathon or not, I would like to encourage everyone to give it a try. Building everything from scratch within a week might seem like unachievable, but the experience and learning from this will help in a long run.
Thanks to the support from my team, I can confidently say, I have learnt and implemented lot of new concepts in a week. This hackathon has boosted my confidence levels very high. Thanks to Numpy Ninja and all the organizers for this wonderful opportunity.