Django KFIMember Tutorial Part I - Deciding Application Scope, Production and Technology Stacks

If this is your first encounter with PTVS, I bet you haven't imagine this kind of screenshot, even in your wildest dreams.

If this is your first encounter with PTVS, I bet you haven't imagine this kind of screenshot, even in your wildest dreams... Cool

ARTICLE UPDATE : As I have unresolved problem when using Python 3.3 combined with Django 1.6 and PostgrerSQL 9.2 in Openshift, I dropped Python 3.3 requirement and rework this application using Python 2.7 instead.

Yes, I know. I haven't finished my Flask Biography Tutorial yet. But I thought I would like to start an initial post of what my next tutorial series would be like. I have several ideas actually, popping from my head of what Python topic (library or framework to be exact) I would like to explore more, which are:

  1. Django : "The Web framework for perfectionists with deadlines". I am pretty much sure, no software developers were not intrigued by that tagline! Before diving into Python, I evaluate Ruby on Rails previously. And I got the sense that Django is Python answer to RoR, which is not that untrue.
  2. Pyramid, mainly because previously I got offered for Pyramid based remote job.
  3. Isometric traffic control simulation game build using (probably) XNA + Python for scripting. Why? Because in one occasion where I explained to my 6 years old daughter of what is an Isometric image (after I saw her to be so enthusiast looking at an isometric pixel-art image), she and also her 3 years old brother seems to be interested on it.

    It's so addicted!
    It's so addicted! Try to find Batman in that beautiful pixel art image taken from nasc

  4. Twisted, to be able to develop a large scale of network event-driven application. It may be just a chat server for the aforementioned Isometric traffic control simulation game, or a more complex multiplayer server for it.

Eventually, as I also have been offered a job to develop membership website for our Koperasi Freelancer Indonesia (KFI), I thought the timing is perfect if I blog my experience in developing it as my next tutorial series in this blog. With one interesting twist of plot : we are going to add another development platform, Python Tools for Visual Studio + Windows Azure. But still not forgetting those  who use *nix. In this series, we are going to see how well Windows Azure match up with Openshift in context of deploying Python web application.

Hence, welcome to the first installment of Pythonthusiast's Django Tutorial!

Application Scope

What is Koperasi Freelancer Indonesia? 

Newest Logo of Koperasi Indonesia

Indonesia's Newest Koperasi Logo

Koperasi is Bahasa Indonesia translation of Cooperative, which is an autonomous association of persons who voluntarily cooperate for their mutual, social, economic, and cultural benefit (taken directly from Wikipedia). I am not trying to be an instant economic expert here, but in Indonesia we are trying hard to shift our economic power from little masses of top of the pyramid giant capital holder toward the majority of masses lying at the bottom of the pyramid, by means of Koperasi. We even have specialized Ministry for that, which is State Ministry of Co-operatives and Small Medium Entreprises.

Koperasi Freelancer Indonesia (or, KFI to be short) is an answer of how Indonesian freelancer can be accepted legally in our country, complete with its right and obligation, by forming a Cooperative and allowing them applying to Jamsostek, which is Indonesian health insurance service from the government. Previously, as freelancer having no fix-employment status (actually, most of the time we are unemployed!), it's hard for us to have the same right as our fix-employment colleagues. Hence, in June 02, 2013, KFI was formed with its main founder, Agung Dewandaru and another 23 founders, in Bandung, Indonesia.

New Web Application About to be Build

If you already have a look on our KFI website, you will find that the site is still a company profile website, meaning it only purpose is to advertise our organization vision and mission to the crowd. It still lack important administrative tasks such as :

  • New member registration
  • Monthly dues
  • Arisan (social --and online-- gathering for purposes of conducting a lottery)
  • All sort of administrative reports

Those new features are requiring new application to be built, and as I was assigned for this task, I choose my beloved true love : Python. Using Django framework. And here we are, starting on our first series of Django Tutorial. Let see how much we can accomplished in this series!

Production Platform

Needless to say, I am going to host this KFIMember application in Openshift.

Up until now, I haven't found such a generous free plan as what Openshift had to offer. A productional quality application can be really build using just a free plan. Well, I just hope that they don't change their free plan offering in the future. Finger cross. Wink 

But, beside that, I will also show you how the same application can be deployed to Microsoft answer to PaaS market : Windows Azure. At the latest development, Windows Azure already has a nice support for Python.

Let us dive into it, and see how well Microsoft cope up with the Open Source world!

Technology Stacks

Here are a complete list of what stacks of technology that we are about to use:

  1. Django, obviously. But with one important addition: we are going to use Python 3.3. Got to say, it's not that easy when I choose to use Python 3.3. Honestly, there are fear of having important Django plugins not working. But, hey, it's Django. Nearly everything we need for web development is there. So, let's start our new adventure and use Python 3.3!
  2. PostgreSQL. Any other RDBMS back-end database will do. You can even replace it with your own fovorite RDBMS database.
  3. ORM? Well, as Django having its own ORM, we are going to stick with it. But, as you can see, we can also replace Django ORM with our old pal SQLAlchemy.
  4. Templating? The same case with Django ORM: we are going to stick with Django templating and explore its features, although we can always replace it with Jinja2.
  5. You can buid your own Django application with any IDE at your disposal, or simply to use general text editor such as Emacs (I use this), ViM or Sublime. But, I will also explore how to leverage Python Tools for Visual Studio, which is Microsoft own product targeted toward Python developers who would like to build its Python solution on top of Windows platform or to have a better integration in Windows .NET API using IronPython.

See?

We have a tough and interesting journey ahead of us. Let see how well we can enjoy this journey and mark our completion by its series of online Django Tutorial.

Stay tuned!




Leave comments

authimage

Copyright(c) 2014 - PythonBlogs.com
By using this website, you signify your acceptance of Terms and Conditions and Privacy Policy
All rights reserved