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