Idea, Features, and Architecture - GamifyTasksTeam/GamifyTasks GitHub Wiki

Gamify Tasks

Note: This was edited 4/11/14 to reflect changes to our plan.

Details:

There are many people who are unmotivated to perform boring or difficult tasks (e.g. chores, homework, etc.) Relatively recently, a concept has emerged called "Gamification" to help with this (using game-style mechanics to motivate problem solving.) Sites like Fitocracy and HabitRPG use this concept.

This web app will allow users to schedule tasks that need to be accomplished with various "points" categories as payment for accomplishing tasks. These points can be used to redeem user defined rewards (e.g. junk food, movie night, etc.) Users will be able to log in with their Google account using OATH2. This was inspired by a Lifehacker article: https://github.com/Danation/GamifyTasks

Framework:

Server Side

  • Node.js
  • MongoDB
  • Express.js

Client Side

  • Ember.js
  • Bootstrap

The web service will have a REST interface. The web server will return data-free pages of html/javascript/etc, and Ember.js will interact with the web service.

Features

Minimum viable product

  • Each user has a wallet with different categories and quantities of points
    • The user will be able to view their current balance in each category
  • The user can create tasks
    • Assign them point values (in multiple categories, if desired)
  • The user can complete tasks in order to earn points
  • The user can create rewards
  • The user can use points to “purchase” rewards
  • OATH2 for Google accounts will be the sign-up and login method

Additional desired features:

  • OATH2 authorization for Facebook and Twitter accounts
  • Assign tasks to different time frames (always, daily, every thursday, on Mar 31, 2014, etc)
  • Ability to create long-term tasks with subtasks
  • Set rewards to be bought once, a certain amount of times, or always
  • 3rd party rewards (inspired by www.kiip.com)
  • Social sharing
  • Collaborative tasks
    • Requires formation of teams