User:Niharika (usurped)/IEG Review tool

Using this page to document progress and ideas about the IEG Review app.

See this link for more information about the complete expected workflow of the app.

I'm going to break down the expected features into (kind of) independent chunks and work on them one by one.

Assumptions

 * Only one campaign can run at a given time
 * App admin == Campaign admin
 * App reviewers == Campaign reviewers

Part 1

 * Add a campaigns table. Table holds data about all previous and current campaigns. ✅
 * ID: INT(11)
 * Name: VARCHAR
 * Created by: User ID
 * Status(Status of campaign): 0: archive, 1:active
 * Start date: TIMESTAMP
 * End date: TIMESTAMP
 * Created at: TIMESTAMP


 * Add a campaign ID field to proposals table. Every proposal belongs to a certain campaign. ✅


 * Add a "View campaigns" report view.
 * Shows all past and current campaigns
 * Clicking on a campaign lists the proposals received for that campaign
 * Clicking on a proposal shows the proposal text and review text
 * In the report view, none of the proposals are editable --- Needs rethinking. Keep current one editable and previous non-editable? Or only show archive campaigns in this report?

''To simplify things for the time being, there would only exist a 'Start Campaign' and 'End Campaign' button. The campaign starts when the 'Start Campaign' button is hit, and it ends when 'End Campaign' is clicked. This can be improved upon in a later patch. The next step would be to allow for a customized proposal and review questionnaire.''
 * Add a Start Campaign panel for Admin
 * Add a start date for campaign
 * Add an end date for campaign
 * Add a Name for the campaign
 * 'Start Campaign' button


 * Review queue should only show proposals from the current campaign

Needs thinking

 * A project that is active i.e. time_now > start_time && time_now < end_time should automatically end i.e. it's status should become '0' the moment the clock ticks over. This needs to happen automatically or we could trigger this to happen the first time when someone logs in after end date of campaign? What's preferable?
 * Should there be a manual trigger "End Campaign" button in Admin Panel? Nah. Bad.
 * Or should we not have the active campaign in the campaigns table at all? Should we keep active campaign data separately from the archive campaigns and add it to the archive table when the campaign is over?
 * If there is no active campaign, then the Review Queue would be empty.
 * Should Campaign reports only be be available for expired campaigns?
 * If there in no active campaign, then the Settings page should not show anything to be edited.