Designing Your Go-To Friend Hangout Organizer
An App to Track Hangouts with Friends Keeping track of new restaurants and activities to do shouldn’t feel like navigating a cluttered mess on your notes app. Yet, that’s exactly the situation my friends and I were in - lost in a disorganized list within the Apple Notes app unable to really decide which place to try next. In order to transform this experience, I’m developing “WhereNow” - an app designed to bring order, excitement, and visual appeal to the experience of planning a hangout. I’ll walk through the journey of developing this project, starting with developing a MVP and selecting the right tech stack. We’ll then touch on modeling our tables to define a clear structure on how the app works. Alright, let’s get started. The Minimum Viable Product While there’s a lot of potential for incorporating advanced AI features, the initial goal is to quickly develop a product that my friends and I can use right away. This approach allows for quick feedback and iterative improvements. The core features of the Minimum Viable Product (MVP) will include: User Authentication: Secure login and signup functionalities to manage user profiles Personal Lists: Ability to create and manage individual lists of places and activities Group Collaboration: Option to create shared lists with friends within specific groups Review System: Functionality to add reviews for list items and view reviews from group members AI-Powered Summaries: AI-generated summaries of list items to assist in decision-making and offer a more playful experience The aim is to quickly launch a usable product, gather user feedback, and make improvements - adding features once these core functionality are nailed down. Tech Stack Selection WhereNow will initially launch as a browser application. While developing a mobile app makes the most sense, my expertise lies in building web products. This approach allows me to: Rapidly create an MVP with my existing skills Assess user interest in the product To ensure a secure and efficient development process, I have chosen the following technologies: Supabase: Provides backend services and a SQL database, including authentication and simplified database table creation Next.js: Enhances frontend performance with features like lazy-loaded images and server-side rendering. Will allow the development of a dynamic product landing page with Framer Motion animations Clerk (Optional): Offers an affordable authentication services with quick integration options (Google, Twitter, etc.) Claude AI: An advanced AI language model known for its safety and performance Modeling Tables Designing the database schema is important for ensuring efficient data manipulation and providing insight into the apps functionality. Below is an overview of the proposed tables for WhereNow: Table Name: users Description: Stores info about registered users Fields: id (Primary Key, Required): Unique identifier for each user name (Required): name or nickname of the user email (Unique, Required): Email address of the user Table Name: groups Description: Stores information about user groups. Fields: id (Primary Key, Required): Unique identifier for each group name (Required): Name of the group. Table Name: group_members Description: Associates users with groups, establishing a many-to-many relationship Fields: user_id ((Foreign Key to users.id, Required) group_id (Foreign Key to groups.id, Required) Table Name: lists Description: Stores lists that users create for themselves or for their groups Fields: id (Primary Key, Required): Unique identifier for each list name (Required) user_id (Foreign Key to users.id, Required) group_id (Foreign Key to groups.id, Required) Table Name: list_items Description: Stores items within created lists Fields: id (Primary Key, Required): Unique identifier for each item list_id (Foreign Key to lists.id, Required) name (Required): Name or title of the item. city (Optional): City where the item (e.g., restaurant) is located. completed (Boolean, Default: false, Required): Status indicating if the item has been visited or completed Table Name: reviews Description: Stores user reviews for list items. Fields: id (Primary Key, Required): Unique identifier for each review list_item_id (Foreign Key to list_items.id, Required) user_id (Foreign Key to users.id, Required): Identifier linking to the reviewer rating (Integer, Required): Rating given to the item (e.g., 1-5 stars). - comment (Text): Optional textual feedback Table Relationships Tables Relationship Reason users ↔ groups many:many Users can be part of many groups. Groups can contain many users users → lists one:many Each list can only have one “creator” groups → lists one:many Groups can have many lists, but each list must be associated

An App to Track Hangouts with Friends
Keeping track of new restaurants and activities to do shouldn’t feel like navigating a cluttered mess on your notes app. Yet, that’s exactly the situation my friends and I were in - lost in a disorganized list within the Apple Notes app unable to really decide which place to try next. In order to transform this experience, I’m developing “WhereNow” - an app designed to bring order, excitement, and visual appeal to the experience of planning a hangout.
I’ll walk through the journey of developing this project, starting with developing a MVP and selecting the right tech stack. We’ll then touch on modeling our tables to define a clear structure on how the app works.
Alright, let’s get started.
The Minimum Viable Product
While there’s a lot of potential for incorporating advanced AI features, the initial goal is to quickly develop a product that my friends and I can use right away. This approach allows for quick feedback and iterative improvements. The core features of the Minimum Viable Product (MVP) will include:
- User Authentication: Secure login and signup functionalities to manage user profiles
- Personal Lists: Ability to create and manage individual lists of places and activities
- Group Collaboration: Option to create shared lists with friends within specific groups
- Review System: Functionality to add reviews for list items and view reviews from group members
- AI-Powered Summaries: AI-generated summaries of list items to assist in decision-making and offer a more playful experience
The aim is to quickly launch a usable product, gather user feedback, and make improvements - adding features once these core functionality are nailed down.
Tech Stack Selection
WhereNow will initially launch as a browser application. While developing a mobile app makes the most sense, my expertise lies in building web products. This approach allows me to:
- Rapidly create an MVP with my existing skills
- Assess user interest in the product
To ensure a secure and efficient development process, I have chosen the following technologies:
- Supabase: Provides backend services and a SQL database, including authentication and simplified database table creation
-
Next.js: Enhances frontend performance with features like lazy-loaded images and server-side rendering.
- Will allow the development of a dynamic product landing page with Framer Motion animations
- Clerk (Optional): Offers an affordable authentication services with quick integration options (Google, Twitter, etc.)
- Claude AI: An advanced AI language model known for its safety and performance
Modeling Tables
Designing the database schema is important for ensuring efficient data manipulation and providing insight into the apps functionality. Below is an overview of the proposed tables for WhereNow:
Table Name: users
Description: Stores info about registered users
Fields:
-
id
(Primary Key, Required): Unique identifier for each user -
name
(Required): name or nickname of the user -
email
(Unique, Required): Email address of the user
Table Name: groups
Description: Stores information about user groups.
Fields:
-
id
(Primary Key, Required): Unique identifier for each group -
name
(Required): Name of the group.
Table Name: group_members
Description: Associates users with groups, establishing a many-to-many relationship
Fields:
-
user_id
((Foreign Key tousers.id
, Required) -
group_id
(Foreign Key togroups.id
, Required)
Table Name: lists
Description: Stores lists that users create for themselves or for their groups
Fields:
-
id
(Primary Key, Required): Unique identifier for each list - name (Required)
-
user_id
(Foreign Key tousers.id
, Required) -
group_id
(Foreign Key togroups.id
, Required)
Table Name: list_items
Description: Stores items within created lists
Fields:
-
id
(Primary Key, Required): Unique identifier for each item -
list_id
(Foreign Key tolists.id
, Required) -
name
(Required): Name or title of the item. -
city
(Optional): City where the item (e.g., restaurant) is located. -
completed
(Boolean, Default:false
, Required): Status indicating if the item has been visited or completed
Table Name: reviews
Description: Stores user reviews for list items.
Fields:
-
id
(Primary Key, Required): Unique identifier for each review -
list_item_id
(Foreign Key tolist_items.id
, Required) -
user_id
(Foreign Key tousers.id
, Required): Identifier linking to the reviewer -
rating
(Integer, Required): Rating given to the item (e.g., 1-5 stars).
- comment
(Text): Optional textual feedback
Table Relationships
Tables | Relationship | Reason |
---|---|---|
users ↔ groups | many:many | Users can be part of many groups. Groups can contain many users |
users → lists | one:many | Each list can only have one “creator” |
groups → lists | one:many | Groups can have many lists, but each list must be associated with one group only |
lists → list_items | one:many | List Items are associated with one list |
list_items → reviews | one:many | Reviews are associated with one list item, but list items can have multiple reviews |
user → reviews | one:many | Reviews are associated to only one user |
Conclusion
With the project's foundation established and the backend implemented on Supabase, we can turn our attention to designing the product's user interface. The design will significantly influence the frontend development, so let's dive into Figma to brainstorm!
Thoughts or suggestions? Please comment down below! Your feedback is invaluable to making WhereNow a tool that meets your needs.
(WhereNow Log 1)