Hackathon Reflection
Tags: deendevelopers
Published: 2021-08-15 18:21:33

So I recently took part in the Hackathon For Homelessness hosted by Deen Developers and Venture Studio From Crisis and this is how it went.





## The Sign up

So I initially passed on signing up for the Hackathon, I saw it floating about and I was interested in it except I just thought I'd be way out of my depth. Don't get me wrong I'm pretty confident in my ability to code and solve problems but I just felt like I'd be out of place. I saw nothing but talent oozing out of every team, the creativity the solutions put forward were fantastic.

So while I initially skipped out on signing up, Ibrahim from Deen Developer ended up reaching out asking me if I'd like to participate as they were short on React Developers. The community is amazing and I'm very proud of what they're doing so how could I not.

In hindsight it's pretty funny, I let imposter syndrome stop me from signing up but ended up on one of the winning teams anyway.

## The Problems

We were given 3 Problem Statements by Crisis to help us tackle homelessness. 

1. People experiencing homelessness or at risk of homelessness, even when they have access to mobile phones or tablets, they don’t always have access to data, this can exclude them from employment opportunities.

2. People who have never been on the streets or experienced homelessness often have a negative perception of it. How can we build a dignified way to understand what people have gone through or what people need.

3. People experiencing homelessness or at risk of homelessness, even when they have access to mobile phones or tablets, they don’t always have access to data, this can exclude them from employment opportunities.

As a team we decided to have a brief discussion about each of the problem statements, see what ideas we came up with and then just select that had the best discussion which was problem statement 2. As a team we decided to settle on building a dignified way to understand what people need.

## Our Solution, Givt

Everyone had really good ideas and they all just came together and formed Givt. The easiest way to understand what homeless people need was through charities that help homeless people. A user could enter their location find nearby charities and what they need to help the homeless; users could then make pledges and donate items requested by charities. 

The basic concept itself is pretty simple but we just kept coming out with really good ideas back to back, but this is a hackathon. As great as our ideas are, time isn't on our side. We need to develop something, fast. We had to make some important decisions to cut features from the platform as it wasn't something we could feasibly develop given the time we had left. We essentially stripped down the platform to it's core concept and threw the rest into our roadmap. There's so much we wanted to show but we didn't have the resources to produce it given the time we had left.

## Getting Started

For the most part of the Hackathon we only had 2 developers, I took control of the Front-End as I'm a Front-End developer who used JavaScript and React, our Back-end Developer was primarily a Machine Learning Engineer who has some experience with Flask. We've agreed on our teach stack; I'll be using React and JavaScript on the Front-End and our Machine Learning Engineer will be using Flask and Python to develop our backend.

Good news, our Full Stack developer is here and he has a lot of experience building APIs using Python but Django instead of flask. To best utilise our resources we put him on the back-end, we pivot to using Django and things are coming together. We all know what we're building so they get started on the ORM and the database schema; I get started on the API docs and list the endpoints I'll be needing.

## The Hack

It's Sunday morning the final day of the hackathon before pitch night, I've just finished the API documentation and we've lost our Full Stack Developer due to an emergency. I just want to reiterate that we've pivoted away from Flask. Our Machine Learning Engineer has day left to learn Django and implement this API according to the docs I've just provided. I'm now just getting started on the Front-End.
![everything is fine meme](https://cdn.vox-cdn.com/thumbor/2q97YCXcLOlkoR2jKKEMQ-wkG9k=/0x0:900x500/1200x800/filters:focal(378x178:522x322)/cdn.vox-cdn.com/uploads/chorus_image/image/49493993/this-is-fine.0.jpg)

I had been going at 110% the entire week at work, my brain is fried and I have a day to produce the MVP... yeah, that's impossible. I've got a lot to do but I refuse to let my team down, I'm going to produce something, probably not the MVP we've envisioned together but I am going to produce something. 

The stress made it so hard to work, things weren't going right and that just made it even more stressful and then it clicked. I'm here for fun, I should be enjoying this so I took a step back, jumped on a call with the other dev; had a dev to dev chat and we just ended up laughing at how insane all of this is. We're here for fun and we should be having fun.

![Danny Devito with 2 guns captioned with "So anyway, I started blasting](https://i.kym-cdn.com/photos/images/newsfeed/001/601/217/ff1.jpg)

Once I remembered I'm here for fun it just became a lot more easier, I started flowing and the code just came out, any bugs I ran into got quickly solved instead of making me want to slam my head into a wall. Oh the code was hideous, nobody in their right mind would ever approve a merge request containing the code I wrote for the demo, in true hackathon fashion I just hacked everything together.

Even though I was in this zone of producing hideous hacky code I still didn't have enough time to deliver an MVP so I quickly changed my approach, I tried to develop something coherent. Yeah the code was awful, the UI looked nothing like the designs BUT it got across the concept. I could have fully fleshed out 2 screens that looked perfect but if I didn't make sense there wouldn't be any point.

The code I wrote for the demo disgusted me, literally. It's unlike anything I've ever wrote before and I hated every single line.

## Front-End Tech Stack

- React
- JavaScript
- Redux Toolkit
- Material-UI
- CSS

You might be wondering why I've listed both Material-UI and CSS, to an extent it does make sense as you don't have to use Material UI's styles which is a CSS in JS approach, you could just use the material UI components and just attach class names and style them within CSS; I did both... Yes, both. I found Material UI's styles API being uncooperative most likely due to a typo I didn't have time to solve, so I just styled it using both when it didn't agree with me. 

## The Pitch

We were worried, we did a great job and we knew it but we felt like we didn't do enough, there was so much more to offer and we didn't get around to it. We were still working on the Pitch while the team before us were pitching, the demo was far from ideal but the pitch was fantastic. I had a long week and a longer weekend but the feedback really made it worth it. The feedback from the other teams and judges was great, everyone loved it and I was proud of something I made for once. At that point I didn't care where we placed, I was satisfied.

## What's Next?

We've had a much needed breather from the Hackathon and we've decided to commit to launching Givt. We're planning out our next steps up, we made a lot of progress during the hackathon but now we're in the position to take our time and do things properly. We're in the process of refining the UX and building our front-end. You can follow [https://twitter.com/GivtUk](https://twitter.com/GivtUk) for updates.

### Hackathon Tips
1. Make friends
2. Have fun
3. Learn from each other