Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 2.73.x (see the Support Windows chart for current version).
    • Client-side: Javascript, HTML, CSS
    Web frameworks:
  • 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: Jenkins Github Actions
  • Testing
    • Styling: pep8, pylint, jshint ESLint
    • UI unit tests: Jasmine  Jasmine (test execution), karma (runner, js-test-tool is flagged for eventual deprecation)
    • Acceptance tests: Bok-choy Cypress
    • Load tests: Locust.io n/a
  • Documentation

* Note: Forums  Forums is currently implemented in Ruby and Sinatra, but should be ported to Python and Django eventually.

Mobile Apps

  • Android
    • Language: Java Java
    • Dependency Injection: Dagger Dagger
    • Recommended IDE: Android  Android Dev Studio
  • iOS
    • Language: Swift  Swift and Objective-C
    • Recommended Recommended IDE: XCode XCode
  • Build Tool: Gradle Gradle
  • CI: Travis Travis
  • Test Framework: TBD  TBD ?

Analytics

Warning

This section is out-of-date.


Expand
titleClick for possibly out-of-date analytics details...
  • Recommended Data Processing Environment:
    • Hadoop (EC2 & EMR)
    • Luigi
  • Recommended Data Storage:
    • HDFS (AWS S3) + Hive
    • MySQL
    • Vertica (Postgres DB) on EC2
  • Not Recommended Data Discovery/Visualization:
    • segment.io
    • Splunk (would like to replace with Vertica)
    • IPython Notebooks (occasionally used for experimental development)
  • Recommended Data Discovery/Visualization:
    • Google Analytics
    • Tableau
    • DataDog
  • Recommended CI:
    • Jenkins
  • Languages:
    • Server-side: Python (Django)
    • Client-side: Javascript (Backbone, Underscore, RequireJS, D3/NVD3), HTML, CSS (SASS)
  • Dev task management:

...

  •  gulp
  • Testing:
    • Unit tests: Python unittest
    • UI unit tests: jasmine (tests), karma (runner)
    • Acceptance tests: Bok Choy

Search Tools

  • Elastic Search

Observability Tools

Performance Tools

API Development

...