3. Requirements - Pug-Life-INFO-461/allowance-gamification-app GitHub Wiki
Requirements with Complete/Incomplete Annotation can be found here: https://docs.google.com/document/d/1-lF1hA74HScTgQymzp7SkPb2p1ttxm6DxIzUEq-uVHA/edit?usp=sharing
The most updated requirements can be found here: https://docs.google.com/document/d/1z-QBv5HGVa8ZxxzA_XZyN2oCBeYIUYTWFRsz87urjNo/edit?usp=sharing
OLD REQUIREMENTS:
User Profile Tab
View Profile (Child View)
Rationale) The user (child) can view all profile status to track accomplishments and view status.
- View current user level and remaining experience points to level up
- Experience bar displayed below the user’s profile image. Two colors will help to contrast how much qualitative experience is needed left in addition to numbers displayed below how much quantitative experience is needed.
- Change user profile picture
- Touch on profile picture area and a popup window appears to display what the user wants to select a new photo from gallery or other sources (e.g. Facebook).
- View Badges
- Below the experience bar, a display of all of the user earned badges appears. Each badge is unique and symbolizes a certain accomplishment achieved in the app (e.g. milestone of the number of certain category tasks completed).
View Profile (Parent View)
Rationale) The user (parent) can view all profile related information.
- Change user profile picture
- Touch on profile picture area and a pop-up window appears to display what the user wants to select a new photo from gallery or other sources (e.g. Facebook).
- View completed tasks by Children needed for approval
- A list of the task title along with the username of who completed the tasks are listed in chronological order (oldest on the top and newest on the bottom). The tasks can be swiped right to show that the parent approves the task is completed. Left swipe shows that the parent disapproves and the child is notified that the task still needs work. Swiping right results in the achievement of the task to display on most recent accomplished tasks in the family tab (discussed below).
Family Tab
Discover achievements/activities
Rationale) The user can view achievements/activities that other family members have completed. The interaction between members through achievements is created. The user can also view other family member stats.
- View family member achievements
- The user scrolls through the family section. Achievements/activities are displayed chronologically with the top achievement being the most recent.
- Commenting/Current Mood
- Other family members can scroll to a certain achievement that was completed and touch the chat text box to add a comment or express their current mood by choosing an emoji. Threads to existing ongoing conversational achievements are notified to all participating users.
- Viewing Family Member Stats
- Bar at the top of the screen with circles representing user profiles. Clicking on a circle takes users to that user’s profile. That user’s profile display is very similar to the user profile tab explained above.
Task Tab
Parents Perspective
- For parents after logging in or creating an account they will see three bottom navigation tabs that offer to create a
FAMILY
,TASK
, and setREWARDS
. - Adding tasks
- For creating tasks parents click the Add sign + which brings them a form to fill out:
- Set points value ($ virtual money)
- Set due date
- Assign to kid
- Add note
- Should show a text box
- Set category
- For creating tasks parents click the Add sign + which brings them a form to fill out:
- Creating Task
- After filling out this form, the parent can click the SAVE button up top across from the BACK button a task has been created and assigned to a specific child.
- Don’t want to assign a task
- If parent doesn’t want to assign a task in the middle of filling out a task form they can click the back button to go back to task page where they have access to see
Unclaimed
,In Progress
,Pending
, &Complete
Tabs in the upper navigation bar.
- If parent doesn’t want to assign a task in the middle of filling out a task form they can click the back button to go back to task page where they have access to see
- To delete/remove
- task parents can swipe left on tasks that are assigned but unclaimed
- Editing Created Tasks
- Press and hold already created tasks to edit
- Automatically takes you to editing mode in which you can edit the specification
- Once done click Save button is changed to “Create”
- Confirming/Rewarding
- Once a task has been done children will click the Done button which will notify parent with a pop-up for confirmation of completed task which options to Reward the child or to ask for Re-Do on the task. This notification will include a picture/video of the task if parents are not able to physically attend and confirm the task.
Children Perspective
- Top navigation
- Unclaimed | Completed
- A list of tasks will be displayed that are classified under the top navigations
- Children can accept a tag by swiping right
- Once a task is accepted children are prompted to Accept or Decline that task
- Once they accepted a task it will appear in Pending category for parents
- They can only accept one task at a time
- If children change their mind they are able to a Pause button on the progress pop-up that pops up once they click accept and it will return that task back to the Unclaimed section of the top category.
- Once the task is complete are able to click the Done button in which it notifies the parent with a pop-up that the task is finished and parents are able to go check out the task has been completed and click Reward button to reward their children for a completed task.
- Bottom navigation
- Stays the same for both parents and children **Task item limitations **
- Rewards can only be numbers that are integers representing virtual money
- Data Type = integers
- Due date can only be today or future days
- Data type = integers representing
- Date, time (hours, minutes, & seconds)
- Data type = integers representing
- Notes requires parents to add a descriptive note
- datatype=characters
Rewards Tab
Create Rewards
Rationale) The parent can set awards which is specific to only their family group
- Create rewards
- The parent can create a new reward by going to the task tab and clicking on the icon on the bottom right which is a circular icon with a
+
indicating the user can add. - By clicking on the add icon, the user will be redirected to the create reward view. There similar to the create task, the user can set
Reward Name
,Reward
,Description
,Category
- The parent can also select which child to allow the reward too. This is to prevent underage children from redeeming inappropriate rewards.
- There is a
create
button that spans the entire lower screen. Once clicked, it will generate the reward and direct the user back to the rewards view.
- The parent can create a new reward by going to the task tab and clicking on the icon on the bottom right which is a circular icon with a
- Edit/delete reward
- If the user wishes to edit the reward, the user can click on the reward and will show a pencil indicating edit. Then similar to the create view, the values will be prefilled with the already selected fields. The user can edit any field they want and select
save
. - If the user wants to delete the reward, they can by clicking
delete
in the edit view.
- If the user wishes to edit the reward, the user can click on the reward and will show a pencil indicating edit. Then similar to the create view, the values will be prefilled with the already selected fields. The user can edit any field they want and select
Discover rewards
Rationale) The user can view rewards which can be redeemed.
- View rewards
- The user will be able to see a list of possible rewards the user can redeem with the collected points. This experience would be something similar to shopping on an e-commerce website. By clicking on the item, they would be able to see detailed information regarding the reward.
- The user can also filter rewards by their categories by clicking on the filter icon on the top right. Then a drop-down menu will appear allowing a filtered view.
- Redeem rewards
- Once the user finds a reward that interests them, they will be able to click on the item and click on redeem. A confirmation popup will make sure the rewards are not refundable unless there are specific circumstances.
- When the user selects
redeem
, the application will show a popup message asking the user to confirm that they are sure on making this purchase. - Once the user redeems a reward, it will notify the parent of the redeemed reward in the form of an in-app notification.
Initiation/Invite Process
Parent/Child Creates User Account
Rationale) Only the parent can create the first account and invite other family members, this is to avoid any confusion or inappropriate behaviors by the child.
- Sign in
- The parent can create a host account. Only the host account is able to invite other members to the group. The host can set the other parent with same privileges as the host, such as setting rewards and confirming tasks.
- The first screen the parent will see is a field for username and password
- There is a sign in button which will sign the user in if the password and username are correct. If there is an error, a popup window will prompt the user what error they got.
- Below the
signin
button, There will be aDon’t have an account? Sign up here
button which will prompt the user to a signup page.
- Sign up
- On the signup page, there will be multiple fields such as
Name
,Username
,Password
,Password confirmation
, andEmail
- Once the host signs up, they will be given a link they could share with other family members. The code is unique to each family.
- The unique code could be shared via
SMS
,email
,messenger
. - The unique code can be accessed by going to the setting menu anytime in the future.
- On the signup page, there will be multiple fields such as
- Invite other family members
- Once the host account is created, the host can send invitations. Once the user clicks on the invite link, it will prompt the user to download the application, if is not already installed.
- If the application is already installed, then the user will be able to create an account specific to the family group.
- Change user permissions
- If a user who made the account by the invitation link is a parent, the host can give host permissions to the parent.
- If a child was invited and given host permissions by accident, can be lowered to the appropriate child permission level.
Error Handling
Show error
Rationale) When a user encounters an error, they should be notified of the issue.
- Shows user error
- If a user tries to do an action which is not a system error, but a user error, it will show a popup window.
- The user will be able to close the menu once it reads the message.
- Shows system error
- If the user encounters a wifi connection error, backend server error. The user will be notified by the popup window. But this will also leave a log for engineers to determine the cause and release a patch in the future.
Data Objects
User Object
type User struct {
name string
user_name string
password []byte
email string
}
Task Object
type Task struct {
name string
createdTime time.Time
updatedTime time.Time
dueDate time.Time
rewardPoint int64
description string
category string
assignedTo []User
status TaskStatus
}
Task Status Object
type TaskStatus struct {
completed bool
pending bool
}
Reward Object
type Reward struct {
name string
createdTime time.Time
updatedTime time.Time
dueDate time.Time
rewardPoint int64
description string
category string
assignedTo []User
}
FamilyGroup Object
type FamilyGroup struct {
name string
users []User
createdTime time.Time
inviteCode string
}