In this blog entry I will be explaining the latest web application I made.
It is a chat website where you can login or register and then chat with other connected users in real time.
It's nothing new or specially fancy but the motivation for doing this was to retrieve a list of modern tools to improve my workflow.
Here are the main tools I decided to use, and get familiarized with after researching:
Main functionality: The application is made using NodeJS, for the real time communication it uses websockets thanks to socketIO.
Markup: For the markup I decided to use Jade, I also made use of blocks, very useful.
Database: MongoDB and Mongoose.
Frontend: SASS Compass Susy Normalizeand Sassy Buttons.
Authentication: Passport using the local strategy.
Other tools: GulpJS for building (instead of GruntJS) and Bower for package management.
There are several tools I didn't use that I also wanted to use, the main thing I wanted to do was a full TDD/BDD workflow using Mocha, Chai and Sinon. I've noted this as pending.
Also I didn't use Breakpoint or made a mobile phone version for this example, I am researching and doing tests for mobile versions of my webapps and I think it's better to make a separated mobile app instead of using the website. You can use Cordova if you only know web development or you can get into specific mobile application development. I also took a look at Yeoman, but I decided not to use it.
As a final note, I had a hard time understanding how Susy works, and the grid wasn't always behaving as I wanted to. Reading the documentation or doing carefully tutorials helps a lot.
Anyway, the project is not finished to be put in a production environment, and the color scheme and design are pretty horrible, but for the purpose it was meant (testing the tools and workflow) it's quite enough so I won't be working anymore on it, at least for the moment.
Here is the sourcecode for this example.
I hope you find it useful!