Tools and Technology Standards
Please add notes of the standard tools/technologies that we have accepted and recommend for use at edX.
For example, do we think that they are Backbone, JS, Python, etc… Apiary, Jenkins, DBs, App Servers, etc…
If we have legacy technology we are using, we can note it, but we should make it clear that it's not a recommended standard.
General
Languages:
Server-side: Python 3.x (see the Support Windows chart for current version).
Client-side: Front End Technologies
Recommended Local Storage:
MySQL
Mongo (for course content)
Recommended Cloud Storage:
AWS
Recommended IDE:
Development Task management:
Dev tasks: Make, paver (deprecated)
JS-specific tasks: gulp (not-yet implemented)
CI: Github Actions
Testing
Styling: pep8, pylint, ESLint
UI unit tests: Jasmine (test execution), karma (runner, js-test-tool is flagged for eventual deprecation)
Acceptance tests: Cypress
Load tests: n/a
Documentation
* Note: Forums is currently implemented in Ruby and Sinatra, but should be ported to Python and Django eventually.
Mobile Apps
Android
Language: Java
Dependency Injection: Dagger
Recommended IDE: Android Dev Studio
iOS
Language: Swift and Objective-C
Recommended IDE: XCode
Build Tool: Gradle
CI: Travis
Test Framework: TBD ?
Analytics
This section is out-of-date.
Search Tools
Elastic Search
Observability Tools
Performance Tools
API Development