We used the Django web framework designed for Python 3.4 to manage the inner workings of Protocat 2.0. Django is convenient because it is capable of useful features including managing administration, databases, authentication, and templating of data on HTML pages through a Model-View-Controller system. The Model component is the Python code interacting that stores classes and objects needed for the database. The View component is the user interface that updates when changes are made to the model. The Controller handles browser requests and responses, as well as database connections. The combined MVC is an architecturally sound web application.
Protocat 2.0 uses two databases, one for protocols and one for users. We created a “class Protocol,” a model of a protocol, to be used in the protocol database. This class includes properties such as name, reagents, protocol ID, and steps. Django takes care of the necessary steps to aggregate the various protocols into a database. Whenever changes need to be made to our models, all we need to do is migrate the changes through Django and it will change our database accordingly. Django comes with its own user system, which was used instead of creating our own user model. New user information such as username, password, email, and real name are added to the user database. Likewise, when a protocol is uploaded, all those attributes are saved in the protocol database.