Good2Go_DesignV1.0

advertisement
GOOD2GO
_________________________________
GOOD2GO DESIGN v1.0
PRE-USE CASES & APP DEFINITION
Upon first app load:
1. Ask to integrate with
a. Google accounts
b. Facebook
c. Calendar
2. Ask to access user location
3. Add 500 welcome gift karma points
Upon regular app load:
1. Auto sign-in user
2. Find user location (GPS, Network Location)
3. If user has preferences
a. Load map/list based on used last (default:map)
b. Load preferred activities (default filter: 10 KM radius)
4. Add 10 karma points to user's account [max 10 daily] (USE CASE 4)
5. Check if feedback is required (USE CASE 2)
Upon app close:
1. Save user layout (map/list)
User Prefs: add activities to calendar, use map/list as default layout, show these activity types as
default, auto-post to FB badges/karma.
________________________________
1
GOOD2GO – Volunteering for busy people
GOOD2GO
_________________________________
USE CASES
USE CASE 1.
Find Activity
SCENARIO 01: Find activity on map
1. User clicks on Map Pin: Activity Name Balloon appears with: name, hours, FB friends
attending and a details arrow button.
2. User clicks on details arrow button
SCENARIO 02: Find activity in list
1. User clicks on list tab
2. User clicks on an activity in a list
SCENARIO 03: Find activity from search
1. User clicks on search tab
2. OPTIONAL: User checks the Activity Types checkboxes
3. OPTIONAL: User sets Activity Date Time preferences
4. OPTIONAL: User sets Activity Radius
5. User clicks "GOOD on Map"/"GOOD as List"
6. G2G presents results on user's preferred layout and with a "filter" mark (can be
unchecked)
SCENARIO 04: EXTENDS SCENARIOs 01-03: Register for activity
@PRE: user exists, activity is in the future
@POST: activityID/userID is in DB, FB status is updated (opt), Calendar is updated (opt)
1. User clicks on Register button in "About" tab in Activity Details [?propagate to first
screen?]
2. G2G performs Facebook integration(UC5)
3. G2G Adds karma to user (UC4)
4. G2G updates USER_ACTIVITY with userID/activityID and metadata (date).
5. OPTIONAL: G2G updates user’s Google Account Calendar with activity details (name,
datetime, location) and default reminder 15 mins prior to event.
USE CASE 2.
Provide Feedback for an activity
________________________________
2
GOOD2GO – Volunteering for busy people
GOOD2GO
_________________________________
@PRE: user exists, user registered for an activity that is over, user hasn’t provided feedback
@POST: user provided feedback (opt)
SCENARIO 01: User provides feedback
1. G2G pops up a message with five stars saying "How was horseback riding?
2. User chooses the amount of stars
3. G2G adds karma (UC4)
4. G2G updates feedback in USER_ACTIVITY table
5. G2G calculates feedback (avg) per activity type in ACTIVITY_TYPES table
6. G2G shows the hours automatically in client (due to filtering based on
USER_ACTIVITY.feedback!=0)
USE CASE 3.
Check user stats
SCENARIO 01: User checks his statistics
1. User goes to personal area (TBD) and is able to see his volunteering activities as well as
hours/badges earned
USE CASE 4.
Add karma to user
@PRE: user exists, user earned karma
@POST: karma is added, badge is added (opt)
SCENARIO 01: Add karma
1. If this is from UC2 also update hours in USERS
2. Add the needed karma points to USERS and pop up a disappearing message
"Your karma is now 3100 points stronger!"
3. G2G performs Facebook integration for karma points(UC5)
4. OPTIONAL: if user is eligible for a new Ranked badge, add it to USERS and pop up a
disappearing message "Congrats! You are a true Dalai Lama now!!"
5. OPTIONAL: G2G performs Facebook integration for badges(UC5)
USE CASE 5.
Perform Facebook Integration
SCENARIO 01: FB after registration
1. OPTIONAL: User shares activity on FB checkbox [X]
2. OPTIONAL: User invites FB Friends checkbox [ ]
a. G2G opens Friends list with title "Who needs good karma today?"
b. User chooses friends and clicks DONE
3. User clicks OK
________________________________
3
GOOD2GO – Volunteering for busy people
GOOD2GO
_________________________________
4. OPTIONAL According to step 1: FB post "Gil is an amazing person. He's going to read to
the elderly on 13/05 at 14:30 in Ramat Gan"
5. OPTIONAL According to step 2: FB post "Dana, Gil thinks you are an amazing person.
He wants you to come with him to read to the elderly on 13/05 at 14:30 in Tel Aviv. It's
good for your karma!"
SCENARIO 02: FB after new karma points/badges
1. If new points>10, auto-post to FB "Anna has 5000 good karma points by helping
children via GOOD2GO"/"Anna has just earned a "Mother Theresa" badge by
volunteering via GOOD2GO!"
USE CASE 6.
Execute scheduled tasks
SCENARIO 01: Find volunteer of the week/month/year
2. Find the volunteer with most points (or just hours??) in USERS for given period.
3. Add scheduledBadge to USER.
4. OPTIONAL: G2G performs Facebook integration for badges(UC5)
________________________________
4
GOOD2GO – Volunteering for busy people
GOOD2GO
_________________________________
DATA DICTIONARY:
Activity Details
On the top: pic, name and summary.
"Map" tab: location
"NPO" tab: info about NPO
*screenshot is for reference only
Activity Types possible values: kids, animals, elderly etc)
Activity Date Time start/end date/time, duration
KARMA
Karma calculations: App install – 100, 1 hour volunteering – 1000, Registration – 100, Feedback – 30,
Friend invite – 60.
Volunteer Scheduled Badges: Volunteer of the week/month/year
Volunteer Ranked Badges: Mr. Nice Guy, Angel, Saint, Mother Theresa, Buddhist Monk, Dalai Lama,
GOD!
default,3000,5000,7000,10000,50000,100000
TABLES:
USERS: userID, totalHours, totalPoints, scheduledBadge, rankedBadge
*the above table might have a line per any activity with a date. Like audit table. (i.e user received a
badge on 22/12). This could also be used as a history table. Or maybe we should have a
USERS_BADGES separate table?
USERS_ACTIVITIES: userID; activityID; feedback (1-5 – automatic 0)
ACTIVITIES: activityID, activity_type, location, start time, end time, name, summary,
ACTIVITY_TYPES: activity_typeID, activityTypeText, average_feedback
BADGES: badgeID, badge_type, badge_hours
***Dana & Mor must work out how the user HISTORY (activities, points, badges) will be organized in
db in the best way.
________________________________
5
GOOD2GO – Volunteering for busy people
Download