Documenting my OSDCodeJam’21 experience
It’s New Year’s Day. We are idling away since it’s our semester break, when around 3 a.m. in the morning, seniors from our college’s Open Source Developers Community (OSDC) made a big announcement. They had come up with a new and unique kind of event for us. OSDC was organizing its first Code Jam, OSDCodeJam’21.
OSDCodeJam
OSDCodeJam is a fun, collaborative (intra-college, but just for this year) competition organized by our seniors from the Open Source Developers Community at Jaypee Institute of Information Technology.
CodeJam gives us a chance to create a new project with a team. We are grouped with other participants like ourselves with whom we collaborate and come up with something on a given theme.
(Official GitHub repository for the CodeJam here)
Announcement of the theme
After a vocal drum-roll from one of the organizers, the theme for the year 2021, ‘Combining Opposites’ was announced on Discord.
It initially perplexed the participants (including myself). We were confused as to what was expected of us, given the ambiguity of the theme, so (after a 10 second awkward silence) the organizers explained to us how we could interpret the theme in different ways, come up with something new and relate our project to it.
Announcement of teams
The teams were announced before the theme, and text channels on Discord were created for the same. I was the only online member of my team of 4 members at that time. I dropped a message introducing myself and requested the others to introduce themselves as well so that we could get familiar with each other’s skills and do the appropriate division of labor for our jamming period.
It had been a day to my (double) texts on the text channel and with just one reply, I contacted the organizers, requesting them to look into this issue. They dissolved the team due to inactivity of 2 members and shifted me and my other active teammate to another team.
Thankfully, the members of my new team were active. We brainstormed for 2 days, which left us with just 4 days out of 6 to actually work on the project.
Brainstorming our project idea
Since ‘Combining Opposites’ was a unique and difficult theme, I requested everyone in the new team to take a day to come up with project ideas that we could potentially work on. During that time, I researched stuff and also asked one of my friends to let me in on what his team had come up with (although it took a little convincing to get it out of him since he was sworn to secrecy). When I found out his team had already started with the coding, I got a little uneasy because our team was running comparatively slow.
However, next day our team came up with a list of ideas, out of which we chose to go forward with mine. It was based on combining ‘education’ with ‘fun’. After some discussion and refinements to the idea by @profgandhi, we settled on creating something which combined ‘studying’ and ‘dating’.
Division of labour
We had decided to make a website for our project. @aayushmau5 and @akshatjain-akj were familiar with backend and frontend respectively. I, being relatively new to this domain, was determined to chip in wherever I could. I came up with the design and UI for our website, which was then materialized by @akshatjain-akj. When he was done with the basic structure of the site, it was my job to see if everything is in place and looks good. Deciding the theme, positioning and text to go on the site was also not an easy task. Since mauve is my favourite colour, I themed the site to match that colour family.
Even though the logo looks like it was made in MS Paint, I assure you, it wasn’t. I watched a quick ‘How to make a logo in Adobe Photoshop’ tutorial and came up with it.
Anyhow, after 3 days of (rigorous) changing of colours, parameters and the content, our website shaped up to look like this -
@aayushmau5 was up next to get the backend up and running. He had been relentlessly working on it. He was also faced with the challenge of matching two users and implementing a WebRTC Video Chat to initiate their Study Date. Being short on time, and with our implementation ideas becoming increasingly complex, one of the organizers offered us a suggestion regarding the WebRTC which reduced @aayushmau5’s workload and brought back simplicity to our complicated implementation.
On the last day of the jamming period, our site was hosted, and the frontend was complete. After going through good READMEs on GitHub, learning what I could from them, I finalized the README.md file with appropriate headings, bold, italics, links and images to make it look attractive. We had a short and casual meetup with the organizers on Discord a couple of hours before the day (and thus the jamming period) ended. Then we played Counter Strike: Global Offensive till 1 a.m., after which my mother scolded me to go to sleep. And so I did.
My takeaways from the CodeJam
Before CodeJam started, I only had basic Git knowledge and knew HTML basics. I’d introduced myself as the first year who didn’t know much but was willing to chip in wherever he could. Along the way, I learnt much more about HTML and also started got started with CSS and JavaScript. My teammates were extremely helpful and we supported each other in whatever way we could regarding our project. There was a good, open communication and a fitting delegation of work which further challenged all of us to understand better and learn more about what we were doing.
The frontend part of our OSDCodeJam project was something which caught my attention and appealed to me. Thus, I am now actively learning JavaScript and plan to start working on frontend for projects.
There is also a lot to be learnt from our seniors(/organizers) who were immensely supportive and I highly appreciate how they guided us on the right path with our projects and resolved our issues.
Results
Around a week after the jamming period ended, the results were to be announced by our highly reputed senior (and guest judge) @ryzokuken, who is A Node.js core collaborator, Electron maintainer, Google Summer of Code mentor and ex-student.
And a few hours before the results were to be announced, our organizers confirmed how excited we were –
After everyone joined the Discord voice channel, the results were announced. Team Trendy-Tacos won the 2nd prize for their minimalistic, yet sleek and pretty game, Freeman. Before announcing the 1st prize, @ryzokuken explained how they gave a considerable weightage to the idea the winning project was based on. He also loved the execution and appreciated how the team, despite having two total amateurs, was able to come up with something satisfactory.
Who won?
*cue drum roll*
Psst… You guessed it right. We did!
( Shoutout to daemon1024 and akshgpt7 for being great organizers and fun seniors. )