Description
Wordsmiths is an open-source project written by Dion Misic in Python to understand and pave a path toward an improved understanding of Operational Transformation, the algorithm behind collaborative editing in Google Docs. The project is built on the Flask micro-framework and uses Python to perform Operational Transformation so multiple users can collaborate on a shared document in real time in high latency environments such as the web.
The model-view-controller architecture of Flask allows web applications to be manageable, dynamic and scalable - all desirable features for publishing a collaborative system with Operational Transformation to the web. Subsequently, the simplicity of Python and Flask allow the algorithms documentation to be simpler and easier to comprehend for people who are new to the topic. The limitations of using Python is that technologies such as Javascript and Ajax need to be implemented in addition to open communication between the server and the client; as Python is a server scripting language.
As a high school student, this project has allowed me to implement complex algorithms, measure their algorithmic efficiency, create relational databases and explore new programming paradigms which can be used in real-world applications outside the confines of school. Despite having no prior knowledge of web development, this project has allowed me to understand web development in greater depth and how a client and server can work together to manipulate and store data. I will share my experiences with Python, the shortcomings of Python and how I managed to develop my project using Flask.