diff --git a/README b/README index d74b9ca..df71692 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -Setting up an election: +# Setting up an election 0. vote/include/election-sql.php expects a secret config file that exists only on the server and is included as PHP code. It's hard coded currently @@ -6,64 +6,63 @@ Setting up an election: The file should look something like this: - + 1. When I deploy, I create an account for the election, as the mysql root user: mysql -u root -p Password: Then Run these commands at the mysql> prompt: - CREATE USER 'someusername' identified by 'somepassword'; - CREATE DATABASE somedbname; + CREATE USER 'someusername' identified by 'somepassword'; + CREATE DATABASE somedbname; Then, exit, and at the main command line run: - msyql -u root -p -D somedbname < ..../vote/include/schema.sql + msyql -u root -p -D somedbname < ..../vote/include/schema.sql Then run this again: - mysql -u root -p - Password: + mysql -u root -p + Password: and at the mysql command line, run these grant commands: - GRANT SELECT on somedb.elections TO someuser@localhost; - GRANT SELECT on somedb.election_choices TO someuser@localhost; - + GRANT SELECT on somedb.elections TO someuser@localhost; + GRANT SELECT on somedb.election_choices TO someuser@localhost; + GRANT SELECT,DELETE on somedb.election_tmp_tokens TO someuser@localhost; + GRANT SELECT on somedb.election_voters TO someuser@localhost; + GRANT SELECT,INSERT on somedb.election_anon_tokens TO someuser@localhost; + GRANT INSERT on somedb.election_votes TO someuser@localhost; 2. Create an election, with something like this: - mysql -u root -D somedb -p + mysql -u root -D somedb -p - SET NAMES 'utf8'; - INSERT t INTO elections (type, name, voting_start, voting_end, choices_nb, question) VALUES ("elections", "2011 Spring Election", "2011-05-29 00:00:00", "2011-06-12 23:59:59", "7", "Which candidates would you like to see Elected?"); -set @el_id = @@IDENTITY; -INSERT INTO election_choices (election_id, choice) - VALUES - (@el_id, 'Candidate 1'), - (@el_id, 'Candidate 2'), - (@el_id, 'Candidate 3'), - (@el_id, 'Candidate 4'); -INSERT INTO election_voters (election_id, email_address) - VALUES - (@el_id, 'voter1@example.org'), - (@el_id, 'voter2@example.org'), - (@el_id, 'voter3@example.com'), - (@el_id, 'voter4@example.net'); + SET NAMES 'utf8'; + INSERT t INTO elections (type, name, voting_start, voting_end, choices_nb, question) VALUES ("elections", "2011 Spring Election", "2011-05-29 00:00:00", "2011-06-12 23:59:59", "7", "Which candidates would you like to see Elected?"); + set @el_id = @@IDENTITY; + INSERT INTO election_choices (election_id, choice) VALUES + (@el_id, 'Candidate 1'), + (@el_id, 'Candidate 2'), + (@el_id, 'Candidate 3'), + (@el_id, 'Candidate 4'); + INSERT INTO election_voters (election_id, email_address) VALUES + (@el_id, 'voter1@example.org'), + (@el_id, 'voter2@example.org'), + (@el_id, 'voter3@example.com'), + (@el_id, 'voter4@example.net'); - INSERT INTO election_tmp_tokens (election_id, election_voter_id, tmp_token) - SELECT @el_id, id, SUBSTRING(MD5(RAND()) FROM 1 FOR 24) AS tmp_token - FROM election_voters where election_id = @el_id; + INSERT INTO election_tmp_tokens (election_id, election_voter_id, tmp_token) + SELECT @el_id, id, SUBSTRING(MD5(RAND()) FROM 1 FOR 24) AS tmp_token + FROM election_voters where election_id = @el_id; - select @el_id; + select @el_id; That number you see at the end is this election's id. The URL you'll give out is thus something like: - - http://example.org/vote?election_id=THAT_NUMBER - + http://example.org/vote?election_id=THAT_NUMBER