grassrootza / grassroot-platform

Modular application to make it easier and faster to organize and mobilize people, through a meeting organizer, vote taker, action logger and group manager.
BSD 3-Clause "New" or "Revised" License
12 stars 9 forks source link

GRASSROOT PLATFORM

Application to make it faster, cheaper and easier to persistently organize and mobilize people in low-income communities.

The platform is built with the Spring framework and launches through Spring Boot. To run it on a local environment, use the profile "localpg". It requires some local set up and configuration, namely:

Local Deployment using Docker

In linux you might have to go through this https://techoverflow.net/2017/03/01/solving-docker-permission-denied-while-trying-to-connect-to-the-docker-daemon-socket/

If you already have it installed, make sure you can run it from the terminal by typing:

docker --version docker-compose --version

TESTED VERSIONS Docker version 17.09.0-ce, build afdb6d4 docker-compose version 1.16.1, build 6d1ac21

COMMAND OPTIONS

-b

-d


** You can check the application logs at DIR/log/grassroot-app.log

** Note that the initial deployment will take between 10 - 20 min to download all the libraries dependencies. Subsequent deployments/buildings should take around 5 min as it just build and boot the jar files.

** If you are having issues with running your Docker project, some of the following commands may help, use with care.

docker system prune #Remove all stopped containers, unused volumes and unused images docker kill $(docker ps -q); #Stop all the containers docker rm $(docker ps -a -q); #Remove all containers docker rmi $(docker images -q -a) #Remove all images

** We have a "always" restart policy set for the containers as long as the docker engine is running. So, its very likely that when you restart your computer and the docker engine starts as a daemon, the containers will also restart. To avoid that, make sure you remove the docker to start as a daemon on reboot.

AWS Deployment using Beanstalk and Docker

We currently use a combination of AWS Services, Circleci and Papertrail (Logging) to deploy our application to the cloud.

EXTRA NOTES

1 -- A configuration file, ~/grassroot/grassroot-integration.properties. This should set the following properties:

2 -- A configuration file, ~/grassroot/grassroot-payments.properties, with details of the payments provider, only necessary if billing and payments are switched on via grassroot.accounts.active, grassroot.billing.enabled and grassroot.payments.enabled, in application-localpg.properties.