Wikimania Scholarships app/Backlog

Unfinished stories/requirements for the Wikimania Scholarship app.

Unfulfilled Requirements

 * Allow Admins to assign reviewers to regions where they are responsible for reviewing all applications
 * Allow Admins to set the active review phase
 * Allow Admins to set weighting factors for review criteria
 * Allow Admins to set number of spam votes needed to disqualify an application from further review
 * Allow Admins to export applicant information and reviewer scores for external processing
 * Allow Admins to import historic applicant information and grant status
 * Allow Reviewers to search historic applicant information for matches based on a given application
 * Allow Applicants to select wikis from a dropdown or autocomplete

Known bugs

 * The "Previous" link in the review interface always points to the current application under review
 * An exception during the error handler process will cause the user to see an undecorated Apache 500 error page

Issues documented during Cleanup sprint

 * Country/region information updates needed
 * Use ISO country codes instead of a random numeric id to reference countries
 * Get region data into to country table
 * Might be nice to expose a country editing system via web UI for fixing this up and keeping maintained.


 * Error and logging enhancements
 * Expose global logger to form, dao, etc in a reasonable way (DI?)
 * Add logging for errors and warnings


 * Testing enhancements
 * We should have at least a happy path round trip test for filling out an application


 * Production hardening
 * Find out if it is the app's responsibility to ensure that php.ini is setting up sessions securely (good hash, http-only, etc)


 * UI/UX enhancements
 * Css and markup could be cleaned up (bootstrap?)
 * Navigation for reviewers is confusing


 * Establish requirements for reviewer workflow
 * Current process is not completely clear, but seems to be a 3 phase gated process:
 * "Phase 1" is a spam screen with each reviewer giving 0-1 points to application
 * "Phase 2" begins when an application has gathered 3 points, now all reviewers can rank on several additional criteria
 * "Phase 3" is final decision to approve or deny application, not currently implemented as far as I can tell
 * This phase was hard coded into the bulk mailer components that were stripped out in the cleanup sprint based on scoring models implemented in sql layer


 * Additional SQL query cleanup is needed.
 * There is a lot of cut-n-paste subquery code
 * Hardcoded constants in scoring formulas seem problematic for tweaking models
 * A few string concatenations remain in the query builder


 * Auth layer is barely implemented. Authentication is handled reasonably well but authorization is ad hoc and fragile.
 * This may be better with most recent changes, but likely is not complete. Need to better understand the required privilege classes.
 * Should be more clear after establishing the reviewed workflow


 * Replacement/requirements for bulk mail functionality
 * Legacy code for this was ... less than ideal (eg manual editing of php source to put the template message in, no send rate limit).
 * It also looks like every year they invented a new way to decide which applications should get which message.


 * Create a basic "grid display" controller that handles the plumbing for paging and displaying results (and sorting?)


 * Eliminate Wikimania\Scholarship\Config and use dependency injection via the Slim container to configure everything


 * Localization issues
 * 'Note: This may all be moot as Jessie has said that L10n is not needed by the app at all.
 * Make sure l10n files and workflow is compatible with translatewiki
 * Make language choice sticky via session storage of selected language
 * Add l10n of country names for application form
 * Create Twig filter/function to handle string localization
 * Localize user facing error pages (fatal, 404)

Wish list

 * Allow Admins to record the final score and decision for an application
 * Archive final status of application to historic applicant table
 * Allow Admin to set application period start/end time