This document is a software design document on how to model the complexities of people in the Green Party.
You have a basic person.
They may or may not be a green party member.
They can be a candidate
They can be an office holder
They could have had multiple offices historically.
Nassim is a volunteer with the Jake Tonkel campaign, an officer in the Santa Clara party, an officer in the state party and a delegate to the national party.
Okay, history has to be a list of objects, so that most of the time they are not loaded into memory.
KISS. Maybe I will just do one change now to model what I need to do right away.
All I want to have is a basic person, a candidate an elected official.
But one has to think ahead.
So a politician has a list of current and past roles.
And those roles show up in two places. Under the politician, and under the organization. Ouch.
Good to have a graph database.
Oh well I do not need to do all of that right now . So clearly a politician has a list of current roles, and those roles can be added to.
And with that it is clear how to create the user interface to do this.
Long run we can move current roles to historic roles. Even short run. Right after the election.
So first role is candidate. Position, election day.
Second role is elected official. Position, expiry date.
We could also do Party member role.
Okay, when I started I had no idea how to solve this problem, but by writing, I now know what I need to do.
Really the focus is just on listing elected politicians and candidates at the same time, so that the software is useful after nov 4th.
And then we get an index of elected officials, and an index of active candidates.
And an index of twitter ids.
AND ABOUT PARTIES
I guess the parties have committees. And the committees have members.
And those members have roles in the committee.
So maybe an organization should have
That would be a bit better than the current model where they are all lumped together in a single folder.
Also clearly states like NY, and CA, should have local parties
Built using the Forest Map Wiki