I’d like to start a discussion on the OCL tech stack. I’m writing it from a perspective of a person who stays in the JVM world for most of my development, so I may be wrong in many places and I hope to be corrected.
First off all OCL API uses django-nonrel-1.5. It’s a fork of django 1.5 with an added support for NoSQL DBs including MongoDB. That version of django is quite outdated (released 3 years ago) and is no longer supported by django. It is even hard to find documentation for django 1.5. The oldest version they provide docs for seems to be 1.7 and even for that version they put a red warning that it is an unsecure and unsupported version. There is a branch of django-nonrel-1.7, but I couldn’t find any info, if it is stable and the last commit was in 2014, which would suggest not to use it.
Django seems to be best suited to work with relational databases, thus even in django 1.9 there’s no built-in support for MongoDB. People seem to use external libraries like pymongo to connect to MongoDB when working with django, but continue to use a relational database as the main data source.
I’m not really sure what to do with that knowledge at the moment. I’m hoping I’m missing something and there’s a way out. I’m looking for some advice from people who have experience with Python on how to best deal with that. @kkaczmarczyk, what would you recommend?
Another thing is that we have a separate project (in django 1.6.2), which is purely for providing UI. It doesn’t seem to be very complete (many pages do not work) so I think that it may be best going forward to drop it and develop UI, which communicates with our REST API using some front-end js frameworks like Angular or React.