Learning OED Technologies

As a new developer, it can be daunting to understand and learn all of the technologies used in OED. This page, which everyone is encouraged to update, contains some resources that can be useful in this pursuit. This is not meant to be an exhaustive list nor rate these sites but to provide ones that project members or others have found useful. As always, you can contact the project with questions or for help.

The following graphic shows some of the main technologies in OED grouped by where they are used. The "Others" group are technologies that generally span multiple parts of OED and are seen depending on what you are doing. Developers often only need to know the technology in one area or even a subset of that area. This can make the task of learning the needed technologies much more manageable.

OED technologies

You may also find the Technology Overview giving an overview of the front-end process to be useful.

Git

JavaScript

JavaScript is a very popular language for developing web applications. While it shares part of its name with Java, it is a different language. It is used in the back-end of OED. There are many sources of information on JavaScript with some listed here. Note some discuss how to customize web pages and other features that will not be used as heavily in this project.

TypeScript

TypeScript is a language layered on top of JavaScript that adds typing and other features to make JavaScript more secure. It is used in the front-end of OED. There are many sources to learn TypeScript including one from the TypeScript organization.

JavaScript Promises

Promises is a system within JavaScript to help deal with the situation when some actions depend on others. In a nutshell, there are times you want to wait on one action to finish before another begins. This is used throughout the OED code base.

React

React is a JavaScript library for building user interfaces. It is used by many organizations and projects. It is used in the OED front-end.

Redux

Redux is a JavaScript library to help handle state. OED uses it along with React. It is used in the OED front-end.

Postgres

For several reasons, OED uses the PostgreSQL database. While much of database code is standard SQL, some is PostgreSQL specific to access specific features.

Plotly

The graphics in OED are produced with Plotly using their JavaScript library. There are many other references for using Plotly.

Chai and Mocha

OED uses the Chai and Mocha testing frameworks to test the OED code base. Both sites have information on usage as well as many other sites. We generally only use a subset of the features that can be seen by looking at our test code.

Other packages

OED directly depends on dozens of npm JavaScript packages and indirectly on many more. Some ones that are used more extensively include node (for running the JavaScript), express (for web requests), moment (for date/time objects), lodash (utility functions), react-intl (internationalization) and webpack (bundle app). You will see these and others in the OED code base. It is often best to learn about them as needed.