Utilizing 3rd party apps
I learned to use multiple new apps while creating TravelViewr. I started by using python-social-auth to add Facebook support to my app. I learned how to utilize python-social-auth and how to make an application on Facebook's developer section. I then learned how to interface the two together to allow users to login to TravelViewr with Facebook. I utilized django_countries and localflavor in order to create user friendly drop-down lists for creating a vacation, as well as pulling in the country flags to show on the vacation page. I also used grappelli to make my administrative backend nicer looking and easier to use. This was the first time I utilized any of these 3rd party apps, and they all required documentation reading and a little bit of custom coding to make them exactly how I wanted.
Server side programming with Django
I learned quite a bit about Django itself while creating TravelViewr. I created many views that did not have templates but simply did something, like create a profile with a default picture, and redirected to another view. I overrode the init method of one of my forms to allow for an additional parameter to be passed in that I could use to list only a users friends for the choice field. I then had to use a classic function based view to handle my form instead of the more familiar class based one in order to actually pass that parameter in. I learned how to keep a database persistent, along with the help of django-south, by designing it so that huge changes to the schema are not necessary, and to think about each database change you make before hand so that everything is extensible in the future.
Better layouts with Bootstrap
I learned to use a lot of new features in bootstrap, including modals, carousels, and wells. I used bootstrap to make TravelViewr look better and cleaner. One of my favorite features is the modal pop up window. It simply dims your screen and puts a little modal window with whatever content you want in it in front of the rest of your content.
Deploying to a Web Faction server
I chose to use Web Faction as my hosting provider for TravelViewr. I learned how to setup my application on their servers including setting up an email account and making Django work properly. I also chose to purchase my domain name on namecheap, which required pointing that name at Web Faction's name servers. I also learned how to create a settings file that adapted itself to my local development environment or the server environment just by modifying a boolean value.
General application development
During the development of TravelViewr I learned a few things about application development in general. I learned that the more time you spend at the beginning of your project hashing everything out and thinking about all the ways you could go with the project, the better off you are. It becomes complicated to change features once they already exist, but when they are in a conceptual state it is a lot simpler. I also learned that when you beta test your application you should take everything the testers say into consideration no matter how strange it seems at first. If you have been developing the application for a few months or even a few days you can get so caught up into it that you don't even realize that a new user will not understand what they are supposed to do. Even if it seems obvious to you it is not always obvious to your users and you should listen to your testers.