Hey, just thought it would be interesting to start writing about this personal project i have been working on for a while now and see how it evolves in the future. It is called (for now) Bolão, which kind of means in english bet with friends.
Back in 2014, a good friend of mine, Gustavo, and me, were willing to to some bets between us for the upcoming World cup. Just for fun. The winner would earn a round of beer at the end of the tournament. We did not care about money and were just interested about the bets themselves.
We started on a rough piece of paper. Not even a clean one, true story. Writing down each group with their teams and Gustavo settled some simple score rules. Which we still use nowadays. We then went on like this up until the final phase and i eventually paid him a round of beers as we had won by far.
After this we felt like we could do the same for the current Brazilian championship and the Champions League.
BSNL Portal is a mystical or mechanical entryway on the web. It intends to give all BSNL customer/client offices through online client mind account. It conveys amazing quantifiable continuous refreshed telecom benefits through a passage called BSNL Selfcare Portal Registration. The primary witticism is to offer each support of the client online on enlistment.
We evolved to a Whatsapp group with friends and then to a Google sheet to organize things a bit better.
A bit later on, we started to use an online service that we had found to better the experience. It was no easy thing to find as we were only interested in betting for fun, no money involved. Very options out there for this (duh, no money involved, no one cares…). The UX was real bad, the UI only slightly better and we were not aware of the score calculation algorithm, which was quite frustrating.
This is when it hit me.
Man, you’re a developer and used to design a lot.
You did not find the good solution yet.
Fill the gap.
This is where the fun comes in. I started a first version, static to actually mimic the Google sheet we used and semi automatize the process. The idea behind it would be, minimum UI to focus on the code, auto score calculation and manual data update.
AngularJS 1.5, Sass, Jade, Git, Npm & HarpJs. The online data would be stored with a free json storage service and manually updated.
Very few dependencies, ui-router (not even well set), angular-translate (titles only but operational) to separate content into constants and angular-cookies to remember the user’s choice concerning the language.
Here is a shot of the structure:
Still in use for the current Champions league at http://bolao.kevinch.com.
Ok. That looks… ok. But we are far from a real life app here. Yes. But it really was, no, is, a functional prototype for a start. And this is were i started the V2 a few months ago (remember, this a side project, it takes time).
V2 is a full app based on NodeJs for the backend, MongoDB for the database, Express for the connection between those two and Angular 1.6 for the frontend. Yes, the MEAN stack. You’re following, nice.
Based on the generator-gulp-angular, it runs locally on a local MongoDB instance with Nodemon for backend hot reload. Online, it is currently hosted on Heroku with MongoLab. I managed to get both environments working fine and being automatically independent, development and production.
What? Screenshot time? Ok.
I just managed yesterday to get the connection working to retrieve soccer data via football-data.org. A free service by Daniel Freitag that will allow me to retrieve data and focus on the app itself.
I spent a great deal of time trying to achieve this connection, mainly with the angular-footballdata-api-factory but for some (CORS) reason it just would not work. Finally got it up and running by creating endpoints with NodeJs and Express in my app to query the distant api. Frontend is just hitting the app’s api.
Next objective is to set up a proper login service. I am testing Stormpath as it looks like it would take care of all this for me. And for free with an awesome developer plan!
Tons of work to do and lots of ideas but it is on its way and we are getting organized with Trello, Bitbucket and many TODOs.
Btw, history repeats, i seem to always be the last of our bets. Gotta find bonus points methods to catch up.
I’ll keep on posting here about evolution.