Generally it is not acceptable to stop halfway through a project and tell people that you want to completely start over. Generally once you begin a project, you are obligated to grin and bear it as it continues going south. However… When you run your own project and can’t motivate yourself to continue on the path towards eventual death and destruction, there comes a time when you need to step back and reevaluate. Because I am not a team of developers with decades of PHP experience, it is very difficult to design a larger web application in said PHP. Larger applications generally employ a sort of framework that makes use of abstraction to make the developers life easier and streamline the process of development. In this spirit, I have decided to completely redesign the ClassNinja course selection web application using the Django web framework and the Python programming language. I expect to be able to make use of the MVC project structure to compartmentalize different parts of my development. The C stands for Controller, which handles requests and directs information to the Model (M). The Model manipulates data and stores it in a database. The Controller also sends information back to the user after it is rendered by the View (V). What I’m particularly excited to begin work on the views using the Jinja framework to reuse a base template to render all of my HTML code and spend less time copying existing HTML.
While I realize that Django has a very steep learning curve, it is appropriate to tackle it now, because I have the time to spend during break. Thus I feel as though I can set the (albeit mountainous) goal of getting the project up to where it is now using Django instead of PHP. Some of you (if more people than just my english teacher read this blog) may still be asking me exactly why this is beneficial. Essentially, to simplify it a little bit, I felt like my previous development strategy was just digging me into a hole. Thus, I decided to reevaluate and during this revaluation I picked Django as the most likely candidate to get this project done and something I can be proud of by the end of the year. This total migration will really be a learning experience for me that will carry into next year, now with the knowledge of what can and can’t be accomplished by a single developer and I’m excited to add it to my presentation so that other emerging programmers might learn the same thing: to never take the easy way because you will trap yourself in your own code.