Inspiration
We wanted to create a project that turns everyday emotions into something visible, gentle, and meaningful. Instead of treating mood tracking as a cold list of labels, we imagined a social garden where each daily feeling becomes a flower. This idea combines emotional expression, visual storytelling, and friendship into one interactive experience.
What it does
PetalPal is a social mood garden where users can create a profile, record what happened during their day, and let the system turn that experience into a flower. Each flower reflects a mood and carries meaning, allowing the user’s garden to grow over time. Users can also visit friends’ gardens, leave supportive messages, and interact with their flowers in a playful way.
How we built it
We built PetalPal with a JavaScript-based full-stack structure. The frontend uses HTML, CSS, and JavaScript to create the interactive garden interface and visual layers. The backend uses Node.js and Express to manage users, gardens, flowers, visits, and friend interactions.
We also added a machine learning component for mood prediction. We used the GoEmotions dataset, mapped its fine-grained emotion labels into five project moods: happy, calm, tired, sad, and stressed, and generated our own training dataset. Then we trained a Naive Bayes text classifier so that when a user types what happened today, the system can automatically predict a mood and generate a matching flower.
Challenges we ran into
One challenge was connecting the machine learning workflow to the rest of the application. Preparing the dataset, mapping labels into our own categories, training the model, and then connecting the prediction result back into the garden flow took careful debugging.
Another challenge was frontend and backend integration. We had to make sure user actions, flower updates, garden rendering, friend visits, and support messages all stayed synchronized. Testing also took a lot of effort, especially for frontend interaction logic and DOM-based behavior.
Accomplishments that we're proud of
We are proud that PetalPal is not only functional, but also expressive. It combines emotion tracking, social interaction, and visual design in a way that feels personal and creative. We are also proud that we successfully integrated a custom-trained mood classifier into the project instead of relying only on manual mood selection.
What we learned
Through this project, we learned how to connect frontend interaction, backend routes, data models, and testing into one complete application. We also learned the basics of building an ML pipeline: finding a dataset, preprocessing labels, generating training data, training a model, and exposing predictions through an API.
What's next for PetalPal
In the future, we want to improve the mood classifier so that predictions are more accurate and more nuanced. We also want to expand the flower database, add long-term mood summaries, improve friend interactions, and make the garden even more personalized with richer visuals and seasonal themes.
Log in or sign up for Devpost to join the conversation.