Web-app to support canvassers in the forthcoming independence referendum in Scotland
Find a file
2016-12-28 21:28:09 +00:00
doc/specification Small additions to the scaling document. 2016-10-15 09:49:25 +01:00
dummies Starting to get the project set up. Nothing is even nearly complete yet. 2016-10-13 14:25:54 +01:00
env Starting to get the project set up. Nothing is even nearly complete yet. 2016-10-13 14:25:54 +01:00
resources Added a lot of a dummy website, to guide actual building of the app. 2016-12-28 21:28:09 +00:00
src Added a lot of a dummy website, to guide actual building of the app. 2016-12-28 21:28:09 +00:00
test Starting to get the project set up. Nothing is even nearly complete yet. 2016-10-13 14:25:54 +01:00
Capstanfile Starting to get the project set up. Nothing is even nearly complete yet. 2016-10-13 14:25:54 +01:00
Dockerfile Starting to get the project set up. Nothing is even nearly complete yet. 2016-10-13 14:25:54 +01:00
externs.js Still nothing working yet. 2016-10-19 13:26:55 +01:00
LICENSE Starting to get the project set up. Nothing is even nearly complete yet. 2016-10-13 14:25:54 +01:00
Procfile Starting to get the project set up. Nothing is even nearly complete yet. 2016-10-13 14:25:54 +01:00
project.clj Basically just updated libraries. 2016-12-27 22:04:11 +00:00
README.md Linking in the user-oriented specification 2016-10-14 12:10:08 +01:00

youyesyet

A web-app intended to be used by canvassers campaigning for a 'Yes' vote in the second independence referendum.

The web-app will be delivered to canvassers out knocking doors primarily through an HTML5/React single-page app designed to work on a mobile phone; it's possible that someone else may do an Android of iPhone native app to address the same back end but at present I have no plans for this.

There must also be an administrative interface through which privileged users can set the system up and authorise canvassers, and a 'followup' interface through which issue-expert specialist canvassers can address particular electors' queries.

generated using Luminus version "2.9.11.05"

Status

Nothing works yet. This is very early development code, a long way pre-alpha.

What is it supposed to do?

To understand what I'm aiming for, read this essay. Design documentation, such as there is of it yet, is in the dummy sub-directory. Also look at src/clj/youyesyet/db/schema.clj.

Prerequisites

You will need Leiningen 2.0 or above installed. The database required must be Postgres.

You'll also need to create your own local copy of profiles.clj, which should contain something like:

;; WARNING
;; The profiles.clj file is used for local environment variables, such as database credentials.
;; This file is listed in .gitignore and will be excluded from version control by Git.

{:profiles/dev  {:env {:database-url "jdbc:postgresql://127.0.0.1/youyesyet_dev?user=username&password=thisisnotsecure"}}
 :profiles/test {:env {:database-url "jdbc:postgresql://127.0.0.1/youyesyet_test?user=username&password=thisisnotsecure"}}}

Where username is the username required to access the database, and thisisnotsecure is the password which authenticates that username.

Further Reading

If you're thinking of joining in development on this I'd strongly recommend you get hold of a copy of Dmitry Sotnikov's Web Development with Clojure, Second Edition.

You should also read the User-Oriented Specification and any other documentation which appears under the doc/specification hierarchy.

Running

To start a web server for the application, run:

lein run

If you're wanting to work on cljs development, you need two terminal sessions. In one run

lein run

as above; in the other, run

lein figwheel

License

Copyright © 2016 Simon Brooke for the Radical Independence Campaign.

Licensed under the GNU General Public License, version 2.0 or (at your option) any later version.

NOTE THAT files which are directly created by the Luminus template do not currently have a GPL header at the top; files which are new in this project or which have been substantially modified for this project do have a GPL header at the top.