Update documentation to make it easier for users to find the right content for them (#1016)

* First pass of updating documentation for new users

Trying to look at this from the perspective of someone new to the
project, and create some pathways to make it easier for people to get to
the content they are looking for.

* Make it clear that docker is doing the setup

* Link installation again from the main README

* Add some docs about the github actions

* Add markdown link check

* Move git installation first

* Add config for markdown link checker

* Fix some links

* Correct handling of repo root relative links

* Fix broken links in data roadmap

* Fix more broken links

* Fix more links

* Ignore link that's returning a 403 to the checker

It actually works if you go in a browser.

* Fix another broken link

* Ignore more urls that don't work

* Update the readme under docs

* Add some more dataset links

* More strongly call out the quickstart

* Try to call out even more the quickstart link

* Fix dead links

* Add note about initialization time

* Remove broken link from spanish install guide

These will be updated later with a full translation
This commit is contained in:
Shaun Verch 2021-12-16 10:16:28 -05:00 committed by GitHub
parent 0d10534725
commit d90e028c1b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 154 additions and 108 deletions

9
.github/workflows/README.md vendored Normal file
View file

@ -0,0 +1,9 @@
# Justice40 Github Actions Workflows
This directory has the github actions workflows for the Justice40 Project.
This project is deployed on an AWS account managed by [GeoPlatform.gov](https://www.geoplatform.gov/), and github actions is used to automate the data pipeline and all deployment steps.
The names of the Github Actions stages in the yaml files should describe what each step does, so it is best to refer there to understand the latest of what everything is doing.
To mitigate the risk of having this README quickly become outdated as the project evolves, avoid documenting anything application or data pipeline specific here. Instead, go back up to the [top level project README](/README.md) and refer to the documentation on those components directly.

View file

@ -0,0 +1,10 @@
name: Check Markdown links
on:
push:
pull_request:
jobs:
markdown-link-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: gaurav-nelson/github-action-markdown-link-check@v1

View file

@ -12,5 +12,5 @@ Los mantenedores del proyecto tienen el derecho y la obligación de eliminar, ed
Los casos de abuso, acoso o de otro comportamiento inaceptable se pueden denunciar abriendo un problema o contactando con uno o más de los mantenedores del proyecto en justice40open@usds.gov.
Este Código de conducta es una adaptación de la versión 1.0.0 del Convenio del colaborador ([Contributor Covenant](contributor-covenant.org), *en inglés*) disponible en el sitio http://contributor-covenant.org/version/1/0/0/ *(en inglés)*.
Este Código de conducta es una adaptación de la versión 1.0.0 del Convenio del colaborador ([Contributor Covenant](http://contributor-covenant.org), *en inglés*) disponible en el sitio http://contributor-covenant.org/version/1/0/0/ *(en inglés)*.

View file

@ -6,7 +6,7 @@
The following is a set of guidelines for contributing to the Justice40 Tool that lives in this repository.
Before contributing, we encourage you to also read our [LICENSE](https://github.com/usds/justice40-tool/blob/main/LICENSE) and [README](https://github.com/usds/justice40-tool/blob/main/README) files, also found in this repository. If you have any questions not answered by the content of this repository, please don't hesitate to [contact us](mailto:justice40open@usds.gov).
Before contributing, we encourage you to also read our [LICENSE](LICENSE.md) and [README](README.md) files, also found in this repository. If you have any questions not answered by the content of this repository, please don't hesitate to [contact us](mailto:justice40open@usds.gov).
## Public Domain

12
DATASETS.md Normal file
View file

@ -0,0 +1,12 @@
# Justice40 Datasets
This page contains web links to the datasets that are uploaded as part of our data pipeline, if you want to access them directly. Note that this is just a quick reference and the [Data Pipeline README](/data/data-pipeline/README.md) has the comprehensive documentation on all these datasets.
> Note: These currently aren't updated on any specific cadence, so be aware of this if you know that the dataset you are using might change frequently.
- Census data, generated by the [Generate Census Github Action](https://github.com/usds/justice40-tool/blob/main/.github/workflows/generate-census.yml): <https://justice40-data.s3.us-east-1.amazonaws.com/data-sources/census.zip>
- Score data, generated by the [Generate Score Github Action](https://github.com/usds/justice40-tool/blob/main/.github/workflows/generate-score.yml): <https://justice40-data.s3.us-east-1.amazonaws.com/data-pipeline/data/score/csv/full/usa.csv>
- EJScreen: <https://justice40-data.s3.amazonaws.com/data-pipeline/data/dataset/ejscreen_2019/usa.csv>
- Census ACS 2019: <https://justice40-data.s3.amazonaws.com/data-pipeline/data/dataset/census_acs_2019/usa.csv>
- Housing and Transportation Index: <https://justice40-data.s3.amazonaws.com/data-pipeline/data/dataset/housing_and_transportation_index/usa.csv>
- HUD Housing: <https://justice40-data.s3.amazonaws.com/data-pipeline/data/dataset/hud_housing/usa.csv>

View file

@ -56,5 +56,3 @@ Si bien se puede usar cualquier IDE, describimos cómo configurar VS Code
Para el desarrollo de front-end, lea el [Client README](client/README.md).
Para el desorrollo de back-end, lea el [Data Pipeline README](data/data-pipeline/README.md).
Para la implementación de software, lea el [Infrastructure README](infrastructure/README.md).

View file

@ -1,26 +1,31 @@
# Installing the Justice40 Tool
# Justice40 Tool Installation
*[¡Lea esto en español!](INSTALLATION-es.md)*
## Required Software
You'll need the following set up in your environment before continuing to run the Justice40 Tool code.
This page documents the installation steps for some of the software needed to work with this project.
- git, node, and an IDE
> **NOTE: If you all you want to do is quickly run everything locally to try out the application, go straight to [`QUICKSTART.md`](QUICKSTART.md).**
### Install Git
After the generic installation steps on this page, continue on to one of the following, depending on what you are trying to do:
#### MacOS
- If you are working with the frontend, see [`client/README.md`](client/README.md).
- If you are working with the data pipeline, see [`data/data-pipeline/README.md`](data/data-pipeline/README.md).
- If you want to understand the current deployment process, see [`.github/workflows/README.md`](.github/workflows/README.md).
## Install Git
### MacOS
1. Open the terminal and type `git` and hit RETURN.
2. If dev tools are not installed a window will prompt you to install dev tools.
2. If dev tools are not installed a window will prompt you to install dev tools.
3. Open the terminal and type `git --version` and hit RETURN.
4. Validate that a version number is returned. If so, git is properly installed.
#### Win10
### Win10
Download from [website](https://git-scm.com/download/win)
## Install Homebrew (MacOS only)
### Install Homebrew (MacOS only)
Homebrew is an easy way to manage software downloads on MacOS. You don't *have* to use it, but we recommend it.
Homebrew is an easy way to manage software downloads on MacOS. You don't *have* to use it, but we recommend it.
1. First, open your terminal and run `brew -v` to determine whether you have Homebrew installed. If you get a resopnse that looks something like `Homebrew 3.1.9`, you've already got it! If you get nothing back, or an error, continue.
2. Open the terminal and copy / paste this command and hit RETURN. Go through the prompts (you will need to grant `sudo` access).
@ -29,15 +34,9 @@ Homebrew is an easy way to manage software downloads on MacOS. You don't *have*
2. Validate installation by typing `brew -v` in the terminal and ensure a version number is shown.
### Install Node using NVM
You should regularly run `brew update` and `brew doctor` to make sure your packages are up to date and in good condition.
This will work for both MacOS and Win10. Follow instructions on this [link](https://medium.com/@nodesource/installing-node-js-tutorial-using-nvm-5c6ff5925dd8). Be sure to read through the whole doc to find the sections within each step relevant to you (e.g. if you're using Homebrew, when you get to Step 2 look for the section, "Install NVM with Homebrew").
If you install NVM using Homebrew, make sure to read the output in terminal after you run `brew install nvm`. You will need to add a few lines to your ~/.bash_profile and perhaps complete a couple other tasks.
Once you install NVM, don't forget to install Node! This is included in the linked tutorial above.
### IDE set up
## IDE set up (Optional)
While any IDE can be used, we're outlining how to set up VS Code
1. Open the terminal and type `brew install --cask visual-studio-code` and hit RETURN.
@ -49,7 +48,7 @@ While any IDE can be used, we're outlining how to set up VS Code
6. Type `gatsby develop` to spin up the app
7. Navigate to `localhost:8000` to view the app
#### Recommended VS Code Extensions
### Recommended VS Code Extensions
1. [Browser Preview](https://github.com/auchenberg/vscode-browser-preview)
2. [Live Server](https://github.com/ritwickdey/vscode-live-server)
@ -57,28 +56,7 @@ While any IDE can be used, we're outlining how to set up VS Code
4. [Live Share Audio](https://github.com/MicrosoftDocs/live-share)
5. [Live Share Extention Pack](https://github.com/MicrosoftDocs/live-share)
## Install Docker
## Running the code
Once you have the required software installed and ready on your computer, you're ready to begin installing and running the Justice40 Tool code.
1. Fork this repository and create a clone locally. In your terminal/CLI, in the directory you wish to put this project, run `git clone` plus the URL of your fork.
1. If you're using a Mac and Homebrew, go ahead and run `brew update` and `brew doctor`. It's always good to run these regularly to make sure your packages are up to date and in good condition.
Now, check out the next section on the organization of this repository to determine where to go next.
### Repo organization
Our repo is organized into multiple directories (folders) to make it easier to work on and run different parts of the system independently.
The top level of the repo contains these directories, as well as project-wide documentation such as this INSTALLATION file, the README, LICENSE, CODE OF CONDUCT, etc.
There is also a docker-compose file that will eventually include everything you need to run every part of the application in one docker command; however, at the moment, this file only spins up the score creation part of our data pipeline.
**Running the client**
If you wish to check out our client-side code (i.e. the GatsbyJS statically generated website with the map), check out the `client` directory and its [README](client/README.md).
**Running the backend**
If you want to run the data pipeline with ETL and score generation, check out the `data/data-pipeline` directory and its [README](data/data-pipeline/README.md).
**Deployment**
For core team contributors working on deployment, check out the `infrastructure` directory and its [README](infrastructure/README.md) for information on deploying the backend to AWS.
Follow the [Docker installation
instructions](https://docs.docker.com/get-docker/) for your platform.

View file

@ -6,7 +6,7 @@
- Lucas Brown - lucasmbrown-usds
## Ingeniería
Consultar la lista definitiva en [archivo CODEOWNERS](./github/CODEOWNERS).
Consultar la lista definitiva en [archivo CODEOWNERS](/.github/CODEOWNERS).
- Shelby Switzer - switzersc-usds - dirección de ingeniería
- Jorge Escobar - esfoobar-usds

View file

@ -6,7 +6,7 @@
- Lucas Brown - lucasmbrown-usds
## Engineering
See [CODEOWNERS file](./github/CODEOWNERS) for definitive list.
See [CODEOWNERS file](/.github/CODEOWNERS) for definitive list.
- Shelby Switzer - switzersc-usds - engineering lead
- Jorge Escobar - esfoobar-usds

23
QUICKSTART.md Normal file
View file

@ -0,0 +1,23 @@
# Local Quickstart
Install [`git`](https://git-scm.com/). See [Install Git](INSTALLATION.md#install-git).
Open a terminal, clone this repository, and change directory to the repository root:
```sh
$ git clone https://github.com/usds/justice40-tool
Cloning into 'justice40-tool'...
$ cd justice40-tool
```
Install [`docker`](https://www.docker.com/). See [Install Docker](INSTALLATION.md#install-docker).
> *Important*: To be able to run the entire application, you may need to increase the memory allocated for docker to at least 8096 MB. See [this post](https://stackoverflow.com/a/44533437) for more details.
Use `docker-compose` to run the application:
```sh
$ docker-compose up
```
After it initializes (which may take a while, possibly even an hour or two, since it has to download and process all the data), you should be able to open the application in your browser at [http://localhost:8000](http://localhost:8000).

View file

@ -1,5 +1,5 @@
# Herramienta Justice40
[![CC0 License](https://img.shields.io/badge/license-CCO--1.0-brightgreen)](https://github.com/usds/justice40-tool/blob/main/LICENSE)
[![CC0 License](https://img.shields.io/badge/license-CCO--1.0-brightgreen)](https://github.com/usds/justice40-tool/blob/main/LICENSE.md)
*[Read this in English!](README.md)*
@ -18,7 +18,7 @@ En la realización de esta herramienta, el método de código abierto que usa el
Sabemos que podemos aprender de comunidades muy distintas (incluidas las que usarán la herramienta o se verán afectadas por esta) que tienen gran experiencia en la ciencia o la tecnología de datos, o en el trabajo en favor del clima y de la justicia económica o ambiental. Nos dedicamos a crear foros para facilitar la conversación y los comentarios continuos con objeto de conformar el diseño y el desarrollo de la herramienta.
Asimismo, reconocemos que la generación de capacidad es indispensable para incluir a una comunidad diversa de código abierto. Estamos procurando usar lenguaje accesible, proporcionar documentación técnica y sobre procesos en varios idiomas, y ofrecer asistencia, sea directamente o en forma de chats de grupo y de capacitación, a los miembros de nuestra comunidad que poseen gran variedad de conocimientos y habilidades. Si tiene ideas acerca de cómo podemos mejorar o ampliar nuestro trabajo para generar capacidad y de métodos para atraer a los usuarios a nuestra comunidad, comuníquese con nosotros en el [Grupo de Google]((https://groups.google.com/u/4/g/justice40-open-source)) *(en inglés)* o por correo electrónico en justice40open@usds.gov.
Asimismo, reconocemos que la generación de capacidad es indispensable para incluir a una comunidad diversa de código abierto. Estamos procurando usar lenguaje accesible, proporcionar documentación técnica y sobre procesos en varios idiomas, y ofrecer asistencia, sea directamente o en forma de chats de grupo y de capacitación, a los miembros de nuestra comunidad que poseen gran variedad de conocimientos y habilidades. Si tiene ideas acerca de cómo podemos mejorar o ampliar nuestro trabajo para generar capacidad y de métodos para atraer a los usuarios a nuestra comunidad, comuníquese con nosotros en el [Grupo de Google](https://groups.google.com/u/4/g/justice40-open-source) *(en inglés)* o por correo electrónico en justice40open@usds.gov.
### Chats de la comunidad
Cada dos semanas, llevamos a cabo sesiones de chat para la comunidad de código abierto los lunes de 5 a 6 p. m. hora del Este. Nuestro [Grupo de Google](https://groups.google.com/u/4/g/justice40-open-source) *(en inglés)*, proporciona información acerca de los temas que se tratarán en esas sesiones y de cómo puede participar en estas.

View file

@ -1,5 +1,5 @@
# Justice40 Tool
[![CC0 License](https://img.shields.io/badge/license-CCO--1.0-brightgreen)](https://github.com/usds/justice40-tool/blob/main/LICENSE)
[![CC0 License](https://img.shields.io/badge/license-CCO--1.0-brightgreen)](https://github.com/usds/justice40-tool/blob/main/LICENSE.md)
*[¡Lea esto en español!](README-es.md)*
@ -8,8 +8,7 @@ Welcome to the Justice40 Open Source Community! This repo contains the code, pro
## Background
The Justice40 initiative and screening tool were announced in an [Executive Order](https://www.whitehouse.gov/briefing-room/presidential-actions/2021/01/27/executive-order-on-tackling-the-climate-crisis-at-home-and-abroad/) in January 2021, with the goal to launch an MVP of the tool by July 27, 2021. This tool will include interactive maps and an initial draft scorecard which federal agencies can use to prioritize historically overburdened and underserved communities for benefits in their programs.
Please see our [Open Source Community Orientation](docs/Justice40_Open_Source_Community_Orientation.pptx) deck for more information on the Justice40 initiative, our team,
this project, and ways to participate.
Please see our [Open Source Community Orientation](docs/Justice40_Open_Source_Community_Orientation.pptx) deck for more information on the Justice40 initiative, our team, this project, and ways to participate.
## Core team
The core Justice40 team building this tool is a small group of designers, developers, and product managers from the US Digital Service in partnership with the Council on Environmental Quality (CEQ).
@ -44,9 +43,23 @@ Contributions are always welcome! We encourage contributions in the form of disc
See [CONTRIBUTING.md](CONTRIBUTING.md) for ways to get started.
## Installation
## For Developers and Data Scientists
The installation is a typical gatsby install and the details can be found in [INSTALLATION.md](https://github.com/usds/justice40-tool/blob/main/INSTALLATION.md)
### Datasets
The intermediate steps of the data pipeline and the final output that is consumed by the frontend are all public and can be accessed directly. See [DATASETS.md](DATASETS.md) for these direct download links.
### Local Quickstart
If you want to run the entire application locally, see [QUICKSTART.md](QUICKSTART.md).
### Advanced Guides
If you have software experience or more specific use cases, start at [INSTALLATION.md](INSTALLATION.md) for more in depth documentation of how to work with this project.
### Project Documentation
For more general documentation on the project that is not related to getting set up, including architecture diagrams and engineering decision logs, see [docs/](docs/).
## Glossary

View file

@ -16,8 +16,21 @@ This README contains the following content:
## Installing and running the client site
### Via npm
1. Confirm you have the base required software installed. See [INSTALLATION](INSTALLATION.md) for more details.
1. Install yarn if you do not have it yet. Open your terminal and run `sudo npm install -global yarn`. This works on MacOS and Win10. To confirm it is installed, run `yarn -v`. A version number should be returned.
#### Install Node using NVM
This will work for both MacOS and Win10. Follow instructions on this [link](https://medium.com/@nodesource/installing-node-js-tutorial-using-nvm-5c6ff5925dd8). Be sure to read through the whole doc to find the sections within each step relevant to you (e.g. if you're using Homebrew, when you get to Step 2 look for the section, "Install NVM with Homebrew").
If you install NVM using Homebrew, make sure to read the output in terminal after you run `brew install nvm`. You will need to add a few lines to your ~/.bash_profile and perhaps complete a couple other tasks.
Once you install NVM, don't forget to install Node! This is included in the linked tutorial above. This will also install `npm` which you need for the steps below.
#### Install Yarn
Install yarn if you do not have it yet. Open your terminal and run `sudo npm install -global yarn`. This works on MacOS and Win10. To confirm it is installed, run `yarn -v`. A version number should be returned.
#### Run The Application
1. Navigate to the base directory of this repository, and go to the `client` directory (`cd client`).
1. Run the command `npm install` to install the dependencies.
1. Run `npm start` to start up the client app.
@ -62,7 +75,7 @@ DATA_SOURCE env variable in the docker-compose.yml. See [environment variables](
### Viewing data on the map
See [VIEW_MAP_DATA](./VIEW_MAP_DATA) for more details on this.
See [VIEW_MAP_DATA.md](./VIEW_MAP_DATA.md) for more details on this.
## Linting and Formatting
@ -159,7 +172,7 @@ When developing, to use a flag:
1. Pass the Gatsby-provided `location` variable to your component. You have several options here:
1. If your page uses the `Layout` [component](src/components/layout.tsx), you automatically get `URLFlagProvider` (see [FlagContext](src/contexts/FlagContext.tsx) for more info).
2. If your page does not use `Layout`, you need to surround your component with a `URLFlagProvider` component and pass `location`. You can get `location` from the default props of the page (more [here](https://www.gatsbyjs.com/docs/location-data-from-props/)). See [Index.tsx](src/pages/index.tsx) for an example.
2. Use the `useFlags()` hook to get access to an array of flags, and check this array for the presence of the correct feature identifier. See [J40Header](src/components/J40Header.tsx) for an example.
2. Use the `useFlags()` hook to get access to an array of flags, and check this array for the presence of the correct feature identifier. See [J40Header](src/components/J40Header/J40Header.tsx) for an example.
#### When to use flags:

View file

@ -120,7 +120,7 @@ _For example: `poetry run python3 data_pipeline/application.py etl-run -d ejscre
1. These data sets are merged into a single dataframe using their Census Block Group GEOID as a common key, and the data in each of the columns is standardized in two ways:
- Their [percentile rank](https://en.wikipedia.org/wiki/Percentile_rank) is calculated, which tells us what percentage of other Census Block Groups have a lower value for that particular column.
- They are normalized using [min-max normalization](https://en.wikipedia.org/wiki/Feature_scaling), which adjusts the scale of the data so that the Census Block Group with the highest value for that column is set to 1, the Census Block Group with the lowest value is set to 0, and all of the other values are adjusted to fit within that range based on how close they were to the highest or lowest value.
1. The standardized columns are then used to calculate each of the Justice40 score experiments described in greater detail below, and the results are exported to a `.csv` file in [`data/score/csv`](data/score/csv)
1. The standardized columns are then used to calculate each of the Justice40 score experiments described in greater detail below, and the results are exported to a `.csv` file in [`data_pipeline/data/score/csv`](data_pipeline/data/score/csv)
#### Step 4: Compare the Justice40 score experiments to other indices
@ -143,13 +143,13 @@ _NOTE:_ This may take several minutes or over an hour to fully execute and gener
### Data Sources
- **[EJSCREEN](etl/sources/ejscreen):** TODO Add description of data source
- **[Census](etl/sources/census):** TODO Add description of data source
- **[American Communities Survey](etl/sources/census_acs):** TODO Add description of data source
- **[Housing and Transportation](etl/sources/housing_and_transportation):** TODO Add description of data source
- **[HUD Housing](etl/sources/hud_housing):** TODO Add description of data source
- **[HUD Recap](etl/sources/hud_recap):** TODO Add description of data source
- **[CalEnviroScreen](etl/scores/calenviroscreen):** TODO Add description of data source
- **[EJSCREEN](data_pipeline/etl/sources/ejscreen):** TODO Add description of data source
- **[Census](data_pipeline/etl/sources/census):** TODO Add description of data source
- **[American Communities Survey](data_pipeline/etl/sources/census_acs):** TODO Add description of data source
- **[Housing and Transportation](data_pipeline/etl/sources/housing_and_transportation):** TODO Add description of data source
- **[HUD Housing](data_pipeline/etl/sources/hud_housing):** TODO Add description of data source
- **[HUD Recap](data_pipeline/etl/sources/hud_recap):** TODO Add description of data source
- **[CalEnviroScreen](data_pipeline/etl/sources/calenviroscreen):** TODO Add description of data source
## Running using Docker

View file

@ -1,42 +1,7 @@
# Installation Prerequisites
# Justice40 Project Documentation
1. [Install the latest docker](https://docs.docker.com/get-docker/) and you may want to install [docker desktop - latest](https://docs.docker.com/desktop/)
2. [Install python 3.9.5 (latest) and](https://www.python.org/downloads/) [configure your environment](https://docs.python.org/3/tutorial/venv.html) to get data-platform source environment ready.
3. Install Visual Studio Code (python packages & typescript) <TODO: add .vscode>
4. [Installing nvm](https://github.com/nvm-sh/nvm#installing-and-updating) and then do:
```sh
nvm install 14.17.0
If you are new to this project, check out the [top level README](/README.md) first.
nvm use 14.17.0
```
and now when you do:
```sh
node -v
```
you should see:
```sh
v14.17.0
```
6. Install [node.js](https://nodejs.org/en/download/) and install all dependencies by `cd`ing into the `/client` directory and running:
The content under this directory should be more about conceptually understanding the project, such as [architecture diagrams](architecture), [decision logs](decisions), and the [Open Source Community Orientation](/docs/Justice40_Open_Source_Community_Orientation.pptx), rather than about specific installation steps.
```sh
npm install
```
* Note: `npm install` will check the `package-lock.json` fill and restore all transitive dependencies that are in the lock.
# Build
<TODO: .vscode/task.json file with build commands for each backend>
# PR Process & Git Flow
[See Contributing.md](../CONTRIBUTING.md)
# Documentation
Here you'll find all Justice40 project documentation.
In particular:
- [Decisions](decisions) - Documentation of significant project decisions
- [Data Roadmap](data-roadmap.md) - a description of our process for adding new datasets to our backlog
For documentation related to installation and getting set up as a developer or data scientist, see [For Developers and Data Scientists](/README.md#for-developers-and-data-scientists).

View file

@ -159,7 +159,7 @@ Leaflet is a popular open-source mapping visualization library that has been aro
- Anecdotally, screen readers still struggle to read content without annotations - the onus is still on the map creator to ensure proper compliance.
- **Internationalization/Localization** : the API has its own `intl` module, described [here](https://developers.arcgis.com/javascript/latest/api-reference/esri-intl.html)
- Note: The default ES6 `Intl` module appears to do all of the things described above without need for further modificaiton
- **Name recognition** : Esri in general holds "approximately 43% of the global market share and estimated annual revenues of approximately $1.1 Billion, from roughly 300,000 customers" ([source](https://digital.hbs.edu/platform-digit/submission/esri-and-arcgis/])). Relatedly, Esri tools interoperate well with other Esri tools, and their ecosystem is large.
- **Name recognition** : Esri in general holds "approximately 43% of the global market share and estimated annual revenues of approximately $1.1 Billion, from roughly 300,000 customers" ([source](https://digital.hbs.edu/platform-digit/submission/esri-and-arcgis/)). Relatedly, Esri tools interoperate well with other Esri tools, and their ecosystem is large.
- Note: according to [one analysis](https://www.datanyze.com/market-share/mapping-and-gis--121) specifically the ArcGIS Web API holds only 0.48% of the marketshare overall.
- **Modularity** : As seen in ArcGIS [documentation](https://developers.arcgis.com/documentation/), Esri interoperates with Leaflet (through a custom fork), Mapbox GL JS, and OpenLayers.

25
mlc_config.json Normal file
View file

@ -0,0 +1,25 @@
{
"ignorePatterns": [
{
"pattern": "^http://localhost"
},
{
"pattern": "yyyymmdd-xxx.md"
},
{
"pattern": "https://support.gatsbyjs.com/hc/en-us/articles/360053096273-Why-did-I-hit-Out-of-Memory-errors-"
},
{
"pattern": "^http://www.datasciencetoolkit.org"
},
{
"pattern": "^https://github.com/usds/environmental-justice/"
}
],
"replacementPatterns": [
{
"pattern": "^/",
"replacement": "{{BASEURL}}/"
}
]
}