Volunteer database

Yes, it's another database project! Whoopee!

Given the limited volunteer-hours available for hacking, koanhead has decided that we need to track volunteers and their hours more urgently than we need to track inventory (people are, after all, more important than are things.) Even though the Inventory tracking database project is way cooler.

=Depends=

Can't use it without some access control. Needs https at minimum, maybe kerberos.

= Who=

=What= A webpage with the following:


 * 1) Secured sign-up form for new volunteers based on existing Volunteer_application.pdf.
 * 2) Integration with our Mediawiki instance such that new volunteers automagically get a wiki account (and possibly accounts with our various other services. Kerberos SSO would be nice to implement...)
 * 3) Volunteer hours tracking, correlated with relevant  Working Groups

=Where=

[| Our GitHub] - if that link doesn't work here's the text -

https://github.com/freegeek-seattle/volunteer-tracking

=How=

Let's make a Mediawiki extension!

https://www.mediawiki.org/wiki/Manual:Developing_extensions

https://www.mediawiki.org/wiki/Extension_Matrix/database

Special:Version

alter user tables
to reflect additional information present on volunteer application
 * https://upload.wikimedia.org/wikipedia/commons/thumb/4/42/MediaWiki_1.20_%2844edaa2%29_database_schema.svg/2500px-MediaWiki_1.20_%2844edaa2%29_database_schema.svg.png

DONE by Lucas. May need WG field(s) or table added

change user signup form

 * this is done once only, when the extension is installed
 * change Special:UserLogin accordingly with database alterations
 * https://doc.wikimedia.org/mediawiki-core/master/php/html/SpecialUserlogin_8php.html

We are possibly going to do this by modifying the existing ConfirmAccount extension. This is the one that makes you enter the 50-word bio when you sign up, so that will be going away...

ensure that Special:Listuser and friends does not leak sensitive information

 * implement as tests that fire when new data is submitted: build the relevant Special: pages and check them for the contents of selected fields
 * also to make sure the data we want is displayed of course :^)

build volunteer hours tracking form and associated reports

 * Special:VolunteerHoursInput or similar
 * restricted to Bureaucrat role, or do we need a new role?