Pack-Way
The ultimate packing checklist for camping trip
Problem Background
Camping and hiking require lots of preparation. Organizers have to communicate with their friends - the participants to figure out things to bring for the trip, the trails they want to visit, the selection of the campsite, and even expense management among the group. Outdoor enthusiasts need a way to prepare for their trip more efficiently because preparation always takes time and energy, especially with a group of people.
However, preparation for camping/hiking has become a disaster rather than an enjoyment nowadays. After numerous interviews and surveys, we found that people typically spend over 50% of the respondents spent at least three hours on preparation, which doesn't include the team meeting before the trip. Depending on their role in the group, people have to jump around at least two apps/websites to get the preparation done. Based on the survey, we found out 35% of people struggle with what to bring, 35% of people find it challenging to coordinate with friends, assign the task owner, and even split the expense afterwards.
The problem is that no practical solution on the market helps users better plan and coordinate the trip with their friends, hence elevating their overall camping/hiking experiences.
Solutions
Proposed Solution
Problem statement
How might we make the process of planning trips for hikers and campers more efficient and ensure they feel confident in their level of preparedness?
A possible solution will be an easy way for a user to select recommended pieces of equipment from the list, and they could also note down any additional equipment that may be helpful. This will help address the first pain point: figuring out what to bring to the campsite. There is also a need for reoccur items to be memorized so that they don't have to manually enter that item next time. In addition, the solution should enable users to receive activity recommendations from reputable websites so they won't miss out on anything exciting. The solution should also allow users to monitor each expanse and split it with each participant so that everyone can ensure they still hold on to their budget.
Scenarios
User Story #1
As a user, I want to list all my essential items, so I do not forget anything.
Scenario #1
Note down essential items
Acceptance Criteria:
1. Users can record items they want to bring and add to a shared to-do list.
- As a user typing the first few letters of their item in the search bar, a related item recommendation will then pops up
- If the item is not included in the database, then a new item placement will be created, then the user can place a tag or skip this process
2. User can select items based on category or type of activity
- As the user types the #tag in the top search bar, a list of recommendations will be presented based on the category.
3. User can see items previously created
- In the history log, user can browse their previous trip and check what they brought last time
User Story #2
As a hiker who enjoys trips with friends, I want to coordinate plans and responsibilities so that everyone knows what needs to be done.
Scenario #2
The checklist can be viewed by all users and tasks can be assigned to any user.
Acceptance Criteria:
1. Users can claim tasks they will be responsible for
2. For each list item, users can tap for options
- assign the task to themselves or mark as complete
- then their avatar will be visible beside the list item (implying they made changes)
- once user select all their tasks, a new personal to-do list will be created
3. User (leader) can assign tasks to each individual - future features
- Hold for bulk edit, then users can select multiple tasks to modify
Scenario #3
Receive recommendations from reputable sources
Acceptance Criteria:
1. User can browse recommended activities near the campsite.
- In the campsite section, once the user enters the location data, a list of recommended activities will be present, including websites, price and contact information.
2. User can browse recommended trails nearby
- In the trail section, once the user enters the name of the park, a full list of trails will then be present, including the distance and difficulties
Tech Implementation
Pack-Way was built using a MERN Stack (MongoDB, Express, ReactJS and NodeJS - as well as React-Redux/React-Toolkit) and will be hosted on Heroku.
Technical Challenges
What was the hardest part of development?
- Definitely coming in halfway and trying to piece together everyone’s time and code contributions.
Does your app have any scaling issues?
- The free Heroku plan will have its own traffic limits. Also, currently the packing list is set for a maximum of 3 friends – so will need to be scaled up for larger groups.
Future Implementation
Since we have got our devs in place on week 6, we can only be working on the first three primary user stories. Below are the features and the “Job” we want to develop in the future
User Story #4
As a user, I want to monitor my expenses and split them with friends.
Scenario #4
Dedicated screen for tracking, adding, and splitting costs
Acceptance Criteria:
1.Users can record the item they pay for
- Within the user's personal to-do list, the user can enter the amount of money they paid for that task
2.User can choose the number of people to split with
3.User can choose who is paying
4.Activities/Events costs will be added automatically here
5.Summary of costs can be viewed or exported via CSV
User Story #5
As an enthusiastic traveller, I want to schedule activities and make any necessary reservations to make the most of my trip.
Scenario #5
Create a simple itinerary/timeline with reminders
Acceptance Criteria:
1.Users can view the itinerary
2.Users can add custom activities or known activities from the official park website
3.User can import a basic template
4.Users can view common activities and add them to the timeline
- e.g. booking a campsite
5.User can set custom reminders based on recommended times
- e.g. grocery shopping one week before departure
Learnings
Product Manager Learnings:
Archie Han
- I learned how to coordinate with people with different expertise and speak their language while working with them.
- I learned how to communicate with my team to prioritize our tasks based on urgency and importance.
Designer Learnings:
Brandon Tomasone
1. Get something down on paper
- I hit designer’s block a few times. I learned to get my ideas on paper first and build up from there. I can always change it later.
2. Product managers are invaluable
- Archie kept me motivated, accountable, and allowed me to focus more on my own craft.
3. Developers help me stay grounded
- I don’t know if it’s the case for all designers, but I’m a total dreamer. Collaborating with developers showed me the value of narrowing project scope in order to ensure a solid MVP is produced.
4. Team communication is paramount
- Conversing with the entire team on design details leads to a superior product. Many of my design decisions were adapted after discussions among teammates.
Designer Learnings:
Jo Sturdivant
- 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.
- 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.
- 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:
Mallory Daniel & Robert So & Masih Abjadi
- A minimal but thorough design makes it super easy to jump in and follow along to create the frontend.
- Some features that seem simple may turn out to be quite complicated and add on time that you don’t have for development.
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:
&
Developer Learnings:
Maurquise Williams
&
- 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.
- 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.
- 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.