As part of a course, we had to deliver a product at the end of 4 weeks as a team. We had to identify a methodology and use tools to help us achieve this goal.
We decided to develop a social feed reader, on the premise that we could use these relationships to recommend feeds to the users based on what their friends like. We would additionally use collaborative filtering to figure out what other feeds to recommend based on your similarities to other users.
Here are some of the tools we used and my thoughts on it after the project.
Pivitol tracker
We had to use an agile tracking tool and we decided on Pivotal Tracker as it has a 60 day trial that we could use for free.
Github
Using git is a no brainer. All of us already had accounts on github, so it was an easy decision. Some of my group members were new to git and did not manage to understand git flow very well. We decided to commit everything to the master branch. I would have loved to use git flow to manage the git workflow.
Heroku
Having worked with Heroku previously, I was famliar with it and it made deploying Django apps a breeze. During the last two weeks of development, I was constantly asked to deploy the latest version to production. At that point, I thought of setting up a continuous deployment bot to automate the process. I figured it wasn’t worth the effort during this stage of the project, but that said if there were to be such projects in the future, I would set it up right at the start.
Heroku Postgres
During development, we needed a development database to work with. Instead of having our own development database, I proposed using a database in the cloud to syncrhonise our data. Database calls took longer than usual but I found it to be a good decision as I could create a model that Jack could work with immediately.
Python
I have grown to love Ruby as a programming language but Python has been a pleasure to work with. Code was consise and easy to write. The syntax was confusing in the beginning with regards to whitespace and colons after methods but after a couple of hours it was easy enough to write decent code in.
Django
Comparing Rails to Django, I’d say they are pretty similar. Nothing to hate on either side. Packages are plentiful and documentation is great.
Bootstrap
None of us are designers so we defaulted to the wonderful Bootstrap. It has been great working with the new Bootstrap 3. Compared to Bootstrap 2, the naming convention is more intuitive and the flat design makes our user interface look nice and clean.
Facebook messenger
We used Facebook messenger to communicate daily. It was good because everyone is always on Facebook. But the lack of @names and hooks to Github makes it slightly inconvenient to chat as a development team.
Working in Agile for the entire project was absolutely amazing. Our initial planning phase was slightly tedious as our tutor wanted to see the user stories for the entire product. But as we were using agile, we could change them at any point in time if needed. We had Pivotal Tracker set up to track our progress and generate charts that were useful for our final demo.
Setting up the development environment for Python and Django was easy. Python works really well across platforms and there wasn’t any issues with that. I would however recommend using Nitrous.io as a cloud development environment to would prevent any issues with set up or running of incompatible versions. If you would want to work offline, I would recommend Vagrant.
It was my first time dealing with Python and Django, but I found them to be very similar and as high level languages, we could get more done with less lines of code. Overall, I think we did great as a team, we kept in constant contact throughout the project with everyone helping out. For a team with considerable lack of web development skills at the start, it was a job well done.
Published on 31 Oct 2013 by Stanley Tan