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