There's been many times I've read of someone hacking together a project over a weekend. Appropriately titled a 'weekend hack' these projects have a finite beginning and end. And they've always seemed out of reach for me to accomplish.
However! thanks to this long weekend I was able to complete my own weekend hack! Granted this was a long weekend so I may have cheated a little bit, but nonetheless! I was able to start and finish a project within the span of a weekend.
So what did I make? A web app I've named Bring The Salsa!
(Here's the part of the post where I wait for the applause to die down before I can continue typing again. You are thunderously applauding my accomplishment, aren't you!? ;))
Bring The Salsa is a web app that was built to solve a pain point I've often encountered when hosting a party at my apartment: I want friends to bring things, however managing who is bringing what is always a manual bloated ordeal.
So Bring The Salsa aims to fix that. You can create your own list with a unique URL to share with friends, and freely edit what you need to bring, how many needs to be brought, and who is bringing what.
Enough with what it does, hopefully I made the app intuitive enough that you can figure it out yourself.
Now for the tech details, you know, the stuff that truly matters ;).
The backend is graciously provided by Firebase (graciously and freely - cuz it's in beta). This cut my development time in half, allowing me to focus on the front end of the application and not worry about creating a node.js server with a database and an API and yadda yadda yadda.
This was my first time using a backend provided by a 3rd-party. After I wrapped my head around the way data is stored in the DB I found using Firebase to be an absolute joy. Out of the box it has 1st-class support for real-time updates, a wonderful side-effect that I was able to directly take advantage of in my app.
As for the true star of this app, that is undoubtedly AngularJS.
Bring The Salsa is an AngularJS application from top to bottom. This was my first time creating an application in AngularJS and I must admit: it was lovely. My current client side MVC background is Backbone.js so I began using Angular.js with a couple of prejudices, however they were all washed away over the course of the weekend.
In case you want to see what an Angular.JS application looks like, and in particular this application, I've open-sourced the code on GitHub and plan to continue development openly.
I have a lot more to say about AngularJS. So much more that I will be dedicating an entire post to talk about what I've discovered about AngularJS over this long and lovely weekend.
The only thing I regret about creating Bring The Salsa is that it would have been perfect had it existed before this weekend began. Because truly, that is when it will come in handy the most: for weekends that you're hosting a party and need some organization.
And above all else, when you do use this app, for heaven's sake, don't forget to bring the salsa.