Coder Social home page Coder Social logo

corruption_tracker's Introduction

Corruption tracker

Corruption tracker lets you make cases of corruption and professionally unfit of civil servant public and as result track the level of it in public institutions

Mobile app that works with API https://github.com/konchunas/mobilepdrk

Demo not available for now

FB - https://www.facebook.com/activecorruptiontracking/

Prerequisites

Python 3.5
PostgreSQL + PostGIS
Memcached

Quickstart on Ubuntu 16.04

Install dependencies and project

sudo apt-get install git supervisor nginx python3-dev python3-venv libpq-dev postgresql postgresql-contrib postgis memcached

python3.5 -m venv ctracker
. ctracker/bin/activate

git clone [email protected]:autogestion/corruption_tracker.git && cd corruption_tracker
pip install -r requirements.txt

Create local settings file

cp corruption_tracker/local_settings.py.sample  corruption_tracker/local_settings.py

Create the tables

PostgreSQL instructions in db_creation.txt

python manage.py migrate
python manage.py createsuperuser
python manage.py initiate_db

Start the server

python manage.py runserver 0.0.0.0:8000

Submit a bug

We would like to hear about any bugs or odd behavior that you uncover. Use the issue tracker to open a new item. When describing the issue, we recommend that you discuss the following items:

  • Describe the bug
  • Describe the steps you did to discover the bug
  • What was the expected outcome of the above steps?
  • Please provide screenshots, if applicable

corruption_tracker's People

Contributors

autogestion avatar dovbo avatar mkrv avatar vegasq avatar webgrandmo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

corruption_tracker's Issues

Statistical data representation and export

I think map is unnecessary for those who will work with big collected data arrays on web. So we need make scrollable (and hideable?) part with e.g. last 100 claims on the main page and possiblity to get all the data in the table on the separate page (without map). Export of selected data to exel/xml file also will help analyst.

Review process

Way of development should be unifyed and scalable as for 1-3 developers, and also as for 10-20.

  • master branch should contain only pull requests merges, and only small group of people should have acces there (or better one, lets call this person Linus).
  • pull requests should pass review process, so far using github features, but if we think that this project wount die in next few mothes, we should switch to gerrit (f.e. https://review.gerrithub.io)

This way we will get few goals:

  • No mess in repo
  • No unknown / unchecked code

Polygon vs Organization issue

@Dovbo offered concept named "centroids", which implies polygon-based organizations, which could be shown in pop-up by clicking on polygon. Organization's claims aggregated number will be shown inside element in center of polygon, with coordinates set in initial geojson in properties of polygon. This concept looks fine, especially in cases, when building have dozens of organizations (like Derzhprom), but creates a bottle neck, so that we can't proceed before polygons are drawn.

Another way, is to use polygon as decoration, and organization as independent entity. Organization would have its own coordinates and would be settled on map as point. It could be linked to polygon or layer, to have ability to be shown when user clicks on district and zoom in some area. In this case to play with organizations we would have just to set some points on the map, and after polygons would be ready, place them as backing.

Also, we could implement both concepts, by creating subclass of Organization, with coordinates. If organizations related to polygon are instances of base class, polygon will agregate their claims number, and will show it using centroid coordinates. Оtherwise, polygon do nothing, just is located on map, and claims is shown on organizations points.

Connecting social account to a local account

Flow is:

  1. User can sign up only using local account (this provide anonymity by default, both in web interface and in mobile app)
  2. Implenent a button, by clicking on which logged user can connect FB account to local
  3. If user made step 2, further sign in would be made using FB account

Add to Claim type of violation

There could be predefined lists of violation types, grouped by organization types. For example the most common сlaims on schools or on Passport Offices. Such list could be added as select input (dropdown) to claim adding form, after user chose organization. Idea is linked to elections issue #21 and taken from Opora violation map adding form http://map.oporaua.org/dani-pro-porushennya
We could copy types from there, link them to organization type polling station and offer to choose one of them to user

Way to prevent abuse

There is no way to prevent user from sending ofencive and useless messages. Ways to prevent:

  • Approve step. Every new claim should be checked by moderator before apears on map.
  • Banhammer. Accounts/IPs with spam messages should be banned from site (temporary or permanently).

What do you think guys?

Use ctracker to track violations on local elections

There is an idea to create fork of ctracker (or branch), make a little changes to appearance and replace polygons of state institutions to polygons of polling station. Democratic Alliance party is ready to support this issue. We can make a good deed and real crash test for ctracker

GeoJSON file or DB

A summary of the previous series:

There was an idea that service will consists of 2 parts - mobile app that don't need live internet connection and web-platform. First just gets claims, second shows them. GeoJSON was conceived as mediator beetwen them, it would contain a polygon id, by which web-platform would recognize which polygon was claimed. We could update GeoJSON, put it at server and in mobile app update and they would stay synced.

Main idea was to store in GeoJSON information which must be same in mobile app and web-platform. All ather atributes had to be stored in server db

If there are real benefits of kicking GeoJSON off the server, we have to know how common data would be stored in mobile app and how they would stay synchronized with server. We could not change something on server before it comes to mobile app which is offline

Or we should change the whole vision of service

Angular JS on Frontend

We expect that on frontend there would be a lot of data, thousands of claims should be displayed, so there is an idea to use Angular.js instead of jQuery, because it works better with huge data.

Also, web-api created to work with angular client could be used by mobile client.

E-mail auto sending.

Organize e-mail letters auto sending to responsible goverment or municipal institution after verified claim incoming. These e-mails will be send to certain departments we can encrypt in polygons' ID in GEOjson.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.