Skip to content
/ sapl Public
forked from interlegis/sapl

Sistema de Apoio ao Processo Legislativo

License

Notifications You must be signed in to change notification settings

Danpeli/sapl

 
 

Repository files navigation

'Stories in Ready'

SAPL - Legislative Process Support System

This page brings together useful information on the current development of SAPL - Sistema de Apoio ao Processo Legislativo (Legislative Process Support System).

That means all information presented here applies only to version 3.1 and greater.

For more information about the the project as a whole and the current working version of the system (2.5) please visit the project page at Interlegis wiki.

Development Environment Installation

  • Install the following system dependencies (command bellow for Ubuntu):

    sudo apt-get install git nginx python3-dev libpq-dev graphviz-dev graphviz \
    pkg-config postgresql postgresql-contrib pgadmin3 python-psycopg2 nodejs npm \
    
    sudo ln -s /usr/bin/nodejs /usr/bin/node
    
    sudo npm install -g bower
  • Setup git, following the instructions in https://help.github.com/articles/set-up-git.
  • Fork and clone this repository, following the instructions in https://help.github.com/articles/fork-a-repo.
  • If you don't have pip installed then execute the following instructions:

    sudo apt-get install python-pip python-dev build-essential sudo pip install --upgrade pip sudo pip install --upgrade virtualenv

  • Create a virtualenv using python 3 for the project and activate it. If you use virtualenvwrapper:

    mkvirtualenv -p /usr/bin/python3 sapl
  • Install python dependencies (run on the project root):

    pip install -r requirements/dev-requirements.txt
  • Install bower dependencies (run on the project root):

    ./manage.py bower install
  • Install PostgreSQL if you haven't already.
  • Create a sapl role with:
    • Password sapl
    • The privilege can create databases
    • A big expiration date (or infinite, using eg ALTER ROLE SAPL VALID UNTIL 'infinity';)
  • Create a database sapl with owner sapl.
  • Either run ./manage.py migrate (for an empty database) or restore a database dump.
  • In sapl/sapl directory create one file called .env. Write the following attributes in it:
    • DATABASE_URL = postgresql://USER:PASSWORD@HOST:PORT/NAME
    • SECRET_KEY = Generate some key and paste here
    • DEBUG = [True/False]
    • EMAIL_USE_TLS = [True/False]
    • EMAIL_PORT = [Set this parameter]
    • EMAIL_HOST = [Set this parameter]
    • EMAIL_HOST_USER = [Set this parameter]
    • EMAIL_HOST_PASSWORD = [Set this parameter]

Generate your secret key here

Instructions for Translators

We use Transifex to manage the project's translations. If you want to contribute, please setup an account there and request to join us at the Transifex SAPL Page. Once your join request is accepted, you can start to translate.

To integrate the last translations on a working instance follow these steps:

Warning

The Transifex Client stores passwords in plain text on the file ~/.transifexrc.

We personally prefer to log into Transifex website with social network credentials and change the password used for the client frequently.

  • Pull translations or push translations using the client. Pull only on a clean repo, i.e. commit your changes before pulling new translations.
  • Run the program with .manage.py runserver and check the system to see the translations into effect.

Note

The browser language preference is used to choose the translations to display.

General implementation guidelines

Best practices

Attention

The database user sapl needs to have the permission create database in postgres for the tests to complete successfully

  • If you're not part of the core team, fork the repo and submit pull requests. All are welcome to contribute. Please make a separate pull request for each bugfix/new feature.
  • New features are subject to approval, since they may impact a lot of people. We suggest you open an issue to discuss new features. That can be made in Portuguese, as well as in English.

Tests

  • Write tests for all the functionality you implement.
  • Keep the test coverage near 100%.
  • To run all tests activate your virtualenv and issue these commands at the root of the repository:

    py.test
  • To run the tests with coverage issue the command:

    py.test --cov . --cov-report term --cov-report html && firefox htmlcov/index.html
  • The first time you run the tests after a migration (./manage.py migrate) use the db recreation option. This needs to be done only once:

    py.test --create-db

Issues

  • Open all issues about the current development version (3.1) at the Github Issue Tracker.
  • You can file issues in either Portuguese or English (at least for the time being).

About

Sistema de Apoio ao Processo Legislativo

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 61.3%
  • Python 36.7%
  • Other 2.0%