Parkuik’s Full-stack. How it was done?
I’m preparing other post about open source projects on Android (you could check the old one here), but I really wanted to show you something I always like to read about projects or websites I use.
This time, I’m talking about my newest project Parkuik. For all that you don’t know it’s a website that pretends to be the reference of parking lots all around the world. It’s a kind of wikipedia and we’ll have to collaborate to try to make it easier. Of course this is all combined with a cool gamisfication process in which you could earn points to compete each other.
Anyway, that’s the presentation, but…. What did we use to make Parkuik? First of all, I must say that It was my ver first side project so all was new, but I decided to go with Node.js because I was hearing so good things about.
- Server Stack:
- We use node.js as I told you earlier. If you ask if i would use it again, I must say yes! Moreover, I’m using it on more projects and I recommend it everywhere I can!
- MongoDB was the selected DB. Why? I just felt in love the way geospatial queries where done, and… It’s no-SQL, what I love!
- Express was used as framework upon node.js. It’s based on ruby’s sinatra and it’s just incredible how easy is to use it. The only problem that I had was that I started with express 2.x and had to move to 3.x. Just a little painful, but was ok!
- For authenticated session I use Redis. I just felt in love when I realised how easy was to persists sessions even when server restarts after beign down.
- Log4js for logging. Pretty simple and pretty cool! Winston was easier (maybe) but log4js gave me more functionalities
- Mongoose. Best ORM to use MongoDB with node.js
- http://passportjs.org/. It was the best solution at the moment to connect with OAuth providers.
- Jade. Used for templating. I just didn’t want to write html
- Lingua.js. i18n tool. There are better tools now, but I really enjoyed this.
- Connect-redis and redis to store sessions
- underscore & underscore.string. We all know what they are, didn’t you?
- Grunt. Just a build tool. Incredible!
- Client Stack: Here we have the actual suspects
- JQuery.
- Backbone.js
- Less. Easy css!
- Alertify. Cool alerts
- Moment.js. Great library to manipulate dates.
- Android Stack:
- Roboguice. Used for dependency injection
- Actionbar-sherlock. We all know that. ActionBar prior Android 3.0
- HoloEverywhere. Holo theme on all Android versions
- Gson. JSON parser
- Little Fluffy Location. Great library to get great location data.
- Roboguice-sherlock. Roboguice & Actionbar sherlock connection.
- UrlImageViewHelper. Image Caching.
- Devops / Tools:
Last tests I’ve done with Blitz.io throw me that It could handle 300 request per second!
Android app will be available very soon and it’s going to blow your minds! (Hope so!)
Please visit it and give us feedback
