We need a roadmap system to indicate what are completed, and what are in our pipeline. A task contains these informations: Task# Title (translated) Short description (translated) Long description (translated) Attachmentlinks (several) - just saved as urls Nr. of upvotes Nr. of downvotes Date of creation Last updated Status (currently - completed, in progress, accepted, rejected, duplicate, on hold, waiting) Expected start time Expected finish time Followers (list of strings with userids)
It must be possible for users to vote (upvote and downvote) for a upcomming task, and to request update-notifications on specific tasks (by email) A user cannot vote on the same task several times A task have default texts, but it must be possible to supply translated texts for all text-fields (marked with translated)
Task A: (1H) Make a database design based on above requirements. All tables should start with same prefix for easy identification (eg. RoadMapTask, RoadMapLanguage) Task B: (1H) A new RoadMapHolder must be created with data correspondig to the database tables, and a LoadFromDr(DataRow dr) function like Models / [login to view URL] Task C: (1H) A new controller must be created called RoadMapController. Default (index) page must show all tasks. Call a FindAll function on RoadMapHolder that returns a list of roadmaps. Task D: (1H) The index view must indicate if the user can vote on a task, and if he is listening for updates for the task. (If not, he can join, if he already is - he can be removed from the list) Task E: (6H) When voting or joining/removing from task - all changes must occur as ajax calls, and update the form with the new information. When voting - the upvote/downvote counter must be updated, not possible to vote again. When joining - change the link and text to a unjoin. When unjoining - change the text to join
REWARD : 50$