Green Party Map Server
End User Documenattion


A maps Lexicography.


Person.   A person can have many roles.  They can be a candidate, an elected official, a party officer, a campaign officer, a volunteer, an endorser, or a donor.  Each has a different data structure.   They also have a history of theses different roles. 


There is also a political race.  It has an office that a person is running for.  It has a number of candidates, election results,  number of voters, a district map, and  some other information.  For simplicity’s sake we  will also attach this to the person object.  

An official candidate  or official office holder is one who has been added to the Elections Database. 

An endorsed candidate or endorsed office holder is a candidate or office holder who has been endorsed by the national, the state or the local party.  They may or may not be in the elections database.   They may or may not have achieved ballot access. 

declared candidate is one who has declared their candidacy, but has not yet achieved either offical or endorsed status. 



Web Sites

The Elections Database WebSite.  People who are listed here are either official Green candidates, or official Green office holders. This is the website of the GreenParty United States.  If the maps are to be hosted on their web site, only officially Green, and endorsed Green candidates and office holders  will be displayed.  Would the media committee like to also display declared candidates?  Green Party officers and events may also be displayed.  This is the website of the Howie Hawkins campaign.   Their map will include all of the people  plus potentially others, as part of their Unite the Left strategy.  They have yet to decide which other candidates they would include.  It could be Socialists Progressives, Constitutional Party, independents, and even Democrats who refuse corporate contributions. 

The Maps Site

The maps are currently at Map.Howie2020.Tech.    People can login at, but that website does not scale.  This is being fixed. 



An application is a collection of data and software to achieve a particular objective. 

The Elections Database Website.  This application shows official candidates, elected officials and appointed officials, both current and historical.  

Ballot Access.  This is the most important  Green Party application.   To get candidates on the ballot.  Maybe it is numerous applications. 

The national map.  This is a clickable map of the Green Party.  Ideally it should include parties, caucuses, candidates, elected officials, party officers, and events.  Ideally it will be hosted on the home page of 

The state maps. These are maps of the Green Party in a particular state.  Ideally they should be hosted on the state web sites.  They may also be hosted on the web sites of congressional candidates. 

Green Party Directory.  Much like a phone directory, or Yahoo Directory, this provides contact information for all of the Green Party entities.  It should include social media links and web site links. 

Splintered Directory. The Green Party currently runs a splintered directory.  The required information is scattered all over the the web, making it hard to find.  This makes it very difficult for an individual to connect with the right people. 

Recommended Voting Lists.  Voting in California took me over an hour to figure out who to vote for and which propositions to vote for.  A recommended voting list suggests who to vote for, ideally with a brief reasoning, that makes things easier for our voters. 

News.   The maps site allows one to organize information as a taxonomy.  The news function lets one also view the 10 most recent items in any branch of the tree. 

Instant Web Sites.  Every candidate and organization needs a website.  Instant web sites allow them to fill out a form, and they have a website, which they can edit and add content to. 

Content Management System.  A content management system is a software application which allows multiple people to submit, edit and approve content.  Drupal is a content management system.  The maps are a content management system. 

Approval.  Approval is the process where information in a content management system is approved for an application.  New page postings can be approved before going live.  Candidates can be approved before becoming endorsed or official candidates.  The approval process for candidates could be to list them in the election database, and import the data. 

Social Media Integration.   The first part, is social media login.  Currently google sign on allows a person to register on the site, without using a password, they use Google Oauth instead.  Further integration includes the process of posting information on the content management system and having it show up on social media sites.  There are a number of ways to do social media integration.  

Campaign Management.  This is the process of running a political campaign, either on Base Camp, or on Discord. 

Local Party Management.  This is the process of running a local party or caucus, either on BaseCamp or on Discord. 

Candidate Web Sites.  Every candidate needs a website. 

Security Model

The security model is how users can interact with a site. 

Flat security Model. In a flat security model everyone who has permission can edit anything.  Google spreadsheets, and maybe WordPress support a flat security model. 

State Security Model.  In a state security model, people from a state can edit their own content, but no other states content.  The elections database supports a state security model.  Maybe a few people also have national security permission. 

Hierarchical Security model. In a hierarchical security model the national editors can edit anything, and assign anyone permissions.  The State editors control their conent and users.  The Local Editors control their content and users.  A person can control their content and users.  The simplest part of the maps application, and the most powerful is its hierarchical security model.  Nobody sees it.  Until I just wrote this, I did not even realize it,  but we already have national, state, candidate and developer roles being used.  It  has worked flawlessly. 



Relational Database.  That is a software package which stores data in tables. 

Relational Schema.  That is a high level definition of the data in a particular database. 

Relational Data Model.  The relational schema and data supporting all of the needs of a particular application. 

A Hierarchical Database.  This is a database which stores data as a tree of nodes with attributes. 

JSON Schema.  This is a widely adopted standard for defining hierarchical data. 

Property Graph Database.  This models data as a graph, each of whose nodes contains fields with data. 

Object Graph Database.  This is a property graph database which also include methods and interfaces. 


Data Models

Data model for an application.  These are the schema and the data required to support a particular application.  If it does not support all of the needs of that application, it is not a data model for that application. 

Object Model For an Application. there are the schema, the data, and the methods required to support a particular application.   If it does not support all of the needs of that application, it is not an object model of that application. 

Server Model for an Application.  This is a web server  or collection of web servers which has interfaces to support all of the needs of a particular client application. 


Elections Database Model

This is a database, a schema and some data run by Mike Feinstein.  It supports one application, which is the elections database website.  It is not a data model of any other application, because it does not support all of their needs.  In particular it does not track people seeking to be candidates.  It does not track endorsed candidates.  I am not sure if it tracks all of fields in the CCC's results spreadsheets.   

The Maps Object Model

The maps server uses a hierarchical model.  It is a tree with Root->National Party->State Party ->Local Party-> More...  There is a difference between where the candidate is stored, and where they are displayed.  At the national level is the Green Party US.  The only candidates stored at this level are ones that everyone can vote on.  That would be president or vice president.  Hopefully soon we will have an office holder at this level of the map.  that would be a Green Party president or vice president. 


Below the national level are the state parties.  A state party is a group which is currently affiliated with the national party and certified as such.  


Below the state level are the local parties and local caucuses. .  There could be multiple levels.  Silicon Valley -> counties within Silicon valley -> cities within those counties. 


For the 2020 elections California had correctly managed the details of the state data.  The state page showed all candidates that people in the state could vote for.  That included the presidential and vice presidential candidates. The local level showed the people that locals could vote for.  That would be the president, and vice president, any Green Gubernatorial candidate, any senator, and the local candidates. 


Most states did not enter the data correctly, so local parties, showed all state candidates.  Hillary pointed out that PA had this problem.  Anyone with PA state security permissions could fix this problem. 


The maps  applications use an object graph model.   The elections website uses a relational model.   These are not compatible models.  The maps cover many things not covered by the elections database.  The elections database covers some things not covered by the maps.  It is easy to wave our hands and say that the two can work together, but the devil is in the details that is not really the case.  We will see. 

The goal of agreeing on definitions is to get everyone on  the same page, and thus save time at our next meeting. 



We want to update the blurb at the top of the home page. 


Holly wants the Map database to track the rest of the information about specific races and results.  Holly wants to see a (very big) spreadsheet of all of the people. 


Holly wants to provide us with people seeking to be Official Green Party Candidates or endorsed Green party candidates


Alex wants local parties, and candidates to be updating their own information. 

Christopher would like a solution to this "Elusive Developer" problem so that the Green Party could   whole heartedly embrace this software and  compete more effectively against other parties who spend $100s of millions on their IT infrastructures.   Their is a simple solution.  Hire another developer.  Maybe $5K/Month in Poland.  I took a look at the 2017 GP budget.  Basically $100K.  And to run a full suite of candidates in TX alone would cost over $300K.  So the "Elusive Developer" problem is really an "Elusive Funding" problem.  Now I do not feel so bad.    We need a fail safe approach to upgrades.   So that if Christopher gets hit by a bus, we it does not imperil any mission critical functionality.  

I will leave Hillary to state her own position.  I do not want to misrepresent her.  I hope that she will be in favor of the Howie Hawkins Team creating instant web sites for candidates.  I hope that she will be in favor of the Howie Hawkins team teaching candidates how to run their campaign on base camp.   I hope that she will not interfere with either of those very important processes.   

Built using the  Forest Map Wiki  

GreenMaps is a volunteer effort, separate from The Green Party of United States.