<aside>

Cover(1).png

At-a-Glance 👀

Mail Buddy is a simple professional mail builder or generator powered by Gemini Ai.

Problem

<aside> 👉 There are issues that arise for first-time users when it comes to mailing

</aside>


Process

After understanding the problem needs and expectations, I designed an application based on the problem solving frameworks and created high-fidelity prototype.

User Flow

Group 1(1).png


Final design

Slide 16_9 - 1(1).png

Slide 16_9 - 2.png

Slide 16_9 - 3.png


Hands-on Development mail buddy

Checkout the live site here : https://huggingface.co/spaces/ahmadmizannh/mail_buddy

I used Streamlit to build the UI elements.

Gemini API key Input

# App Title
st.title("💌 Mail Buddy")
st.write("Generate professional emails effortlessly with Gemini AI!")

# Step 1: Gemini API Key Input (Temporary)
with st.expander("Gemini API"):
    gemini_api_key = st.text_input(
        "Enter your Gemini API Key",
        type="password",
        help="Your key will not be stored."
    )

    if not gemini_api_key:
        st.warning("Please enter your Gemini API Key to proceed.")
    st.write("""
    **How it Works**:
    - Input your Gemini API key.
    - Chat with Mail Buddy to generate your email.
    - Download the generated email as a text file.
    """)

image.png

Form Input

  with st.chat_message("ai"):
            st.write("Hello 👋 human, What is your email all about?")
        
    # Place the form and generated email output inside an expander
    #with st.expander("Generate Your Email"):
        # Input Form Section
    with st.form(key="email_form"):
        st.subheader("SECTION - Email Input")

        # Email subject field
        subject = st.text_input("Email Subject", placeholder="What is the subject of the email?")

        # Email content fields
        email_content = st.text_area(
            "Email Content",
            placeholder="What is your email all about? e.g., Provide updates on the project status or request details for a meeting."
        )

        # Sender and recipient name fields
        sender_name = st.text_input("Sender Name", placeholder="Your Name")
        recipient_name = st.text_input("Recipient Name", placeholder="Recipient's Name")

        # Tone selector
        tone = st.selectbox(
            "Select the tone of the email:",
            options=["Formal", "Friendly", "Persuasive", "Neutral"],
            index=0
        )

        # Submit button
        generate_button = st.form_submit_button(label="Generate Email NOW!")

image.png

Respond

 with st.chat_message("ai"):
            for role, message in st.session_state["chat_history"]:
                if role == "ai":
                    st.text_area("Generated Email", value=message, height=200)

image.png

How it works

https://youtu.be/CeW0hdtkmWE


What I Learned 🌱

Through developing Mail Buddy, I learned how crucial early user feedback is. Getting input during the initial stages helped me understand common email writing challenges, like finding the right words and tone. This insight led me to design a more user-friendly AI-powered solution that specifically addresses these pain points. The feedback process also guided the development of features like tone selection and guided input forms, resulting in a more practical and effective email writing tool.