All Projects → districtr → districtr

districtr / districtr

Licence: MIT license
A free, open-source web app for drawing districting plans.

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
SCSS
7915 projects

Projects that are alternatives of or similar to districtr

Mapping
OpenStreetMap contributions from the data team at Mapbox
Stars: ✭ 213 (+213.24%)
Mutual labels:  mapbox
MoleculeJS
A library for creating fast and reactive Custom Elements
Stars: ✭ 39 (-42.65%)
Mutual labels:  lit-html
fuco
Functional Component like React, but for Web Components.
Stars: ✭ 71 (+4.41%)
Mutual labels:  lit-html
Maps
🌍🌏🌎 The whole world fits inside your cloud!
Stars: ✭ 253 (+272.06%)
Mutual labels:  mapbox
svelte-mapbox
MapBox Map and Autocomplete components for Svelte (or Vanilla JS)
Stars: ✭ 267 (+292.65%)
Mutual labels:  mapbox
fishfrymap
Fish Fry Map project repository
Stars: ✭ 14 (-79.41%)
Mutual labels:  mapbox
L7
🌎 Large-scale WebGL-powered Geospatial Data Visualization analysis framework which relies on Mapbox GL or AMap to render basemaps.
Stars: ✭ 2,517 (+3601.47%)
Mutual labels:  mapbox
dekart
GIS Visualisation for Amazon Athena and BigQuery
Stars: ✭ 131 (+92.65%)
Mutual labels:  mapbox
mapbox-ios-binding
Xamarin binding library for Mapbox iOS SDK
Stars: ✭ 15 (-77.94%)
Mutual labels:  mapbox
pwa-maps
A presentation on using OpenMapTiles and service workers to turn an interactive map into an offline-capable Progressive Web App.
Stars: ✭ 44 (-35.29%)
Mutual labels:  mapbox
Road Orientation Map
A visualization of road orientations on an interactive map
Stars: ✭ 254 (+273.53%)
Mutual labels:  mapbox
pattern-library
AXA CH UI component library. Please share, comment, create issues and work with us!
Stars: ✭ 103 (+51.47%)
Mutual labels:  lit-html
BarsAppAmplify
React Native Bars App: AWS Amplify, AWS AppSync, AWS Cognito, Google Places, Mapbox
Stars: ✭ 29 (-57.35%)
Mutual labels:  mapbox
Delaunator Cpp
A really fast C++ library for Delaunay triangulation of 2D points
Stars: ✭ 244 (+258.82%)
Mutual labels:  mapbox
rdeck
Deck.gl widget for R
Stars: ✭ 71 (+4.41%)
Mutual labels:  mapbox
Mapbox Plugins Android
Mapbox Android Plugins are a collection of libraries that extend our other SDKs, helping you design powerful mapping features while the plugins handle most of the heavy lifting.
Stars: ✭ 208 (+205.88%)
Mutual labels:  mapbox
effectiveweb.training
Repository for Effective Web Online Course / airhacks.io
Stars: ✭ 17 (-75%)
Mutual labels:  lit-html
ciclomapa
Beautiful, interactive & open bike maps of Brazilian cities. Powered by OpenStreetMap.
Stars: ✭ 56 (-17.65%)
Mutual labels:  mapbox
deck.gl-time-series-widget
A React Time Slider implementation for DECK.GL - (non)temporal data - by CPU filtering ⌛
Stars: ✭ 19 (-72.06%)
Mutual labels:  mapbox
pwa-lit-template
A template for building Progressive Web Applications using Lit and Vaadin Router.
Stars: ✭ 159 (+133.82%)
Mutual labels:  lit-html

Districtr

Build Status Netlify Status Greenkeeper badge

Districtr is the open-source web app that empowers all people to draw districting plans.

Project values

  • User experience. Participating in the redistricting process should be easy and enjoyable.
  • Openness and transparency. The entire project is open-source, with permissive licenses. All of the data used in the app is freely available and well-documented. We explicitly declare where we get our data, how we've processed it, and what we think of its quality.
  • Responsiveness to the community. Different places have different values and priorities when it comes to drawing districts. We aim to highlight the specific concerns of the community in each place that we include in the app.

See also the Districtr Guiding Principles prepared by participants in MGGG's 2019 Voting Rights Data Institute.

Contributing

If you're interested in contributing, thank you! Send an email to [email protected] and we'll find a way that you can get involved.

Development

Here's how to get started.

  1. Install GitHub for Desktop (or just plain git), Node.js, and a helpful text editor. We recommend VS Code.
  2. Clone the repository using GitHub for Desktop, or by running git clone https://github.com/districtr/districtr from the command line.
  3. Install the dependencies by running npm install.
  4. To start the development server and make sure everything's set up, first run npm run develop. If you go to http://localhost:3000, you should see Districtr running. The development server will recompile the app's assets, JavaScript, HTML, and CSS as you edit the source files.

Districtr is built on Mapbox GL JS and lit-html. We also use Sass for authoring CSS.

We use Prettier for formatting JS source code and ESLint for linting (encouraging good habits and consistent coding style).

Naming conventions

JavaScript

We use PascalCase for classes and components (e.g. UIStateStore or DataTable). By "component", we mean any function that returns a lit-html TemplateResult, or a class with a .render() method that does the same. We use camelCase for everything else (e.g. variables and functions).

For file naming, we use PascalCase for files that export one main class or component (e.g. Layer.js or LayerTab.js). We use kebab-case for other JavaScript modules (e.g. color-rules.js or routes.js).

CSS

We try to use BEM (block-element-modifier) naming conventions for CSS classes.

Testing

To run the unit test suite, run npm run test. We use the Mocha test framework and the Chai assertion library. We need to write more unit tests!

Reporting bugs and other issues

One of the best ways to contribute to Districtr (or any open source project) is to report any bugs, problems, or points of confusion that you find. You can file an issue in this GitHub repository.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].