Skip to content

data-for-change/anyway

Repository files navigation

ANYWAY Build Status

Welcome to ANYWAY!

ANYWAY is a volunteer based project acting under the umbrella of the Data For Change Organization.

Feel free to contribute to the project. To report bugs and feature requests, please open an issue on GitHub. See Code Directory Tree Structure.

Note: This is ANYWAY BackEnd repository. If you're a FrontEnd developer see our FE repository here.

About

Our Goal

At ANYWAY we aim to reduce road accidents by:

  1. Raising public awareness of existing road hazards, thereby leading towards safer road behaviour.
  2. Collaborating with authorities in order to assist and drive them to find solutions in light of Vision Zero. Such solutions will improve road infrastructure and behavioural problems in attempt to prevent road fatalities.

Take a look at our facebook page. See also our Android app and iOS app on GitHub.

ANYWAY’s Interactive Map:

ANYWAY presents locations over an interactive map as well as information regarding traffic accidents including casualties, information originating from the Central Bureau of Statistics (הלשכה המרכזית לסטטיסטיקה) and traffic violations as reported by road vigilantes (שומרי הדרך). The website allows visitors to discuss possible solutions in their residential or drive zone with the goal of coming up with field solutions by both drivers and pedestrians, on both local and national scope.

The map is also available at oway.org.il.

ANYWAY Schools Report

At the beginning of one of the school years we created a report of pedestrian accidents around schools - this is one simple example of insights that can be extracted from the data that we have.

ANYWAY’s Infographics Generator - Our Next Challenge

ANYWAY’s next challenge is to form an automatic generator of infographics to empower and serve journalists, bloggers, public opinion leaders, community leaders etc. in the era of data journalism. The generated infographics will enhance reporting and news writing with the use of statistics. Each infographic will be created for a real-time road accident related news flash and will provide a deeper insight into the story based on historical data. This, we believe, will increase both the quantity and quality of articles dealing with road accidents, and will result in raising public awareness and creating pressure on decision makers to initiate infrastructure improvements in light of Vision Zero. Relevant github repositories:

  • Infographics FrontEnd
  • ANYWAY ETL Flows Note: ANYWAY ETL Flows uses current repository code - to update ANYWAY ETL with most updated anyway code, the change needs to be introduced in a release of anyway-etl.

Data For Change

Data For Change (“NATOON LESHINUI” - in hebrew ״נתון לשינוי״) is a volunteer-based, non-profit organization, promoting transparency and opening data from governmental and public organizations. Together with our volunteers community, we are developing technological tools for accessibility and analysis of data, enhancing practical use of data for data-driven decision-making, providing decision-makers with accessible information and creating public discourse. Our volunteers are made of talented programmers, data analysts, data scientists, product managers and designers who seek to use their skills in order to create a positive data driven change in the world.

Vision Zero

Read about Vision Zero: Hebrew, English

The Israel National Road Safety Authority (הרשות הלאומית לבטיחות בדרכים)

Take a look at the daily reports, 2018 yearly report (Hebrew)

Contributing

Getting the code

NOTE: If you are setting up anyway on Windows using WSL - PLEASE MAKE SURE TO COMPLETE THE FOLLOWING STEPS FROM YOUR WSL TERMINAL!!!

  1. Fork this repository on GitHub
  2. git clone https://github.com/*you*/anyway
  3. cd anyway
  4. Add the main repository as your upstream remote: git remote add upstream https://github.com/data-for-change/anyway
  5. Note that at this stage your workstation isn't ready yet, Please see DOCKER instructions for feather instructions.
  • Get updates whenever you start working: git pull upstream dev
  • Push to your fork when you've committed your changes and tested them: git push. Now make sure CI tests are passing (see Actions tab) and make a pull request from your fork on GitHub

WSL2

In order to use WSL2, please follow these official Docker instructions. Note that although you run Docker from a Linux distribution, you are instructed to install the Docker Desktop app, and specify usage of WSL2

Docker

We are using DOCKER. See DOCKER
See also an introductory lecture by Assaf Dayan.

Code formatting

Black

To format the code using black: black anyway/**/*.py -l 100 anyway should be executed from the root directory. Alternatively, one can execute docker run -v $(pwd):/code jbbarth/black anyway -l 100 to run the command with docker.

Testing

Pylint

To run pylint tests: pylint -j $(nproc) anyway tests && pytest -m "not browser" ./tests

If you also wish to run the real browser tests, replace-m "not browser" with --driver Chrome or specify the browser of your choice. To learn more, read about pytest-selenium.

Altering the database schema

When creating a patch that alters the database schema, you should use generate the appropriate Alembic revision by running:

alembic revision --autogenerate -m "Description of the change"

Make sure to commit your revision together with the code.

Translation and Localization

See TRANSLATE