-
Notifications
You must be signed in to change notification settings - Fork 51
Design Decisions
This page documents the design/architecture decisions made by the project.
We chose Python because it is currently the 2nd most popular language, behind Java, and is now the first language that many people are exposed to. Additionally, we believe it will best enable people with diverse backgrounds (e.g., data science, machine learning, journalism) to collaborate on the code and the data.
Django is the most popular web framework for Python. As such, it has a robust ecosystem enabling us to focus development on the core features of Open Synthesis. Additionally, in the future, we can build a responsive front-end (e.g., using Angular or React) on top of Django (e.g., using Django REST).
Open Synthesis should not be tied to a particular 3rd-party provider. Therefore, we must ensure that the deployment pipeline and hosting only depends on widespread standards.
Travis CI is used by many projects within the Django ecosystem, supports testing, and has close integration with GitHub.
As a Platform-as-as-Service, Heroku made it easy to get a prototype up and running. Heroku supports Python 3.5 out-of-the-box, unlike Google App Engine. Heroku also made it easy to configure SSL to their SSL endpoint.
The GPLv3 is consistent with the principles of the project. As an application (as opposed to a library), there is likely little benefit (e.g., adoption) to using a more permissive license (e.g., MIT).