What is Hack the Crisis Thailand?
Due to the outbreak of COVID-19, Young Southeast Asian Leaders Initiative, the US Embassy of Thailand, Microsoft Learn Student Ambassador and 55 alliances have collaborated together to fighting dangerous disease. Hack the Crisis Thailand is FULL online Hackathon for COVID-19. we acquired 350+ participants, 40+ mentors, and 44 projects submitted. With our valuable sponsors, The total prizes climb approximately to $24,000 (800,000 baht).
Who am I and What did I contribute?
My name is James. I’m still student and software developer. I in charged of technology lead (this is my first time ever), managed technology’s overview behind online hackathon. So this article is going to tell you how we, tech team, deal technical tool for accommodating core-team, participant, and our mentor. What were the emergencies situation occurring? These are my experiences and not the best tools anyway. Just hope the reader would get some value that can adapt to your circumstance. :)
- Our resources as priority.
- Overview of this project in term of technology.
Our Resources as priority
We didn’t talk about any features, technology, or any workload but looking at our HUMAN Resource. Before we talk about any technical tools. We should consider our current resources at hand. There are 3 key factors for tech-team to drive this project successfully;
- How many tech-team members do we have?
- How many days do we have left?
- How much can our members commit to this project?
We have only 3 people in our teams; a Software Developer, a Technical Assistant, a Technology Lead. Everyone has their full-time jobs which means only 4–5 hours after full-time can pay attention to Hackathon Project. It was the first week of April 2020 and Hackathon was going to land on 24 April 2020. We still had 20 days. It was definitely challenging and exciting.
Overview of project in term of technology
Technology is tool for accelerating and accommodating a conventional process to be easier and faster. We analyzed all processes of offline hackathon converting into online components. We can look at them below.
If we re-arrange grouping by event STATE;
- Public Relation (Online Webinar)
- Interactive Activities (Team Building, Online Session, and Opening & Closing Ceremony).
- Mentor Booking & Mentoring Session. (Platform)
- Submission. (Platform)
- Working Collaboration for the participant.
- Voting System.
At first, we intended to open registration on the project’s platform (which was developed by tech-team) but accidentally we could not deliver it on time. So we must shift registration to the third-party online form (JotForm). While the developer was struggling with platform building. Another task was WEBINAR.
After meeting with communication teams we decided webinar’s components including Connected to Facebook Live, Display Project identity (Logo, Branding), a few effect like TV board-casting and User-Friendly (For panelist) to join
We have 4 choices on hand listing below.
In the end, we selected StreamYard because of its compatibility with our requirements.
Lesson Learn 1: Registration can use third-party then converting their data into our platform database. Just making sure we set the same meta-data.
Lesson Learn 2: Consider panelist’s familiarisation of technology must be concentrated. And 15 Minutes before live could be thrill moment of the back-stage technician.
Lesson Learn 3: Each meeting tools designed to serve meeting, streaming tools are the same.
The project team decided to build up platform name (www.hackathonthainald.com) for further usage not only this Hackathon. The platform would serve project submission, membership, and voting system. So We build it from scratch. Tech-Team select Ruby on Rail and build-in database and deploying to DigitalOcean. (We aren’t going to talk about platform yet here in detail.)
At first, we aim to merge the mentoring system into a platform. But as confused communication and time were running out (we try to develop a mentoring system 4 days before the event!) We must focus on functional; Participant booking, Mentor notification, and mentoring. We utilized Wordpress and custom plugin (with our custom PHP code in the plugin) to connect them to google services.
Working Collaboration Tool
This tool, on purpose, set to let participants and teams working together. Tech-team compares 3 tools as below (Team, Slack, Discord).
As a result, We select discord because its functions could serve as Voice & Video channel, Also as an official text channel for board-casting and support. (We didn’t cover detail yet in this article. Because it could take so long; channel type, channel we made, and why we created those channels.)
I know you maybe get confused: why don’t we utilized the same tool as previous. The reasons are listed below.
- Interactive Activities require specific features such as temporary broadcast, control all participant attention.
- Some official events like Open & Closing Ceremony need specificity.
- There was brainstormings session, Discord couldn’t serve that requirement best.
We must thank communication & content teams for the suggestion of two impressive tools: Remo (Virtual Networking Cloud) and Mural (Virtual White Board for brainstorm)
Lesson Learn 1: If that tool requires coding from scratch, Do it !! but if not, Choose an alternative.
Lesson Learn 2: Official is official.
Lesson Learn 3: Platform by scratch development could be more customized but require long-time simultaneously
Lesson Learn 4: Wordpress isn’t that bad, It could embed custom code and serve the necessary requirement.
Everyone thinks post-hackathon was the easiest part. It was but we must not be negligent. Because we faced huge trouble due to it.
We built a platform for voting system. Platform set permission for one who can vote must register and have an account on platform. Sound simple, although the reality is suffering.
The platform that we built got crash by 3 attacking:
- Overload: We use digitalOcean lowest tier due to that we didn’t expect users would go through platform much (traffic load can serve for 500 people but 4000 registration drive into our platform so it crashes). We fix it on time by update tier and optimize some function.
- Automatic bot: someone tries to automated bot to register and vote and comment. We can handle this problem before it occurring by embed CAPTCHA , IP-Address monitoring, and account verification by email. So we count voting scores by only trusting account.
- DDoS attack: This was what we expect at first so we utilized Cloudflare protection.
Lesson Learn 1: Security (Standard) is inevitable for production platform
Lesson Learn 2: While voting period, our system had been down and lose some data, So backup is really important.
Lesson Learn 3: This according to Lesson 2, If any crisis happens, We (as tech team) must help communicating as much as we can. Because there is no one understands what happens like us.
Lesson Learn 4: Voting System isn’t scared but any features that involve more people, need more closer monitoring.
For core-team, we used Slack as main tool and Trello for task management.
As a technology lead (first time) I’ve learned a lot from this project and essential lesson are “if crisis occurs, communication is definitely important” and communicate with other teams as much as you communicate with your team.