BloomMate Project Blog

This software project is part of a project for a software engineering class at Hanyang University Information Systems Dept.

The class is in collaboration with LG Electronics

Please note that SmartCottage and Tiiun, which will be mentioned in this blog, are not currently commercially available products.

① Introduction & Motivation

BloomMate is an application designed for individuals who want to cultivate plants in LG Electronics’ SmartCottage. SmartCottage is a compact modular housing, resembling a duplex studio, with a size of 31.4m2 (approximately 9.5 pyeong). It incorporates advanced energy and HVAC technologies, as well as premium appliances. However, SmartCottage does not have an outdoor garden. Recognizing that many users purchase SmartCottage as a secondary residence, we have determined that a garden is essential. This is due to several factors:

  1. The increasing number of urban households engaged in plant cultivation.
  2. The positive effects of having plants on psychological and emotional well-being and overall life satisfaction.
  3. The growing trend of individuals cultivating gardens after retirement or in their secondary homes.
LG Electronic — SmartCottage

We assume that LG Electronics’ Tiiun will be used for the external garden. Tiiun is specifically designed for indoor plant cultivation, so it will also be employed for the outdoor garden. We envision introducing a new product that incorporates Tiiun for the SmartCottage’s outdoor garden. This will further enhance the IoT connectivity feature of SmartCottage, allowing for seamless integration of all electronic devices.

LG Electronic’s — Tiiun (It is for indoor use)

Lastly, BloomMate aims to showcase the practicality of generative AI. User-provided information and BloomMate’s features are processed to generate data that can be used by generative AI. Generative AI then provides personalized information based on the input data and recommends suitable actions for the given situation. Additionally, BloomMate offers the inherent functionality of generative AI, allowing users to engage in conversations with their plants using chatGPT. Through BloomMate, users can explore the numerous possibilities presented by generative AI.

Generative AI — ChatGPT

② What is BloomMate?

BloomMate is a mobile application that aims to facilitate convenient gardening for users. It offers features such as plant diagnosis and chat functionality with plants. The app focuses on plants grown in SmartCottage’s virtual Tiiun, an external garden. Users have the freedom to plant and grow four types of plants: strawberries, tomatoes, corn, and potatoes. BloomMate assists users throughout the entire process, from planting to harvesting fruits.

Screenshot of one screen of BloomMate. You can see the plants that are growing

You can check out BloomMate’s UI &UX design via the figma link above.

③ Core Functions & Architecture

The key features of BloomMate can be categorized into four categories:

  1. Plant Log Management — Manage logs throughout the process of planting and harvesting plants.
  2. Easy Plant Care — Provide detailed plant information, expert articles, Q&A, and AI plant diagnosis to help users easily grow plants.
  3. Enjoyable Plant Care — Enable chat functionality with a generative AI trained on the plants users are growing.
  4. Guide Appropriate User Actions — Utilize generative AI to provide personalized information and encourage specific actions.

The architecture of BloomMate is illustrated in the following diagram.

For a more detailed description of the Core Functions and Architecture, please see our Software Engineering Documentation.
https://github.com/BloomMate/BloomMate-Document

④ Project Management History

Now, let’s explain the main reason for writing this blog. While the BloomMate Documentation and Video have already provided a detailed explanation of what BloomMate is, its core features, and architecture (which you can experience firsthand by downloading and trying the application), we haven’t had the opportunity to discuss how our team has been executing and managing the project. Therefore, in this blog, we would like to provide some guidance on that.

The front page of your BloomMate team’s notion

Initially, we utilized Notion as our primary tool for project management. Notion was originally designed as a SaaS tool for project wikis. However, in 2023, Notion underwent a significant update that introduced the capability to create databases for project management. As a result, we were able to retain the benefits of the existing project wiki while also incorporating project management functionality within Notion.

Project page in Notion — You can see that there are a lot of tasks with subdocuments.

Secondly, we conducted regular meetings every Monday, which lasted for 3 hours. During these meetings, we followed a designated format for writing meeting minutes. The format consisted of three categories:

  1. 📣 Topic & Notice: This section included announcements and shared information that was important for all team members to know before the meeting. We also documented the progress of each individual’s tasks.
  2. 💬 Discussion Point: This category was dedicated to the actual discussions. It provided a space for exchanging ideas and engaging in meaningful conversations on various topics.
  3. 🥊 Action Item: In this section, we recorded the specific actions that each team member needed to take after the meeting. By separating the discussion points from the action items, we were able to distinguish the deliberation process from the final actions. This approach helped reduce emotional exhaustion that may arise during discussions.

Thanks to this approach, our team was able to work effectively, resulting in a significantly improved overall understanding of the product.

Example meeting minutes

Third, the project was divided into five stages: analysis, design, implementation, audit, and marketing. The project followed a waterfall model to ensure the creation of a high-quality final product. Although other methodologies like Agile or Scrum were considered, the waterfall model was deemed more suitable for this project. The focus of each stage is outlined below:

  1. Product Analysis: The main objective of this stage was to determine the functionalities of the product. Extensive research and review of references were conducted. The Product Requirements Document (PRD) served as a starting point for a thorough analysis of why specific functionalities should be included. Through AS-IS and TO-BE analysis, the team examined how the product could address users’ needs, problems, or pain points.
  2. Product Design: The goal of this stage was to prepare all the necessary components for product implementation. Starting with the design of the database tables, the team worked on creating information for static tables. Additionally, the contents of the .env files for both the frontend and backend were composed, and the structure of requests and responses were designed through API design.
  3. Product Implementation: This stage involved the actual implementation of the product. The final implementation code can be found on the BloomMate Github repository. Details regarding the distribution of tasks during implementation will be described in the fourth paragraph.
  4. Product Audit: Since there were no actual users, an internal Quality Assurance (QA) process was conducted for auditing purposes. When bugs or unintended functionalities were discovered, the person who identified them would document them in the QA and assign the responsible developer for resolution. The developer would then address the issues and update the QA completed database accordingly.
  5. Product Marketing: This stage involved preparing the product for presentation in collaboration with LG Electronics. This included creating a blog (like this one) and a separate team introduction blog on Notion. Additionally, a demo video was produced.

Please note that further details regarding the distribution of tasks during implementation will be provided in the next section.

Analysis, design, oversight, and marketing documents
QA board

Finally, I will provide a detailed explanation of how we implemented it. As mentioned, we added project management functionality to Notion, utilizing its task feature among other functions. In the task tab, we assign tasks to each team member and set deadlines. It is the responsibility of team members to manage the progress and completion status of their assigned tasks. Additionally, we have a special task category called “Backlog.” This is where we gather tasks that are not immediately feasible or of high priority, but still valuable to implement.

Task Board
Backlog

⑤ Conclusion

Today, in this article, we have explored the reasons behind the creation of BloomMate, its key features, and the project management approach. It has been a meaningful journey for the BloomMate team, spanning approximately four months. We sincerely hope that all readers of this article will find it beneficial and be able to create outstanding software.

--

--