Skip to content

tractaylor/OpenCiviWiki

 
 

Repository files navigation

ComVer Stories in Ready

Welcome to Civiwiki!

We are an open source, non-profit community, working to develop a democratic engagement web system.

Why CiviWiki?

  • Democratically Contributed Media. As the name CiviWiki implies, our core content will be contributed by volunteers on our Wiki. Our topic format is modular. The structure both allows a community of volunteers to collaborate on a single political issue, and reserves space for dissenting opinions.
  • Personalized Policy Feed. CiviWiki intelligently personalizes users' feed in two meaningful ways. First, the issues promoted to users' feed will be personalized to the user's expressed interests, and the timeliness of the issue. Second, the structure of the issue topics break policy positions into bite-sized contentions we call Civies. Each Civi is logically related to the rest of the topic. Based on the user's support, opposition, or neutrality to each Civi, CiviWiki promotes different relevant content.
  • Citizen/Representative Engagement. CiviWiki's core goal is to engage citizens and their representatives, with the goal of making government more accountable. CiviWiki will achieves this goal in two ways. First, CiviWiki will organize user's policy profile and compare it to every political candidate in the user's district. This quick, detailed, comparison will help users make informed votes, and we believe increased voter confidence will increase voter turnout. Second, CiviWiki will collect anonymized user data and forward district level statistics to representatives. With a critical mass of users, we believe timely district level polling data will influence representatives' votes.

For Developers.

NOTE: THIS README IS OUTDATED AND NEEDS TO BE UPDATED ACCORDINGLY

Setup: Setup requires certain environment variables on your machine to be set in order for the application to access secret values, these values are listed below.

  • Clone or Fork our repository.
  • Create a virtual environment.
  • pip install -r requirements.txt.
  • Ensure you have a database, and a user / password with all privileges, the app will look for this connection using credentials stored in enviornment variables, you can get more details on this below.
  • It is required when running python manage.py <function> that you explicitly state what settings module you are using.
    • Use --settings=civiwiki.settings.local to run the application with your local database credentials.
    • Use --settings=civiwiki.settings.dev to run the application on a development server you have hosted.
    • Use --settings=civiwiki.settings.production to run the application on a production server. WARNING: Debug is False.

Development

Compatible Versioning

We use Compatibile Versioning in this project.

Given a version number MAJOR.MINOR, increment the:

MAJOR version when you make backwards-incompatible updates of any kind MINOR version when you make 100% backwards-compatible updates Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR format.

How is this different to SemVer?

Compatible Versioning ("ComVer") is SemVer where every PATCH number is 0 (zero). This way, ComVer is backwards compatible with SemVer.

A ComVer release from 3.6 to 3.7 is just a SemVer release from 3.6.0 to 3.7.0. In other words, ComVer is safe to adopt since it is basically SemVer without ever issuing PATCH releases.

Coding Conventions

We strive to follow Django Coding Conventions. See https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/coding-style/

Development environment

Environment Variables

Below is a list of environment variables expected to be present when you run your server. The application does not manage how you keep track of these variables ( a recommended solution ) and only checks for variables that are needed at the time. For example, production database environment variables do not need to be present if developing locally.

  • DJANGO_SECRET_KEY: This value must be in the list of environment variables. Information on the Django Secret Key can be found here, information on generating a key can be found in this StackOverflow post.
  • SUNLIGHT_API_KEY: This value must be in the list of environment variables. Information on retrieving a Sunlight API Key can be found here.
  • CIVIWIKI_LOCAL_NAME: name of database to be used when searching your localhost databases.
  • CIVIWIKI_LOCAL_USERNAME: username the application should use to access your localhost database.
  • CIVWIKI_LOCAL_PASSWORD: password the user needs to log into your localhost database.
  • CIVIWIKI_DEV_HOST: address where development database is hosted.
  • CIVIWIKI_DEV_PORT: port number to access database to (5432 if unsure).
  • CIVIWIKI_DEV_NAME: name of database to be used when accessing databases on your server.
  • CIVIWIKI_DEV_ENGINE: set to django.db.backends.postgresql_psycopg2.
  • CIVIWKIKI_DEV_USERNAME: username that application should use to access your localhost database.
  • CIVIWIKI_DEV_PASSWORD: password the user needs to log into your localhost database.

Production settings are configured to be run on an Amazon AWS Instance connecting to their RDS services.

Contribute

Contact us on Twitter to join the team.

I want to keep track of how Civiwiki is doing.

Contact info

About

Building a Better Democracy for the Internet Age

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 35.0%
  • Python 26.9%
  • HTML 26.1%
  • CSS 12.0%