/pequod-plus

An improved edition of pequod-cljs, the participatory planning procedure prototype (in Clojure and Clojurescript)

Primary LanguageClojureGNU General Public License v3.0GPL-3.0

pequod-plus

An improved edition of pequod-cljs, the participatory planning procedure prototype (in Clojure and Clojurescript).

To learn more about the model of a participatory economy, visit participatoryeconomy.org.

lein new reagent pequod-plus +test +figwheel +devcards +cider

TODO:
+ Build cljc tests
+ Build middleware logic (Clojurey!)

Quickstart

These are the instructions

  1. Generate worker councils and consumer councils:
lein run -m pequod-plus.gen [NAME-SPACE-TO-USE]

For example:

time lein run -m pequod-plus.gen ppex001 > ppex001.cljs
  1. Move the councils into src/cljs/pequod_plus
mv ppex001.cljs src/cljs/pequod_plus/ppex001.cljs
  1. Run lein figwheel, as listed below.

Development mode

To start the Figwheel compiler, navigate to the project folder and run the following command in the terminal:

lein figwheel

To start the DevCards build, run

lein figwheel devcards

Figwheel will automatically push cljs changes to the browser. The server will be available at http://localhost:3449 once Figwheel starts up. To view your devcards, type (switch-to-build devcards) at the Figwheel REPL and navigate to http://localhost:3449/cards.

Figwheel also starts nREPL using the value of the :nrepl-port in the :figwheel config found in project.clj. By default the port is set to 7002.

The figwheel server can have unexpected behaviors in some situations such as when using websockets. In this case it's recommended to run a standalone instance of a web server as follows:

lein do clean, run

The application will now be available at http://localhost:3000.

Optional development tools

Start the browser REPL:

$ lein repl

The Jetty server can be started by running:

(start-server)

and stopped by running:

(stop-server)

Running the tests

To run cljs.test tests using headless chrome install karma and its plugins:

npm install -g karma-cli
npm install karma karma-cljs-test karma-chrome-launcher --save-dev
lein doo chrome-headless test once

For other environments please check doo's documentation.

For installation instructions of PhantomJS, please see this.

Building for release

lein do clean, uberjar

Deploying to Heroku

Make sure you have Git and Heroku toolbelt installed, then simply follow the steps below.

Optionally, test that your application runs locally with foreman by running.

foreman start

Now, you can initialize your git repo and commit your application.

git init
git add .
git commit -m "init"

create your app on Heroku

heroku create

optionally, create a database for the application

heroku addons:add heroku-postgresql

The connection settings can be found at your Heroku dashboard under the add-ons for the app.

deploy the application

git push heroku master

Your application should now be deployed to Heroku! For further instructions see the official documentation.