# Tech Stack
## Language
- [TypeScript](https://www.typescriptlang.org/) (if possible)
- JavaScript (if needed for compatibility)
## Frontend
- [React](https://reactjs.org/)
- Has lots of documentation and libraries
- Is customizable
- Not the most simple to use
### Maps
- [deck.gl](https://www.deck.gl)

- [react-leaflet](https://react-leaflet.js.org/)

- [OpenLayers](https://openlayers.org/)

- [react-arcgis](https://github.com/Esri/react-arcgis)

### Charts
- [visx](https://airbnb.io/visx/)
- Produces nice results
- Might be a little heavy, if we have tons of graphics

- [canvas.js](https://canvasjs.com/)
- Really simplistic, might not cover all of our necessities

- [d3.js](https://d3js.org/)
- Covers a lot of different types of charts, including maps
- Difficult to use and complex

- [Victory](https://formidable.com/open-source/victory/)
- After doing a part of the tutorial it doesn't seem to be too hard to use
- Made to be used with React
- Supports several types of charts
- Nice looking results

- There is a [wrapper](https://reactjsexample.com/a-wrapper-around-victory-js-and-it-makes-charting-easier/) that supposedly reduces boilerplate but I'm not sure if it's really worth it
- [Chart.js](https://www.chartjs.org/)

## Backend
- [Express.JS](https://expressjs.com/)
- [Node.js](https://nodejs.org/en/)
## Database
- [Neo4j](https://neo4j.com/)
- Most popular graph database (more learning resources)
- High performance
- Free community edition
- [ArangoDB](https://www.arangodb.com/)
- Multi-model (can use graph, document, key-value models among others)
- Free community version