COLAB14 - Mobile App

OffLoad

The App where you can share your thoughts and feel heard.

Problem Space 

Since Covid-19 and the pandemic, there have been healthcare workers who find themselves under a lot of pressure due to uncertain times and feel extremely anxious and stressed during their day to day roles. Many healthcare workers are often overwhelmed from their day to day tasks and are constantly on the go that sometimes it becomes difficult to place stress externally. Journaling and voice noting has been shown to capture “ emotions in the moment and process our thoughts and feelings to make better decisions and calm our minds” (Pardo, 2020). There are also studies that show that there is more thought process with journaling, specific to voice note journaling. 

OffLoad is designed to create a safe place to track your emotions to identify your day to day stress points to make you become more self aware of certain triggers. 

Research Insights

Initial Testing:

Using various survey methods and in-depth interviews we have continuously validated our problem space which is the idea of stress and the benefits of journaling. During the first iteration of the user interviews, we wanted to understand how users deal with their stress, fatigue and exhaustion from work. Half of the users mentioned that they use a variety of applications to de-stress and consider using journaling to channel their thoughts. 

Second round of testing:

When we interviewed users for the second round of testing and getting an understanding of the application, our users felt that using a voice note application to record their feelings made them feel “vulnerable” and able to express themselves more on voice note rather than writing. They have also been using various voice notes when messaging friends as they found it to be more convenient than texting. 

Certain users also enjoyed the fact that they can track their feelings throughout the months and identify certain triggers that can occur which makes them more self aware while they are in their moments of stress. 

In regards to certain concerns, we had a user describe that as they are uncomfortable with listening to their voice, it would be difficult to listen back on their voice. This is why as a team we have built the journaling option to ensure that there are enough features that can satisfy more users. 

Solution Explanation

Based on our target users’ pain points, we knew that journaling and expressing emotions can feel very overwhelming. Some may not know what to write, some may get journals with prompts, but we wanted to build a way where you can express certain emotions, either on the go or in your own space and record your feelings. This is why we created the voice note feature, where you can record more than once a day on how your day went, how it started, daily frustrations or just certain to-do lists that ease your stress for the upcoming day.

We realized that certain users wanted to understand patterns of behavior, certain trigger points and become more self-aware of where certain stress points kicked in. This is where we thought of creating a way to  track this via “emojis”. This is common usage of expression in our day-to-day usage of cellular devices and so we built the emojis to express emotions which all get stored on your calendar.

In regards to our KPIs, our goal is that 50 % of users leave a voice note or a typed note on the app and 70% of users will have an initial reaction everyday. We have hypothesized that more users would track their emojis and then add in notes slowly. To measure these results, we will send surveys, more user interviews on the application itself to try to see how long users stay on the various features. If more prompts are required to build a habit or if they want to close other screens on their application so they are focused on expressing themselves without too much distraction. 

We ensured to be ruthless in our timelines and although we have much more to build to build user experience on our application. Our main features solves our users base problems and allow users to track, journal, note-keep and understand their day-to-day emotions.

Lo Fi & Hi Fi Mockups 

Iterative Design Learnings

After the Dev team implemented the designs, we quickly reached out to 3 to 4 participants to test our product. The common feedback that we received was that our product was easy to use and intuitive. Beyond effortlessness, one user noted it acted as an emotional reminder, similar to one looking at photos. 

Another participant believed it to be a more convenient method to remember future tasks, which we didn’t anticipate. There is potential opportunity to explore this use case more closely and iterate our product closer to meet this use or start a new one.

Other user feedback mainly focused on the copy and scroll feature. The copy did not fully align with each other and felt awkward to participants.

Based on user feedback, users needed prompting to continue the flow.

Users were unaware part of the UI was scrollable on the left screen and opted for the right screen.

Initial design included animated friendly avatar, however due to the complexity of the animation and time constraints, we decided to deprioritized this feature for later revisit.

Implementation Details 

In this section, we would be breaking down the Application Engineering decisions made by the developers in the team and also the challenges faced in development, key takeaways and more.

Application Hosting and Deployment

Development

In Development we leveraged Expo Application Services in hosting our development builds.


Production

For Production, based on our team goals and targets, the application is hosted as an Android Application on the Google Play Store.

Technology Stack

Front-End

As developers with a strong background in Web Development, we decided to design the Front-End of OffLoad with React Native.

For styling we decided to use the following:

  • Inbuilt styling option in React Native for dynamic styling values
  • Leveraged React Native Tailwind ClassNames package for reducing repetitive and redundant styling.
  • React Native Animatable package for animations as it optimizes the applications performance and enables smoother synchronization between the UI thread and JavaScript thread.

Database

Currently, we are storing user generated data on the user's device storage and user credentials on our Firebase Firestore majorly because it was the easiest ODB(Object Oriented Database) to set up with Firebase Authentication and to maximize time in development.

Also, we are actively integrating the storing of user generated data in the cloud for easier and more efficient tracking of our team's KPI's.

APIs

We went with a simplistic approach and made sure not to over-engineer our application, a list of APIs used include:

(Subject to change after integration of cloud storage)

  • Firebase Authentication for authenticating users.
  • Firebase Firestore for storing user's credentials.
  • SecureStorage for encryption of sensitive user data on user's device storage.

Challenges, Limitations and Issues In Development

  • Although a lot of positive feedback has been recorded from the user testing carried out, we anticipate a few scaling issues as the number of users increase on the application.
  1. Performance may be reduced as the number of read and writes increase on the database.
  2. All users are limited to 1GB of storage on the database. This is due to the free tier quota used during development.

Key Observations and Takeaways

  • As a developer, being involved in the early stages of research and other stages leading to implementation helps to provide more insight and understanding of the product specifications.
  • Communication is key when working with a cross-functional team.
  • Being dynamic and adaptable to unfavorable conditions in the course of development proved to be crucial and important.

Future Steps:

  • Currently, we are still working on deciding to continue with this application. We are all looking to get more experience in our fields and although it was an amazing experience to build and re-iterate according to user feedback. 
  • In regards to if we pursue the application, we have feature sets and new hypothesis that can help us achieve a V2 of the application. This would include users feeling more encouraged to use the app more. Certain feature sets we have discussed are badges for different goals they have achieved. Creating prompts and encouraging daily affirmations and building push notifications if individuals want to create daily habits of journaling. 
  • In regards to a future state, we want to be able to one day connect users with more professional assistance. This is an avenue we want to explore once we build more cadence with users and more user data. 

Learnings

Product Manager Learnings:

Rhea Narula

  • The importance of listening Empathize and listen as everyone has ways of voicing their ideas and opinions.  
  • Trusting the task and the process. Building clear expectations for yourself and your team allows the team to thrive, give their opinions, and gives a chance for everyone to own their skills and teach others on the way!
  • Prioritize features that deliver user value + learning vs those that are ornamental. There is also so much more to a feature. The small component can be so much more to a user.

Designer Learnings:

Kevin Wang

  • As a designer, good is better than perfect. Every week, there should be some handoff or presentation to the team for feedback.
  • Setting a primary method of communication with the Dev team and really fostering that relationship. It was an amazing experience as I updated the design and my dev team implemented it into code at the same time via Discord.

Designer Learnings:

Jo Sturdivant

  1. Adapting to an Established Team: Joining the team in week 6 of 8 was challenging, as I had to quickly adapt to existing workflows, dynamics, and goals. This mirrors real-world situations where you often integrate into teams mid-project, and flexibility is essential.
  2. Work-Blocking for Efficiency: With only two weeks to complete the project, I learned the importance of a structured work-blocking system. This approach allowed me to manage my time effectively and meet deadlines under pressure.
  3. Making Data-Driven Design Decisions: Unlike my past projects, I had to rely on research conducted by others. This was a valuable experience in using pre-existing data to guide design decisions, helping me focus on the core insights without starting from scratch.

Developer Learnings:

Jesse Abuaja

  • Software Development Pipeline: As a developer who has mostly worked on personal projects, it was a huge learning experience for me being involved in the development cycle of a real product, right from the ideation phase to the deployment phase and also being enlightened on how the development pipeline of a software product truly works.
  • Spotting red flags in product development: Over the course of development, I learnt the importance of spotting and identifying red flags as early as possible in development as this plays a crucial part when it comes to time management, feature prioritization and much more.

Developer Learnings:

Vanady Beard

&

As the back-end developer, I learned how important it is to create efficient and reliable systems that support the entire application. This experience also taught me the importance of optimising the database and ensuring the backend is scalable and easy to maintain.

Developer Learnings:

Stephen Asiedu

&

As a back-end developer, I've come to understand the importance of being familiar with various database systems and modules. This knowledge enables me to build diverse applications and maintain versatility in my work. I've also learned that the responsibility for making the right choices rests on my shoulders, guided by my best judgement.

Developer Learnings:

Emmanuel Otuonye

&

  • As a self taught developer, working with a cross-functional team has been a huge step in increasing my confidence working on projects, also collaborating with another developer has been a valuable experience technically. Key takeaways for me include: a) Communication is key when working in team; b) Being involved in the processes leading to implementation is crucial to understanding the problem space.

Developer Learnings:

Maurquise Williams

&

  1. Process of Creating an MVP: Developing a Minimum Viable Product (MVP) taught me how to focus on delivering core functionalities balancing between essential features and avoiding scope creep.
  2. Collaboration in a Real-World Tech Setting: This experience taught me how to collaborate efficiently in a fast-paced tech environment, keeping the team aligned and productive, even while working remotely across time zones.
  3. Sharpening Critical Thinking and Problem-Solving Skills: This experience honed my ability to think critically and solve problems efficiently. By tackling challenges and finding quick solutions, I sharpened my decision-making and troubleshooting skills in a dynamic, real-world setting.

Developer Learnings:

Jeremiah Williams

&

All in all this experience was very awesome I learned that in coding with others being transparent is key

Developers Learnings:

Justin Farley

&

I learned how important communication is when working with a team. Communication provides understanding, advice, ideas, and much more. While working with the product team, I’ve found that communication keeps everything flowing smoothly. Working with a team also showed me that every member brings something different to the table and we all have to work together in order to align and meet our end goal.

Full Team Learning

  • The value of Async and organization, especially with all the various time-zones or work schedules. Async is an amazing way to get work done, build timelines and arrange your time.
  • Trust in your team members and collaborative work is a very important learning as it has helped all of us learn from each other and build quickly, while being agile to get to our MVP to production.