A mobile application that helps users maintain a more consistent sleep schedule.
How can we help individuals managing stress and various factors establish a more consistent sleep routine, leading to enhanced overall well-being?
I sometimes have a hard time falling asleep. I am a university student who has to pull all-nighters to complete assignments, study for exams and so on. This has led to me having an inconsistent sleep schedule. Occasionally I sleep at 10pm, other times I could struggle to sleep at 3am. In order to get a better and healthier sleep schedule, an application will need to be made that can purposely set schedules and reminders for sleep and also actively encourage you to go to bed. This application will be called SnoozeSense.
In today's fast-paced world, an increasing number of individuals are grappling with sleep-related issues that can have a profound impact on their physical health, mental well-being, and overall quality of life. Modern lifestyles, demanding schedules, and the prevalence of digital devices have contributed to disrupted sleep patterns and poor sleep quality for many. Insufficient sleep and irregular sleep schedules have been linked to a range of health concerns, including fatigue, decreased cognitive performance, mood disturbances, and even chronic conditions like obesity and cardiovascular diseases.
User Pain Points
From the interviews conducted, these are the pain points we realised:
- It is hard to maintain a consistent sleep schedule due to school or work demands.
- High phone usage leads to procrastination which leads to late nights
- It is difficult to feel motivated to sleep on time
We conducted many interviews and these are our findings:
- The respondents all had an inconsistent schedule.
- The respondents did not use sleep tracking applications.
- The respondents had a routine before they sleep.
From the interviews that were conducted, people tend to have an inconsistent sleep schedule due to phone usage, work requirements or studies. These are all life activities that could cause us to not sleep at the time that we should. Another reason. From the interviews, why people do not sleep on time is due to stress. In a recent article, it is stated that stress is one of the main factors of sleep deprivation due to it stopping the mind and body from relaxing. The stress could come from work, school, relationships, and so on and so forth.
Based on our target users’ pain points, we knew we wanted to work on the following features:
- In order to alert the users when they need to get ready to sleep, we have implemented a feature that lets them set their pre-sleep routines like brushing their teeth, taking off their make-up, etc and also lets them set their bedtime and wake up time. It also sends them a notification when it is time for them to start their routine and also when it is their bedtime.
- In order to motivate the users to sleep better, we have implemented a feature that gives them challenges daily/weekly to complete.
- In order to help the users curb procrastination, we have implemented a feature that lowers the brightness of the phone when it is bedtime and increases the brightness of the phone when it is wake up time.
Iterative Design Learnings
Users responded well to:
- Visual Design: users enjoyed the dark mode, color palette and icons. Felt it made the app enjoyable to use, and added personality to the app.
- Simple and Straightforward Steps: Specifically in the onboarding steps, and task creation users felt that each step was necessary with great visual cues and clear information as to what to do and what step the user was at.
- Making Changes: Users appreciated the ability to either edit or “set up later” when setting up their alarms, creating a task or editing their sleep schedule.
Users didn’t respond well to/were confused about:
- Having set times for night routine: Some users felt that having a set “start” and “end” time when creating a task for their night routine felt too strict and not realistic in terms of their daily night routine.
- How to improve: With this, it may be best to have users input a start time for the task, and have the end time optional so that users can have a flexible routine and not feel tied down to certain schedule while still keeping the user accountable in their tasks by reminding them when the task starts.
- Challenges: When some users first opened the app, they asked the question to themselves, “what are the challenges?” but then when they looked through the Challenges page more they realised what it is and meant.
- How to improve: To improve this, maybe having a short description or either an example of a challenge on the home page show up (for users with no challenges started) so that at first glance, visually they get an understanding of what the challenges are and how they would look when the user starts one.
Where is it hosted?
In development, it is hosted on Expo Go if one of the devs has it running. We are currently working on getting the paperwork in order to submit the app to the Google Play Store. The app will be available for Android only.
What is your tech stack?
Authentication: Firebase Authentication
Front end: React Native & Expo
High level journey of a request
Conceptualization: A key feature is identified by the team (i.e. user authentication)
- Feature is prioritised based on necessity (i.e. authentication = high priority)
- Devs decide who will start the feature.
- Dev researches available tech, requirements & constraints (i.e. Firebase Authentication pros and cons)
Development: Dev codes up the feature. If one hits a snag, they do more research or ask the other dev for support. If they get very stuck, the devs swap tasks. If a task is still stuck, it will be shelved in favor of starting more features
Testing: Devs test each other’s features before merging it into the main project
Merge: If everything looks ok we merge the feature into the main project.
What was the hardest part of development?
Learning a whole new framework and tech stack while building an app
Does your app have any scaling issues?
- One of the biggest scaling issues for now is the lack of a well-defined API. We currently have several ways to get/post to and from the database or authentication services, and methods that restrict the data that can be sent, but they can be easily sidestepped even accidentally.
- Firebase will charge us money if we surpass a certain amount of read/write requests per day and we don’t have a budget.
What are some key takeaways?
- Iterative Development: breaking down features into manageable, incremental steps where we can ensure each component receives enough attention before moving onto the next.
- Effective Prioritisation: Prioritising features based on their impact and importance to let us allocate our resources more efficiently
- Regular Refinement: Continuous evaluation and refinement of our project roadmap so we can adapt to requests and our own learning curves
We will be continuing in the development of the application, and adding more features to make sure it meets all the needs of the users.
Product Manager Learnings:
Co.lab was a very interesting experience for me. I not only learnt, but was able to work in a team to conduct user research, prioritise features and produce spec documents. I really enjoyed writing spec documents. It was good interviewing potential users to understand their pain points and formulate user stories. I also enjoyed working with the designer and developers. They are very talented people who know what to do and how to do it. This experience showed me how much communication and teamwork are important in order to properly work in a product team.
Having the opportunity to work in a cross functional team through Co.Lab has helped me grow as a designer. Working with our product manager and developers, it has helped shape my understanding as to what goes into creating and shipping out a well rounded product- a product that not only meets users needs from a product designer perspective, but one that aligns with the “company’s” vision and is technically feasible. I am grateful for this experience, getting to be a part of a team where we can support, learn and challenge one another to do our best to create a product that solves a problem and is meaningful to users.
Taking on the full development of an app was quite the challenge. It really highlighted the importance of teamwork and keeping each other accountable. Our Project Manager's weekly meetings and daily check-ins kept us on track, while the creative input from our designers brought a great aesthetic to the project. As a dev team, we learned to lean on each other, helping out where one of us had weaknesses. It was a collaborative effort that helped us navigate through the challenges and move the project forward.
Co.Lab has been an invaluable learning journey! Being part of a cross-functional team has enriched my understanding of collaboration and working together to refine our product’s vision. Our product manager and designer’s work elevated my understanding of a genuinely user-centric design, and their thoroughness and attentiveness made many parts of development easier. As a dev, I learned the importance of effectively communicating with technical specs, vision boards, and regular check-ins to prioritise key features and keep the team on the same page. During development, it was both demanding and fulfilling to learn new technologies and apply them on the fly, and I am excited to take those hard skills with me as well. I’m very grateful to have been part of this project and am looking forward to seeing what my very capable teammates do next!
Full Team Learning
As a team, we learnt how to communicate very well and also prioritise functions. We also learnt that everyone’s ideas and contributions are valuable and nobody can do everything on their own without others.