Feed on

Django has become a friend of mine over the last year.  I had previous experience with Ruby on Rails, and was always disappointed when it came to deploying and productizing the application, and the actual framework APIs and implementations underwent too many changes over the last few years to give me the confidence I needed to go into production with it.  Python has been around forever;  it plays nice with Apache through the mod_wsgi and mod_python libraries, and with Django a RoR-like development framework appeared.  It’s not as quite as “fun” to use as Ruby on Rails, but it more than makes up for it when I step in front of an executive committee that is extremely concerned about risk, long-term maintenance and stability of both the platform and community.

I’ve been dancing around Pinax for a few months.  Their philosophy that “there are a few different categories of web applications and they share similar basic functionality – which shouldn’t have to be written from scratch every time something needs to get done,” is congruent with my beliefs. While writing greenfield applications is a source of delight for competent engineers, it is preferable to build on a solid foundation of “super-libraries” and add the functionality that is needed for your particular requirements.Pinax offers this and so much more.  The developers of Pinax have created a set of “standard” platforms that may be used as an extendable base for anyone’s further development. The applications that they have created are:

  • sample_group_project: This project demonstrates group functionality with a barebones group?containing no extra content apps as well as two additional group types,?tribes and projects, which show different membership approaches and?content apps.
  • intranet_project: This project demonstrates a closed site requiring an invitation to join and?not exposing any information publicly. It provides a top-level task tracking?system, wiki and bookmarks. It is intended to be the starting point of sites?like intranets.
  • social_project: This project demonstrates a social networking site. It provides profiles,?friends, photos, blogs, tribes, wikis, tweets, bookmarks, swaps,?locations and user-to-user messaging.?In 0.5 this was called “complete_project”.
  • cms_project_holidayhouse: A very simple CMS that lets you set up templates and then edit content, including images, right in the frontend of the site.?The sample media, templates and content including in the project demonstrate?a basic site for holiday house rentals.
  • code_project: This project demonstrates group functionality and the tasks, wiki and topics?apps. It is intended to be the starting point for things like code project?management where each code project gets its own wiki, task tracking system?and threaded discussions.
  • private_beta_project: This project demonstrates the use of a waiting list and signup codes for?sites in private beta. Otherwise it is the same as basic_project.
  • cms_project_company: A very simple CMS that lets you set up templates and then edit content,?including images, right in the frontend of the site. The sample media, templates and content including in the project demonstrate?a basic company website.
  • basic_project: This project comes with the bare minimum set of applications and templates?to get you started. It includes no extra tabs, only the profile and notices?tabs are included by default. From here you can add any extra functionality?and applications that you would like.
  • source – Pinax documentation

These projects are all quite well developed even if they are not at a “1.0″ release.  They all contain registration, email confirmation functionality, profile functionality and other basic “member” web application attributes.  I spent yesterday looking through the documentation and various on-line tutorials and deployed the sample_group_project on my Ubuntu 9.1-powered laptop.

I found that I had to jump between a couple of tutorials and once needed to completely wipe and rebuild to get it right, but the results were quite spectacular once I got it right.  Out of the box, user profiles, photo sharing, blogs, tweets, groups, Yahoo map locations, bookmarks and a “merchandise swapping and trading” application appear with no additional coding.  This application also enjoys Django’s dynamite Admin modules.

In a future post I’ll follow through and show what worked for me and endeavor to explain how easy it can be once you have everything in place.  As I develop the application, I’ll further post what I did to develop, deploy and extend the application for further use.

Is it Ready for the Enterprise?

I’m not sure if I can completely answer this question.  From an engineering/architecture point of view, it’s spot on.  For application maturity and production, that’s another matter.  Are there products using Pinax already?  What size are they?  Have they found, fixed and published bugs?

Quality Assurance in open-source projects can be in-bred amongst the developers and engineers on a project.  While they “know” the product the best and work to ensure functionality and eventual viability, they also make decisions on what needs to be fixed and “what can wait”.  In a strong enterprise environment, QA stands alone as a benevolent antagonist against development; business requirements will expose different issues and eventually make the product stronger.  If, as a technology leader, you are considering the use of Pinax, it would be prudent to add extra Quality Assurance time to the planned schedule to ensure future stability and a great customer experience.

   Send article as PDF   

Leave a Reply

Bad Behavior has blocked 128 access attempts in the last 7 days.