Skip to content
This repository has been archived by the owner on Jan 26, 2024. It is now read-only.
/ polis Public archive
forked from compdemocracy/polis

🌌 Open Source AI for large scale open ended feedback

License

Notifications You must be signed in to change notification settings

g0v-it/polis

 
 

Repository files navigation

Polis

This repo is a fork for Pol.is project made by the Italian G0V team for Copenicani association. pol.is an AI powered sentiment gathering platform. More organic than surveys, less effort than focus groups.

The objectives of this effort is to improve the polis code in order to:

  • allowing safe provision of the polis service in a controlled European datacenter;
  • making it fully GDPR compliant according Copernicani terms of service and privacy policy;
  • removing (or making optional) any dependency to OTT services (FaceBook, Google, etc) avoiding any not explicit user profiling by external entities;
  • enabling user authentication with an LDAP service;
  • using a Zero Knowledge Protocol to allow safe anonymous conversation (thanks to Amlet);
  • using SSI to allow safe conversation autenticating with an official eIDAS2 compliant digital identity (thanks to Amlet);
  • make clear the responsibility of service provider and software developers;
  • improve documentation

The g0v-it team aims to give back all changes to code made in this project in the main Polis repository.

🚧 Disclaimer

The installation instructions below are currently focused on setting up a development environment. These instructions should NOT be considered sufficient for production deployment without additional setup. We do NOT make guarantees of easy setup or management, push-button deployment, security, technical support, future migration paths, data integrity, etc.

Having said this, some of the core pieces of infrastructure described below are potentially useful in a production context, if used correctly. In particular, each subdirectory of the project has its own Dockerfile which could potentially be used as part of a deploy strategy. The docker-compose.yml is specifically focused on development environment flow.

If you'd like to set up your own deployment of Polis, we encourage your to reach out to us for support. We look forward to working together 🎉

🙋🏾‍♀️ Get Involved

If you're interested in contributing to the codebase, please visit our issue tracker . Please also see:

💻 Development

If you have a small machine or little hard drive space, you may want to consider running the below with Docker-Machine (DigitalOcean with 2GB memory should be sufficient)

Running with docker-compose:

Before running docker-compose up for the first time:

After cloning, navigate via command line to the root of this repository.

Next, either do a pull (faster):

docker-compose pull

If you get a permission error, try running sudo docker-compose pull, and sudo will be necessary for all other commands as well. To avoid having to run sudo in the future, you can follow setup instruction here: https://docs.docker.com/engine/install/linux-postinstall/

or do a build (to utilize recent or local changes):

docker-compose up --build

once you've either pulled or built, you can run the following when you want to run the project:

docker-compose up

To force a full re-build with no cache from previous builds: docker-compose build --parallel --no-cache

You can end the process using Ctrl+C

Running as a background process

If you would like to run docker compose as a background process, run the up commands with the --detach flag, e.g.,:

docker-compose up --detach

And to stop: docker-compose down

check your ip (only necessary on docker-machine):

docker-machine ip
>>> 123.45.67.89

Visit your instance at: http://123.45.67.89.xip.io/

Or visit a native docker instance at http://localhost:80/

Sign up at /createuser path. You'll be logged in right away; no email validation required!

What features still need work?

Note: Due to past file re-organizations, you may find the following git configuration helpful for looking at history:

git config --local include.path ../.gitconfig

🔍 Testing

We use Cypress for automated, end-to-end browser testing! (See badge above.)

Please see e2e/README.md.

🚀 Deployment

Please see docs/deployment.md

©️ License

AGPLv3 with additional permission under section 7

About

🌌 Open Source AI for large scale open ended feedback

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 74.3%
  • Clojure 12.6%
  • Handlebars 4.5%
  • SCSS 3.9%
  • PLpgSQL 1.7%
  • HTML 1.3%
  • Other 1.7%