Reflecting On My First Hackathon

Having completed my first hackathon project, I wanted to take some additional time to look back and reflect on it. Here are my thoughts on my time with the Chainlink Spring 2022 Hackathon.

Inspiration

This project was inspired by our shared interest in video games as well as the article by the Chainlink article "What Is a Dynamic NFT?" from April of 2022. We wanted to provide a template and working demo for other early NFT game builders to take and use themselves in their games or at least show how it could be done.

What it does

This application would allow users to freely mint a customized character that lives as a dynamic NFT on the Polygon Network. This dNFT can then be customized with new features that would trigger a smart contract, updating its metadata. Alternatively, users could use Chainlink's VRV to get a Google "I'm feeling lucky" method to get a randomized character.

This project is being built to serve as a template and working demo for a system of video game character development as future implementations will include the ability to modify stats and trigger further changes such as classes typically found in role-playing games.

How we built it

We built this project relying only on the member's foundational knowledge of Python programming, starting this as a Flask app (some of you might have just cringed), and using Python to build the back-end and Brownie for smart contract development. The project progressed with the core developers attempting to address challenges that stemmed from our lack of prior experience in development and web3 programming as our knowledge and familiarity grew resulting in the state of the application today.

Now would be a good time to let you know that three of the four members on this team were still in a coding bootcamp during the entirety of this hackathon. We were doing our best with what we knew.

Challenges we ran into

This team experienced two primary challenges in developing the project thus far. The first challenge revolved around team members as the team size was constantly in flux with the fourth and fifth positions. We would have people join and then drop without contributing and it took time to find replacements.

The other primary challenge was our limited experience, the three core members who have contributed to the project since its beginning are also brand new to programming, two of us just finished a coding bootcamp the same day as submitting this project for review and another still has a while to go. We were having to learn Solidity and Brownie as we built our project with very limited prior knowledge.

Accomplishments that we're proud of

We are extremely proud of what we have managed to build thus far, there is still a lot of work left to conduct on the project but the current members have affirmed their desire to continue working on the project to see a working prototype in the near future.

What we learned

The answer to this is nearly everything, our team learned a lot about product/system design, user experience, and dApp development. This is all in addition to just learning how to be better programmers, how to work on a team with other devs, and using GitHub for team projects.

What's next for dNFT Character Builder

What's next is for us to continue the development of the character builder with the knowledge we've gained now, and a better understanding of how to build something like this, the team has agreed to continue building dNFT Character Builder in order to produce a working MVP. Now that we have a better understanding of how to build web3 products, there is a lot of code to go back to and rebuild and improve.

Video demo of the project

Eric created the video for the project as part of the submission materials.

Week By Week

Let's take this week by week, I wrote each of these sections at the end of each week rather than waiting for the end of the event so keep that in mind when seeing how each week's recap was written. I thought this might be helpful because organizing my thoughts and clearly looking back at each week would have been difficult for me at the end of this experience.

Week 1

Okay, so week 1 was actually just three days, the hackathon started on a Friday. These three days were just spent reviewing documentation, attending webinars, and getting adjusted in the Chainlink discord, thus we haven't started the code yet!

Week 2

The first full week ended up being focused on administrative functions; replacing team members who dropped out, organizing how communications would be handled, and setting up the GitHub. I thought it was a bit much for just a quick project for a hackathon, but it was also my first so maybe this was appropriate and maybe the time spent would pay dividends as we progress. In addition to these admin components, I built a wireframe and continued to improve the initial write-up document to help track responsibilities and understand the project.

Week 3

Strong start over the course of this week; with a clickable prototype constructed, basic functionality underway, most of the components being claimed by members of the team, and the provided educational opportunities from Chainlink being taken advantage of. At this point, I am confident in the team's ability to deliver a working prototype by the end of the event. There's a healthy backlog list I've developed that will likely have to be tackled post-hackathon. With 3 of the 5 of us still being in a coding boot camp, I am proud of what we've accomplished thus far especially taking into consideration everything else we are having to juggle at the same time!

Week 4

The end feels like it is very quickly approaching, there's progress being made in the code but there are still some hiccups happening within the team. While a majority of the team is active nearly every day and making progress by either researching and finding resources or writing code, there are still some issues with a free rider. While it does cause some issues because of the workload on everybody else, I'm not upset about it because there's been a lot of progress. Ultimately this is just part of the process and learning how to deal with this is important, I'm relying on past experiences to navigate through it. It definitely reinforces my desire to find a small team of other devs to work closely with to build projects and participate in hackathons. I'm hoping to get this started soon.

Week 5

With just a few days left, we've been pushing for wrapping up what parts we can in the project. We've all agreed that we want to continue working on the project after the end of the hackathon, and we're committed to getting to the prototype stage. The 5th member of the team having ghosted us was the hiccup from week 4 and this week, I did end up frustrated about it before I just let it go and dropped it. We were all fairly busy this week, so progress was slow and steady, but progress is progress.

Week 6

The project was turned into the judges, and you can find the repo for it here. We pushed through many challenges in getting this project to where it is today and given everything I’ve learned since it was started, if I had to do it again I would make it very differently. Ultimately, the project was a success for me as we all learned a lot from its development and participating in the Chainlink Spring 2022 Hackathon. The team is fully committed to putting in continued efforts to improve the project to a workable demo as we had originally planned. Once the judges have reviewed it, we plan to revisit the project and pick up the work again.

This Article as an NFT

You’ll see below that this article can be collected as an NFT. I’ve created this option to represent just one method of supporting my journey to becoming a Blockend developer.

If you enjoyed this article, found value in it, or just would like to signal your support for my efforts, let me know! It doesn’t have to be through ownership of this article, I’d love to find a time to talk with you about web3 and to learn about what you’re building.

Subscribe to MSBivens
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.