"You don't rise to the level of your goals, you fall to the level of your systems"
In the last year-and-half spent in this upside-down pandemic-ruled world, the only way we've been able to maintain any semblance of sanity and productivity is by building systems to manage our time and days. For us, personally, the system that we've fallen back to (after a short, unsuccessful stint with Notion), is Google Calendar + To-Do Lists.
While we've found that hackathons are an incredible learning experience over this period of time (attending a bunch of hackathons every month), one of the major pain points for us and most other hackers is keeping track of what's going on during the hackathon.
Unless you're glued to the Discord announcements channel 24/7 (which makes a considerable dent in productivity), it's a painful and tedious process to figure out what events and mini-events are happening when.
Add to this mix of chaos timezone confusion, and you've got a recipe for disaster.
And this, folks, is why we decided to build HackCal - Your one-stop shop to never missing another MLH event.
What does it do ❓
This web app, CLI tool, or Discord Bot (However you choose to roll ;)) automagically generates events for everything that goes on in your typical MLH hackathon - right from hacker hangouts, to Devpost office hours, and submission deadlines -- So you can stay on top of everything, no matter how stressful the going gets :)
How we built it 💻🔧🔨🧰
- We used Python, Requests, and BeautifulSoup4 to scrape events from the MLH events website,
- Flask to build the API,
- Replit to deploy the API and front-end,
- HTML, CSS, and JS to build the front-end,
- Google Cloud to host the Forem Community.
- Update: We're now using CockroachDB to store the events in a distributed SQL database
Challenges we ran into 🏃♂️❌
It was our first time deploying on Google Cloud, and two of our team members have never used Flask before.
It was an amazing learning experience, albeit a little painful :P
Accomplishments that we're proud of 🏆🏅
- Our team consists of 50% hackers that are very new to the game
- We learned to use and deploy on Google Cloud for the first time!
- All of us learned something about the tech that we used for the first time
- We learned about Forem and how we can use it to set up super cool communities
- We met some really cool people
What we learned 🧠
Prototyping and Designing in Figma Figma is a browser-based UI and UX design application and was recommended by a teammate. So one of us used Figma, switching from Photoshop for the first time. We eventually did get the hang of it, though, and could easily craft neat UIs.
Building Flask Apps Flask is an open-source Python library used for developing APIs. This was the first time we worked with Flask as well as creating an end-to-end web application. And it was a wonderful opportunity to learn and figure out how things work in web applications. From having always admired beautiful web pages to going ahead and actually building something for MLH was a wonderful experience!
Setting Up Forem Communities This was our first time using Forem to setup a community around our app, and though the learning curve was fairly steep, it was an amazing experience!
Using CockroachDB to setup distributed SQL databases
Using Replit to host our Flask Backend
What's next for HackCal ⏭
We're looking to expand beyond just MLH hackathons and make hackathons, in general, more accessible and convenient for everyone around the globe!