Problem Background  

Have you ever struggled to choose a movie to watch during your free time due to an overwhelming number of options? You're not alone - according to a survey, 96% of respondents reported difficulty making decisions, and 20% of Americans experience indecisiveness. Decision-making can be stressful, but you don't have to go through it alone.

Research Insights

Pain Points

Based on our studies, those that are faced with a difficult decision experience negative emotions. During the decision-making process, people may feel overwhelmed and give up, experience frustration, become too tired to continue, and feel sad, lost, or even useless.

The biggest factors which make it difficult to decide are:

  1. Picking Incorrectly
  2. Too many options
  3. Lack of information

Out of the three biggest factors we will focus on the first two because having too much information and a lack of information conflict with each other. We also found that 52% of survey respondents spend an hour or more making decisions

Forms response chart. Question title: What do you find is the biggest factor that makes it hard to make a decision?. Number of responses: 25 responses.

Implementation Details

Tech Stack

Our project was built using React Native since we knew the project would be used as an android or mobile app.  Additionally, there were several NPM packages such as a React native drop-down, swiping component, and timer. Another addition was React Native Paper, a component UI library used to transfer data between screens. We are also using local storage and React Context.

Tradeoffs

Technically we can pass data between screens only with React Context, which is convenient because we don’t need to use an outside library.

Local storage is beneficial because if the page restarts, the data can be saved locally on each user's device

The Design 

The App was designed using Figma. Other tools, such as a Miro board, were also used to generate design ideas. We began the research and strategy by sending out surveys and constructing user personas, journey maps, and user flows. Following that, the wireframes and high-fid designs for the product were created. As a team, we focused on conducting usability tests and iterating the product to enhance usability.

Landing on the Solution

To solve this problem AmBee was created to have a simple and easy way to find the next movie you would prefer to watch. We wanted to have an interface with a minimal amount of information so the user can decide based on their first impressions. There will also never be a wrong choice as the user will be picking things that they prefer. Additionally, we wanted to have the user promptly pick their choices so they don’t take too long deciding on what to watch.

Explanation of the Solution

AmBee is a mobile application that assists users with finding movies that they would prefer to watch promptly. Our four key features enable efficient decision-making and facilitate the process of finding a movie to watch:

  1. To help users get up to speed with the app, we have an onboarding process in place. This helps familiarize those who may not be sure how to use it. 
  2. To create a sense of ease and comfort we have a swiping mechanism to save or discard movies. Just a quick flip to left or right and you will be choosing your next movie.
  3. We have implemented a timer and a card limiter to help you find a movie to watch more quickly. This way, you can spend less time deciding what to watch and start swiping right away.
  4. We have a "Surprise Me" button that allows users to skip finding a movie and let us choose one for them.

Challenges

One of the challenges we encountered was deciding on a solution to our problem. Initially, we wanted to create an all-in-one app that covered multiple topics, including food, books, and movies. However, due to technical and time constraints, we had to narrow down our scope and create a movie app instead.

Another challenge we faced was deciding how to present our application. There were two conflicting interpretations among the team regarding the number of cards displayed. The first interpretation was that we should give a limited number of cards, while the second was that we should give an unlimited number of cards and allow the user to select a limited number. We decided on the latter interpretation as it would allow more flexibility for our users.

Future Steps

As a team, we have decided not to continue pursuing this project due to our personal responsibilities. However, that does not suggest we didn’t have future plans for the application. We would have liked to implement some features, but couldn’t due to time and feasibility. 

Some features we wanted to include:

  • Group sessions - for friends or family to be included in a session
  • Statistics tracking for users - to see how they improved their decision-making habits
  • Celebratory animations - give the user a sense of accomplishment
  • Different categories (food, books, etc..)

Learnings

Product Manager Learnings:

Brian Chu

  • I learned that communication is key to the success of a project.
  • Alignment with the team on features and the project direction is crucial to success.
  • I learned that feedback provides a lot of new insights into the product’s development.

Designer Learnings:

Eden Hailu

  • I learned about the process of developing an end-to-end mobile application and all the logistics.
  • Understanding how to design products that meet the needs and goals of your users is essential to creating successful products. 
  • As a designer, I learned how it is important to be able to clearly and effectively communicate your ideas with team members  

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:

Alex Ayala

  • Understanding React Native and mobile app development
  • Implementing Async Storage
  • Expo React Native is easy for developing, but not the best for deploying

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:

Juan Mendoza

&

  • Time estimation won’t be perfect and to give some buffer
  • Learned to make tasks into smaller easily workable pieces
  • A better understanding of React Native

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

We learned that using an optimized kanban board provides accountability and helps complete tasks efficiently. Having an objective every week helped us with being aligned with which direction we are going to take the project. Frequent communication was something that was difficult, but essential to keep us motivated on the project.