FAQ

Can I add custom links and/or pages to Advokit?

Yes you can. See this forum topic: "A mechanism for adding custom pages"

Can I have overlapping campaigns in AdvoKit

As you probably have noticed, you can attach voter filters to a team, so that activists on that team, or on teams below that team, can only add voters to their contact lists who satisfy that filter. Voter filters can also be attached to operations. What's the difference? When a voter is on a contact list on any team under a given operation, that voter is not available to any other contact lists under that operation. However if you have more than one operation, then you can have each voter checked out once under each operation. So you could have a supporter identification operation and a fundraising operation, and they could be contacting the same pool of voters.

You can also attach voter filters to questions on a questionnaire (questionnaire sections, actually). You could have a question "do you support X for mayor?", and set the filter to have that question appear on the contact sheet for voters who live in the city. You could have a question "do you support Y for city council from Ward 3?", and set the filter so that only voters eligible to vote in Ward 3 will be asked that question. This allows one organization to handle up and down-ballot races, for example.

So the organizational slicing and dicing can be accomplished in two ways. The first is about how you divide voter contacts amongst your activists. The second is about what you actually do when you contact a voter.

Something that is confusing in AdvoKit is the term "campaign". The original idea was that one could run multiple independent campaigns, each with its own voter file, in a single instance of AdvoKit. However, this was never implemented and I would not recommend creating more than one campaign within an instance of AdvoKit.

Tasks handling (e.g. lawn sign requests, candidate visit requests) is not constrained by the organizational structure you have set up in AdvoKit. Anywhere you create a job that has task handling responsibilities for a particular type of task will see tasks of that type in its task queue. For ease of keeping track, I'd recommend putting task-handler jobs in a separate part of the organizational structure (e.g. their own operation), but they can be anywhere.

Can I submit and track bug reports?

Please do!!!

We have a Bugzilla issue tracker here.

To log bugs or enhancement requests you will need to create an account for yourself.

Does AdvoKit have problems on PHP5?

No. Many people, developers and users, have experienced no problems either installing or running AdvoKit under PHP5. Problems can usually be tracked down to either file and directory permission issues (many PHP setups will not execute a php file that has public write permission - 777, 755 is usually the correct chmod setting), or to PHP timeout time being too short for some operations (usually encountered on install).

How do you upgrade AdvoKit and keep your existing data?

The AdvoKit installer allows you to replace the application files without losing your existing data. WARNING: This could result in errors if the upgraded AdvoKit application is incompatible with older data. To be safe, you should backup the existing AdvoKit installation, both the files at the webroot, and the main AdvoKit files (which should be located outside of the webroot). It is also a good idea to backup your existing database.

Upgrading an installation can be done at any time. You do not need to take the site offline. Currently logged in users will simply notice that the next time they redisplay or perform an action, AdvoKit will be updated to the new version.

Note that if you have made changes to the application itself, such as to the advokit.css stylesheet, or changed the Smarty templates that are used to display screens, those changes will be lost in this update unless you go through the advokit-installer package and reapply your changes to the appropriate files before running the installation.

The procedure for upgrading an existing installation is very much like that for a new installation. It just skips over the database creation step. Here's a step-by-step description:

  1. Extract the installer under your webroot (i.e. accessible from a web browser).
  2. Run the installer from your browser (http://<mydomain>/<mywebroot>/advokit-installer). You shold be taken to a page titled "Welcome to AdvoKit Installer".
  3. On the "Welcome to the AdvoKit Installer" page, click on "Refresh 1.0.0 files, leaving the database untouched". You should immediately be taken to a page titled "Refresh AdvoKit files". (If you clicked the wrong button you would be shown a page for entering database access information. If you arrive here by mistake, just click the "Start over" button to return to the beginning.)
  4. On the "Refresh AdvoKit Files" page, you will need to provide the correct paths for where your files will be located. It would be a good idea to review and understand the existing installation's file locations before entering these paths.
  5. Make sure that "yes, try to preserve my settings" is selected (which is the default), otherwise you will loose access to your current data. (Note that if you make a mistake, this can be fixed by later editing the advokit.ini file manually.)
  6. Double-check to make sure all your paths are correct, and then click "Continue". You will now see a list of all the files that have been written. Check for any errors in this list. (Errors usually are related to directories that the web server does not have permission to write or modify files. Resolve these issues, and then reload this page.)

I get an error message when I try to create a voter filter using a custom field

> Receiving an error message when attempting to filter on a custom
> field. Any thoughts?
>
> ----------------------------------- ERROR MESSAGE
> -----------------------------------
>
> ------------------------------------------------------------
> Error message was:
> Unknown column 'ak_customfieldsettings.custom_3' in 'where clause'

The ak_customfieldsettings table was not set up by import.pl when you imported your voter file with custom data. You need to run the perl script "regeneratecustomfields.pl", which is located in the advokit-installer's utils folder. This copies your custom field data into a separate table that is used for filtering. (Note that if you edit voter data that is in a custom field, this table will not reflect the change. To synchronize, you need to run regeneratecustomfields.pl again. For this reason, it can be a good idea to set up a cron job to run it on a regular basis.)

As you did with import.pl, you will need to edit your database connection information in regeneratecustomfields.pl...
# ----------------------------------------------------------------------
# Configuration -- edit to suit you.
# ----------------------------------------------------------------------
my $CFG_DBHOST = 'localhost';
my $CFG_DBPORT = 3306;
my $CFG_DBNAME = 'ak';
my $CFG_DBUSER = 'root';
my $CFG_DBPASS = '';
my $CFG_DBPREFIX = 'ak_';

To run the script (as with voterfile import) you need shell access on your server. There are no command-line arguments. You can run this script by cd'ing to the utils folder and simply typing "perl regeneratecustomfields.pl" on your command line.

I'd like to begin standardizing data for AdvoKit. What is the list of the standard AdvoKit field names?

From the mysql files:

_voter
salutation varchar(10) default NULL,
nickname varchar(15) default NULL,
firstname varchar(15) default NULL,
middle_initial char(1) default NULL,
lastname varchar(35) default NULL,
suffix varchar(10) default NULL,
birth_year int(4) default NULL,
birth_month int(2) default NULL,
birth_dom int(2) default NULL,
birthdate datetime default NULL,
age int(3) default NULL,
confidence_level int(1) default NULL,
gender char(1) default 'U',
occupation varchar(20) default NULL,
citizenship varchar(2) default 'US',
is_registered char(1) default 'N',
registeredon datetime default NULL,
can_vote char(1) default 'N',
will_vote char(1) default 'N',
absentee char(1) default 'N',
party_affiliation char(1) default 'X',
ph_home char(12) default '000-000-0000',
ph_office char(12) default '000-000-0000',
ph_mobile char(12) default '000-000-0000',
email varchar(30) default NULL,
alt_email varchar(30) default NULL,

_residence
number varchar(10) default NULL,
num_suffix varchar(10) default NULL,
precompass varchar(10) default NULL,
streetname varchar(30) default NULL,
streettype varchar(20) default NULL,
postcompass varchar(10) default NULL,
aptname varchar(50) default NULL,
aptnum varchar(8) default NULL,
line1 varchar(40) default NULL,
line2 varchar(40) default NULL,
city varchar(30) default NULL,
state_id int(2) default NULL,
zip char(5) default NULL,
zipplus4 char(4) default NULL,
county_id int(11) default NULL,
walklist_sequence int(11) default NULL,
address_sequence int(11) default NULL,
latitude float default NULL,
longitude float default NULL,

_mailaddress
number varchar(10) default NULL,
num_suffix varchar(10) default NULL,
precompass varchar(10) default NULL,
streetname varchar(30) default NULL,
streettype varchar(20) default NULL,
postcompass varchar(10) default NULL,
aptname varchar(50) default NULL,
aptnum varchar(8) default NULL,
line1 varchar(40) default NULL,
line2 varchar(40) default NULL,
city varchar(30) default NULL,
state_id int(2) default NULL,
zip char(5) default NULL,
zipplus4 char(4) default NULL,
county_id int(11) default NULL

_respolis
ward_number varchar(20) default '',
precinct_number varchar(20) default '',
precinct_name varchar(50) default '',
us_rep_district varchar(20) default '',
us_sen_district varchar(20) default '',
st_rep_district varchar(20) default '',
st_sen_district varchar(20) default '',
census_tract bigint default 0,
census_block bigint default 0

I've just set up AdvoKit with a voterfile. When I first log in and try to browse contacts there are none. What am I missing?

Original Question: I uploaded my voterfile and ran the perl script, and there are voters in the database, but when I log into advokit as the campaign manager and I try to browse contacts there are none. What am I missing?

AdvoKit does not provide a way to casually browse the voter file (perhaps this will be remedied in the future). "Contacts" in AdvoKit are voters who are on a contact list. Since no contact lists have been created yet, when you click on "Contacts" under the "Browse" section of the sidebar, you see an empty list.

(Note that the following describes a "shortest path" to getting to where you can browse voters. In actual practice, as an organizer, you should be less concerned with browsing voters than you are with managing your campaign: allocating work to volunteers, monitoring performace, etc. But it's reasonable when getting started to want to check out the voter data.)

In the AdvoKit way of thinking, contact lists are relevant to activists who have voter contact responsibilities. Therefore, to be able to create a contact list, you must either be logged in as such an activist (i.e. you occupy a voter-contact activist job), or you must be a leader or upline leader of a team that has a voter-contact job on it that you can assume ("assuming" a job temporarily gives you the same functions as if you actually occupied that job).

To get to this point (assuming that you are logged in as campaign leader), you will need to have established some organization:

With that established, you can assume the job. When this job is assumed, a block of links will appear in your sidebar that includes a "search voters" section. If your voter file is not very large, you could simply leave the field empty and click "Go". AdvoKit will return a list of all voters in the database (20 at a time). You can enter a search string (that will be matched against voter names and street names). Or you can click on the "advanced search" link to bring up a more elaborate search page.

Some things to bear in mind:

The installer runs fine but then I get an internal server error when Advokit tries to load

I followed the instructions and have installed advokit successfully. Following the installation, the page is redirected /index.php and I receive the following Internal Server Error:

-----------------------------------------------------------------------------------
The server encountered an internal error or misconfiguration and was
unable to complete your request.

etc...
-----------------------------------------------------------------------------------

Internal server errors (500 errors) are usually caused by file or directory permission configurations that do not comform to settings required by your server. Most servers will not, for very good reason, allow a php file with public write permissions (777) to execute.

Most of the time that this error is encountered, the solution is to chmod the permissions for your index.php file to 755.

What are the minimum system requirements for installing and running Advokit?

Advokit is a web-server based application designed to run on LAMP (Linux-Apache-MySQL-PHP) systems. Most parts of Advokit will run successfully on Windows and Macintosh systems that are configured with an Apache web server, PHP 4.2.8 or above, and MySQL 4.1 or above (e.g. XAMPP in Windows). You will need access to a shell account on the server in order to run the voterfile import script (also see Perl libraries requirement below).

(from the 1.0.0 README.txt file...)

ADVOKIT INSTALLATION REQUIREMENTS:

* Apache/IIS

Advokit has been tested on the Apache and IIS webservers, but will
probably run on any server that supports PHP.

* PHP

Your webserver must be running PHP 4.2.8 or above.

You DO NOT need to have register_globals on for Advokit to work.

* MySQL

MySQL version 4.1 or higher must be installed.

* Smarty

The Smarty template engine must be installed. Preferably 2.6.2 or
above. Advokit was mostly developed with version 2.0, but 2.3 and
2.6.2 have been used extensively. 2.6.2 is bundled with this release,
and you can tell the installer to install it for you automatically.

* Perl libraries

The voterfile import script requires several Perl libraries. See
this forum topic if import.pl fails to compile when you run it.

What is a field operation?

I thought I would try to put down in some detail what I think a field operation consists of from a campaign manager's standpoint. It is structured to reflect best practices of an electoral campaign, rather than trying to list functions needed. This outline describes a hybrid of traditional and cyber campaigns. However, my emphasis is on the field operation, which I define as the aspect of a campaign involving direct contact between campaign personnel and the public with two-way communication or highly targeted one-way communication. -Pat

  1. Field Operational - field tasks directly address one or more specific campaign objectives
    1. Establish objective
      1. Set measurable goal (e.g. number of identified supporters needed to win election)
      2. Within what scope/target population? Who is eligible as a target?
    2. Supporter ID
      1. Targeting
        1. Systematic targeting
          1. Data mining (psycho-social profiling)
          2. Managed friend to friend
        2. Ad-hoc targeting
          1. Call or email your friends - no contact lists
      2. Canvassing
        1. Phone using owned target list (persistent contact tasks)
        2. Phone using phone bank (provide option to convert to a persistent contact task)
          1. Group/virtual
        3. Door knock
          1. Contact lists, precinct maps
          2. Individuals working independently or van loads
        4. Incidental on-the-street contact
      3. Response recording
        1. Distributed (Web)
        2. Centralized
          1. Keyboard
          2. Barcode
      4. Follow-up
        1. Send literature
        2. Deliver lawn sign
        3. Send pledge form
        4. Recruit
          1. Determine skills and interests
          2. Create account
          3. Find job
        5. Create follow-up task for staff
          1. Request for information
          2. Ride to polls request
          3. Potential recruit
          4. Meetup host
          5. House party host
          6. Etc.
        6. Etc.
    3. Get Out The Vote
      1. Day of election
        1. Poll sitting - track who has voted, recontact no-shows (up to three times)
          1. Rapid reporting from polls
            1. Paper reporting
              1. Voter lists
              2. Centralized data entry and generation of call lists
            2. Electronic reporting - cell phone
              1. Voter lists
              2. Data entry via cell phone interface
          2. Recontact
            1. Phone bank - centralized
            2. Phone bank - virtual
            3. Phone own contact list from SID phase
            4. Door knock
        2. No poll sitting - all supporters are recontacted one or more times during the day
          1. How many times? When?
          2. By whom?
            1. Own contact list from SID phase (same org as SID phase)
            2. New generated contact list (different org)
            3. Phone bank (centralized or virtual)
            4. Door knock
      2. Seventytwo hours out
        1. Own contact list from SID phase (same org as SID phase)
        2. New contact list (different org)
        3. Phone bank (centralized or virtual)
        4. Door knock
        5. Door hangers
        6. Email
      3. One week out
        1. Postal Mailings
        2. Own contact list from SID phase (same org as SID phase)
        3. New contact list (different org)
        4. Phone bank (centralized or virtual)
        5. Door knock
        6. Door hangers
        7. Email
        8. Etc.
  2. Organizational
    1. Volunteer utilization - make sure all recruits are employed effectively
      1. Help wanted board
      2. Job wanted board
    2. Volunteer management
      1. Mentoring ("rule of 10")
      2. Phone tree-like structure
      3. Fault tolerant
      4. Flexible
      5. Provide situational awareness - succinct snapshot of your organization and its performance
  3. Strategic
    1. Public online presence
      1. Web
        1. Information
        2. Recruit (sign up)
        3. Fundraise
        4. Build political community
          1. blogs
          2. forums
          3. scorums
          4. etc.
      2. Email - broadcast
        1. Action items
        2. Information items
      3. Listservs
    2. Restricted access online presence
      1. Web site
        1. Access to field ops functions
          1. Site management
            1. Import voter data
            2. Import volunteer data
            3. Manage content
            4. Manage accounts
          2. Operational portfolio
          3. Organizational portfolio
          4. Strategic
            1. Drill down
            2. Reporting
              1. Numbers
              2. Maps
        2. Provide operational resources (e.g. online voter registration information)
        3. Build volunteer community
          1. blogs
          2. forums
          3. scorums
          4. etc.
        4. Strategic information distribution
        5. Help wanted
      2. Broadcast email
      3. Listservs
    3. Event scheduling and management
    4. Media relations
    5. Direct mailing

Where do I find voterfile data to use in AdvoKit?

There is not a simple one-size fits all answer to this question. First of all, the availability and quality of inexpensive voter data is extremely variable by location The Help America Vote Act, passed in 2002, requires each state to have a computerized statewide voter registration system. In many states, this information available for free, or for a very low cost from either the Secretary of State, or local officials.

More to be written...