Functional requirements - TaaviGilden/Prawesome GitHub Wiki

  1. Show activities
  1. User opens application
  2. A If first time use
    1. Register an account (e-mail+name+password or use Facebook)
    2. Learn how to use the application (tutorial)
  1. B If already has an account
    1. Logs in (email+password/Facebook/Google)
  1. C If already logged in then no additional steps required
  2. Application displays an activity to the user
  3. User decides if:
    1. he wants to do the activity (taps on the activity for detailed view)
    2. he doesn’t want to see that activity ever again (swipes up)
    3. he doesn’t want to do it right now (swipes down)
    4. he want to see another activity (swipes left)
2. **Adding a new activity**
  1. User opens application
  2. Opens settings
  3. Selects “add new activity”
  4. Inserts action name, description, location, price, time, picture?
  5. Action is submitted for a review and approval.
3. **Changing preferences** 4. **Save data** 5. **Authentication** 6. **Sliders for price, distance, timeframe** 7. **Offline usability (not a primary function, to be developed later)**

#Application must be capable of:

  1. Change language Use Case 1
  2. Recognizing the user (by either Facebook/Google id or username and password) Use Case 2
  3. Working without an internet connection Use Case 3
    1. Have it's own local database for offline interaction
    2. Keep a cache of the application
  4. Recommending activities to user Use Case 4
    1. Recommend based on user preferences
    2. Recommend while offline
    3. User can ask the application to not show current activity ever again
    4. Keep track of disabled activities to improve future activity suggestions
    5. Enable previously disabled tags/activities
    6. If user suggests during offline time, send the request when online?
  5. Setting limitations to recommended activities Use Case 5
    1. Understand the current time and location of user
    2. Recommend based on the time and cost specified by user
⚠️ **GitHub.com Fallback** ⚠️