Skip to content

podemos-info/census

Repository files navigation

Census

Build Coverage Maintainability

Census is an open source census management application. It is aimed to store people and payments data securely. It was created to be used within Decidim, but it could be integrated with any other application. Currently, it can't be used as a standalone application, since it has no UI for end user operations.

WARNING: Census is still under heavy development, and it's not ready for use in production yet.

Features

  • Person data management. Its based on procedures. Operations over a person data (registrations, modifications, verifications, cancellations) are represented by procedures that could be accepted or rejected.
  • Payments management. Each person can have payment methods and use them to create orders. Orders can be related to campaigns and payees and can be processed inline or in batches.
  • Administration tool. A web application allow admins to perform adminitrative tasks. Different users roles are available for different type of users. Issues are created when admin action is required.
  • Security. Sensible data is stored ciphered. Admin activity is tracked. Versions are stored for every data modification.
  • API access. Person procedures and payments can be created and queried using a JSON API.

Development

Census is written in Ruby on Rails, and its admin interface is based on Active Admin.

Setting up

  • Install Ruby (>=2.4) and postgreSQL (>=9.4)
  • Clone this repo
git clone https://github.com/podemos-info/census.git
  • Install the project dependencies
cd census
bundle
  • Create a database user with permissions and store its credentials in a new .env file, in the current directory. Check the configurations guide to know all that can be configured in the application.
DATABASE_USERNAME=census
DATABASE_PASSWORD=census
  • Create the database and seed it with test data
bundle exec rails db:setup
bundle exec rails db:seed
  • Start the development server
bundle exec rails server
  • Access to the administration tool. Different users are created for the different admin roles:
  • System user: system0 (password system)
  • Data admin user: data0 (password data)
  • Data user: data_help0 (password data_help)
  • Payments user: finances0 (password finances)

Documentation