Inspiration
In these difficult times, it can be challenging to stay connected with friends and family while fostering a sense of community. We originally wanted to make a website that sends messages out to a person's loved ones and friends automatically after they pass on; however, we quickly realized that there was no legal way to get this data without the user's permission, so we rebranded to a website that allows individuals to sends emails to people with the text being modified with the Gemini API to fit the tone of the message being sent to the person based on their relationship with you, thus strengthening the well being of the community by delivering healthy hearted messages to people to keep them together.
What it does
Upon arriving at the page, the user is prompted to enter the recipient's email address. After doing so, the user is then asked to enter their own name, the recipient's name, and the relationship to the recipient. Afterwards, the user is then prompted to write the body paragraph of the email, which will be modified based on the recipient's relationship.
How we built it
For the front end, we used React + Vite, alongside the nodemailer package, which allowed us to send emails to different people While for the back end, we used C++ for the Gemini API, and to fulfill the Safe Software Challenge, we utilized as many of the modern C++ programming principles as possible, utilizing OOP, using classes and objects, minimizing deep copies and utilizing strong third-party libraries instead of implementing their behaviours with raw pointers. It was surprising just how intuitive it is to build backend routes in C++.
Challenges we ran into
Our two most significant challenges were image issues with using Nodemailer and how it kept sending broken images. As for the 2nd challenge, we struggled quite a bit to make Nodemailer handle inputs from the user with JSON files
Accomplishments that we're proud of
Being able to write most of the backend in modern C++ and creating a basic functioning web page that can send recipients' emails that can fit the user's relationship
What we learned
Using C++ for web development can be challenging; errors and integration issues often occur when attempting to make a package (nodemailer) accept JSON files via ports.
What's next for Dearly
As for what's next for Dearly, we have many ideas from our original brainstorm that were not fully implemented due to time constraints. These ideas included:
- Formatting a letter with images in between paragraphs
- Changing the UI background based on the season or holiday
- Scheduled emails
- Having pre-ready templates based on the user's responses to the questions
- Making the text even more fitting to the vibe/tone based on the user's responses to the questions

Log in or sign up for Devpost to join the conversation.