How I won my first hackathon.
Tags: react, kubernetes, devops, cloud
Published: 2022-09-28 17:35:38



## What is a Hackathon and Why should you care?

A Hackathon is the best place to learn and collaborate with a lot of diverse people just like you. In simple words, Hackathon is about bringing your crazy ideas to reality through technology. It’s an event where anyone, regardless of their individual field can come & participate to learn, build & share their creations.

The first-ever Civo Hackathon was an initiative to bring together developers, architects, experts, and students from across the globe to develop innovative Kubernetes projects on [Civo](https://civo.com). It provides a learning experience towards hosting applications on Kubernetes while exploiting the blazing fast speed and the simplicity of Civo’s Kubernetes platform.


## MY JOURNEY

It all started out when I first heard about the Hackathon in my community space, as I was in my freshmen year and was exploring various fields, I decided to give it a shot and registered for the hackathon without any prior experience. All I knew was that we were expected to make some projects on a given theme, which in this hackathon was deploying application using kubernetes. As of today I am a open-source enthusiast and I work/contribute mostly in DevOps, Kubernetes and containers, but during that time I barely knew what kubernetes, servers, containers or deployment was. As the date for the hackathon approached, we were asked to make teams and start planning. 

I didn't knew anyone in the hackathon to form team with nor did any of my friends participated with me, so I decided to make team with random people in hackathon. I started emailing random participant in a hope of getting a reply and getting to know each other to make a team. Approximately I emailed around 12-15 people, to which I got 2 replies. 

None of us knew each other before the hackathon. We randomly connected with each other through emails and Discord groups. It was a wonderful experience meeting and collaborating with new people. Our main goal was to learn and explore new technologies.

Members of my team :
1. Aditya simant (me)
2. Bala yokesh mani.
3. Prajwal jaiswal.


As the Hackathon started, I was scared that I might mess up and because of me my teammates would be defeat as well. After recollecting myself I just took up a challenge to myself that I have to do it anyhow without thinking about the results, even if I lose at least I will take some learning back with me which will help me in the future.

## THE PROJECT

For the hackathon we created the Speech Companion. It was a simple application but a complete project. We tried to focus on how we can solve a small daily life problem using our project.
We as students always struggle with assignments and projects. Most of this work requires reading a big amount of text. We always wished there was a technology that can read the given text for us and also write the given text. So we built a project named Speech Companion.

Speech Companion can convert your given speech into text for convenience. It can also read the given text for you making your work a lot easier.

[Speech Companion Github.
](https://github.com/balayokesh/speech-companion)

## How we built it?

How we built the application: We made use of `ReactSpeechRecognition` npm library for implementing the voice to text functionality. We also used JavaScript's inbuilt `speechSynthesis` module for text to voice conversions. We chose to `usereactJS` as our frontend library since it offers quick state refreshes and component based approach. We used `fontawesome `icons for implementing icons on the user interface. We also wrote our custom `CSS` for designing the home page with the best possible User Interface for users.

Then comes the deployment. This was done in just a few simple steps. We first containerized our app using Docker. Then we created a kubernetes cluster on the Civo Website and added three simple .yaml files in our application.

`deployment.yaml` file -

```

apiVersion: apps/v1
kind: Deployment
metadata:
  name: speech-companion
spec:
  replicas: 2
  selector:
    matchLabels:
      app: speech-companion
  template:
    metadata:
      labels:
        app: speech-companion
    spec:
      containers:
        - image: prajwalj27/speech-companion
          name: speech-companion


```


`service.yaml` file -

```

apiVersion: v1
kind: Service
metadata:
  name: speech-companion
  labels:
    app: speech-companion
spec:
  ports:
    - name: "speech-companion"
      port: 3000
  selector:
    app: speech-companion  
```
`ingress.yaml `file -

```

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: traefik
  labels:
    app: speech-companion
  name: speech-companion-ingress
spec:
  rules:
    - host: speech-companion.ae150322-a780-4657-a1e0-604a842c2fc0.k8s.civo.com
      http:
        paths:
          -
            backend:
              service:
                name: speech-companion
                port:
                  number: 3000
            path: /
            pathType: "Prefix"
```

## What's next for the project?

Speech Companion has a lot of improvements to make yet. We can design it such that it can also be used in different languages, also we can give users the best experiences by changing the accent and speed for the better.

## Use of Civo Kubernetes

Before the hackathon, all the members of our group had experience in making web applications using React or other frameworks, but none of us had ever worked with cloud platforms. To participate in this hackathon it was mandatory to make use of the services provided by Civo in our project.

So one week before the hackathon we started exploring some of the core concepts related to DevOps. We got to learn about containers, containerized applications, Docker, Kubernetes, etc. And the best place to get started with learning and using Kubernetes is the Civo Academy. Most people find it difficult to start learning Kubernetes right away, as a result, the videos in the Civo Academy are structured in such a way that is easy to understand for most of the beginners.

Talking more about Civo, I would say the simplicity and the ease with which we can work on our applications is really impressive. With just few clicks here and there, selecting some options and within a few minutes we can have our fully running clusters. The people in the slack community are also very helpful. Even if there is a small problem or a thing that we are unable to understand, people in the community are always willing to solve our problems at any time of the day.

Overall I would like to say it was a wonderful experience participating in this hackathon.

##  We won it by 3rd overall position

While randomly checking my emails I saw their email,
I was so happy at that moment that finally, I have done something, You know "The best thing in life is unexpected".

## Things I learned

- Never Underestimate yourself.
- Don't think too much start taking action.
- Ask a lot of questions.
- Build for fun, make sure you learn something new.
- Don't just run to winning.
- Learn while building.
- Collaboration and team building help a lot.
- Time Management
- No one wants you to be an expert

## Conclusion
Enjoy every single small achievement that you earned and be proud of it always. Share the learnings, write a blog on it, and help and guide others.

"It's never too late to start something, Dont think just start experimenting with things that's how you will learn, Hackathons are all about learning and experimenting things".