blob: 64755a134733aa982a4c856a4fd30f797d8a69a3 [file] [log] [blame]
#summary This page lists all the TODOs for running GHOP program.
#labels Importance-Overview,Phase-Requirements,Contents-Update
<wiki:toc max_depth="3" />
*Note*: Please feel free to edit this wiki. This is an open wiki. But once the task is complete, please don't delete or remove them from this page. Please move them to the section named "DONE" at end of this page at least till we start using the features of issue tracker since there is no other way for us to keep track of the progress and things like where we were when we began and where we are now. Thanks for understanding.
= TODO =
* All issues in the issue tracker that have their milestone set to GHOP. See [http://code.google.com/p/soc/issues/list?can=2&q=milestone%3AGHOP&colspec=ID+Type+Priority+DueBy+Status+Owner+Milestone+Effort+Skills+Summary&cells=tiles this] page.(Priority - Varies)
* Write a manual. We really need to get started with the manual right now at this young stage of the module. If we delay it any further, it is possible that we end up with nothing when it is most required. At the moment we only want User Manuals
# Write a manual for Program Admins - Explain how to create a program and how to edit the Program profile? How to assign task quota limits to Organizations? How to create/edit/delete Task Type Tags and Task Difficulty Tags? How to assign dates on the Timeline? And of course any other new features added. *Noirin will work on this, but probably not til after the other manuals are done*
# Write a manual for Org Admins - How to create Organization profile? How to invite other Org Admins and Mentors? How to Create/Edit/Delete Tasks (Must be really detailed)? How to assign mentors to the tasks? How to approve the tasks suggested by mentors? How to publish the tasks? How to handle actions on the task like assigning the task to claimed student or rejecting the claim, reviewing and requesting for more work or closing the task among other things? *Noirin is working on this*
# Write a manual for Mentors - How to suggest tasks and edit the suggested tasks? How to assign mentors to the tasks? How to handle actions on the task like assigning the task to claimed student or rejecting the claim, reviewing and requesting for more work or closing the task among other things? *Noirin is working on this*
# Write a manual for Students - How to search and navigate to tasks they want to work on? How to claim the task? How to submit their work? How and when to register as a student in the app? *Noirin will work on this*
# Write a manual for General Public - All general things :P. Things any person who is interested in following the programme can do? (Priority - *Extremely High*). *Noirin will work on this*
* The star icon used for Subscription of Tasks and the check boxes used for Bulk approval of Tasks on Org Admin's View all Tasks page is broken on IE7. Debug and fix the issue. Pointers - app/soc/content/css/ soc-090730.css and soc-090708-ie.css. Note the css file names are susceptible to changes ;-). (Priority - Very High).
* Fix the problem with InviteAcceptRedirect URLs. It doesn't redirect to correct URL (Priority - Very High).
* Problem with history - The initial idea was to store history for each change made for every task in the task entity. This history may be important to know how many times a task was reopened, what really made the task to be reopened among other things. This is stored as JSON. See: [http://code.google.com/p/soc/wiki/GHOPImplementationDesign#Task GHOPImplementation and Design of Task model] for more info as how this is implemented. After a small set of changes to that original idea, during the implementation phase, the plan is as follows:
# Initialize the history property of the task to an empty string when the task is created.
# When the task is first published, store the entire snapshot of the Task entity, i.e the values of all the entity properties is stored as JSON data as specified in the Implementation and Design page.
# For any further changes made to the task entity, we store the value of the property before change in the JSON.
This is not working as explained above. It must be debugged and fixed. Pointers - All the code resides in app.soc.modules.ghop.logic.models.task.Logic.updateEntityProperties(). (Priority - Very High).
* Find two stars for subscribed/unsubscribed status for each Task on Task Public page.
* We added references to GHOPProgram and GHOPOrganization in the Work Submission model recently. The corresponding changes should be made in the views as well. Pointers - app.soc.modules.ghop.views.models.task.View.publicPost(). There may be other places as well (Priority - High).
* Remove all unused imports in all Python modules (Priority - High).
* Fix Issue 450 (Assigned to Madhusudan.C.S. priority - High).
* The "Task quota" coloumn should be removed from the page that lists the organizations since this must not be shown on a public page (Priority - High)
* Use the Appengine's new Blobstore APIs to accept work submissions. The submissions may contain code files itself, or the diffs of the code, translations, wikis etc. They may also contain audio/video files if the task requires them, for instance for tasks to create spoken tutorials. They may also take zip or tarred files. This entire work submission workflow has to be redesigned (Priority - Medium)
* The ability to automatically select prize winners and runners per organization and overall for the program should be implemented. The requirements this must be discussed both in length and breadth with Leslie before we start implementing this. This also requires a design of how this will be achieved before we start implementing it (Priority - Medium)
* Implement Task Search Filters - There must be a page to search for the tasks on various parameters like Organization, Type, Difficulty level, Tags etc. Pointers - app.soc.modules.ghop.views.models.task.View.search() (Priority - Medium).
* If search filters are implemented for searching Tasks they must also include fields for searching based on time estimates for completing tasks. Pointers - app.soc.modules.ghop.views.models.task.View.search() (Priority - Medium).
* If search filters are implemented check for 9 public status in the Query. The 9 public status are Open, ClaimRequested, Claimed, ActionNeeded, NeedsWork, NeedsReview, Reopened, Closed, AwaitingRegistration. Make sure one can search only for the tasks in the above said states. Pointers - app.soc.modules.ghop.views.models.task.View.search() (Priority - Medium).
* Program Administrator will have access to special view listing all the GHOP students allowing her to filter the ones that didn't send form yet and by selecting them and clicking ‚'Remind' button, Melange would automatically send reminder email to all of the selected students. There is absolutely no code written for this. Probably it is better to start discussing about this with one of the developers on #melange before taking up this issue. Easy to implement but we need some design decisions before we start writing the code. (Priority - Medium).
* Count of incomplete tasks for a student: Mentors/org admins should get information if student claimed some tasks but didn't complete (task was reopened), with the number of that kind of tasks. As with previous TODO, there is no code for this now. It is good to discuss with devs before progressing. (Priority - Medium).
* Program Admin will have views to add/edit/delete Task Difficulty tasks and Task Type tags which are mandated to each GHOP Task by the program rules. This view is accessible to the Program Admin through the sidebar entry for the program. Editing tags to the name already exists must say you cannot rename since it already exists. Pointers - app.soc.modules.ghop.views.models.program.View taskDifficultyEdit(), difficultyTagEdit(), taskTypeEdit(), taskTypeTagEdit() and templates at app/soc/templates/modules/ghop/program/tag/ difficuly.html and task`_`type.html (Priority - Medium).
* Continuing from above - We must either not allow or warn program admin to when she is deleting the tags that still have tasks attached to them. (Priority - Medium).
* Again continuing from above, the templates app/soc/templates/modules/ghop/program/tag/ difficuly.html and task`_`type.html are really really duplicates of each other. These two must be merged into the same template file. May require minor modifications. Also look at the related view methods mentioned in above 2 TODOs. (Priority - Medium).
* getExtraMenus() method of app.soc.views.models.organization.View is overridden in app.soc.modules.ghop.views.models.organization.View. The getExtraMenus() of the latter class must be modified to display the entries when the role are different. They are now tied to the roles specified in those methods. (Priority - Medium).
* Program Admin can assign maximum number of tasks each participating Organization in GHOP can create and subsequently publish. We are currently using Appengine Datastore db.put() API to save this data. This code should be changed to use Appengine's whizkid :P - The Task Queue API. Pointers - app.soc.modules.ghop.views.models.program.View.assignTaskQuotas() (Priority - Low).
* We must be able to display number of tasks that an organization can set out for contestants on Organization home page or public page or both. Pointers - app.soc.modules.ghop.views.models.View.`_`public() and app/soc/templates/modules/ghop/organization/ home.html and public.html. This is already done for the List of Organizations page, see app/soc/templates/modules/ghop/organization/list/row.html (Priority - Low).
* Integrate Google Wave for GHOP Task comments and submissions. May seem really ambitious at the moment, but it will _really_ help when people start using Wave (Priority - Very Low) (Wave is dead guys!:-)
* Remove application template from GHOP organization profile (Priority - Medium).
* That would be nice if an org admin had a link "Become a mentor". Currently he or she needs to send an invitation, open a notification, read it and accept (Priority - Low).
== DONE ==
Cleaned out :).