Skip to content

App Areas

egray edited this page Mar 21, 2024 · 11 revisions

Shop

The shop page is where users can spend the currency they've gained from studying. They can choose to purchase Pets, App Sounds, and Furniture for their island studying experience.

The shop is formatted in a StackLayout, with 3 carousels holding the respective shop items. Upon clicking a shop item, the user is presented with a popup that gives them the option to purchase the item, or leave the item be.

The API's "GetAllShopItems" endpoint serves the information needed to populate the shop carousels. This includes the Item's:

  • Name

  • Price

  • Image

  • Shop Item Persistence

    • When a user navigates to the shop screen, and their local DB is populated with the shop items, they will pull the shop items from the local DB as opposed to the server DB.
  • User Item Persistence

    • When a user purchases an item from the shop, the item is stored in the local database as well as the server database, and the user's balance is updated in both databases as well.

Diagram of the persistence flows:

ShopItemFlow drawio

Mindfulness

Focus Session Ratings

The API's /Sync/MindfulnessTips endpoint takes in a list of the ids of the tips that the mobile database currently has stored, compares the list to the tips that the API has in its database, and sends back a list of tips that the API had, but the mobile database didn't.

Mindfulness Tips on Startup

When the app initially shows the timer page, a popup will appear to show the user a mindfulness tip

  • The user will be able to enable/disable this with a setting, which will be enabled by default

Session Rating

When the user completes a focus session, they will be greeted with a popup that asks them to rate the session.

If they do rate the session, they will be shown a mindfulness tip.

  • The tip that is shown depends on the rating the user gave the session.
  • So if the user rates the session as bad, they will be shown a tip that is meant to help in a more stressful situation.
  • Similarly, if the user rates the session as good, they'll be shown a tip that is tailored for a less stressful situation.

Sync

Mindfulness Tips

The API's /Sync/MindfulnessTips endpoint takes in a list of the ids of the tips that the mobile database currently has stored, compares the list to the tips that the API has in its database, and sends back a list of tips that the API had, but the mobile database didn't.