<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Rupam Biswas</title>
    <description>The latest articles on Forem by Rupam Biswas (@iamrupambiswas).</description>
    <link>https://forem.com/iamrupambiswas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2038629%2F3d1be007-35e4-42b8-a2ae-394d3468681b.jpg</url>
      <title>Forem: Rupam Biswas</title>
      <link>https://forem.com/iamrupambiswas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/iamrupambiswas"/>
    <language>en</language>
    <item>
      <title>Automating Birthday Emails with Python</title>
      <dc:creator>Rupam Biswas</dc:creator>
      <pubDate>Wed, 18 Sep 2024 17:46:30 +0000</pubDate>
      <link>https://forem.com/iamrupambiswas/automating-birthday-emails-with-python-1g4m</link>
      <guid>https://forem.com/iamrupambiswas/automating-birthday-emails-with-python-1g4m</guid>
      <description>&lt;p&gt;In the era of technology, automation has become an essential skill, allowing us to streamline repetitive tasks and increase productivity. One area where automation can truly shine is in email management. As a Python learner eager to enhance my skills, I recently embarked on a project to automate birthday emails. This project not only provided me with hands-on experience but also reinforced the practical applications of Python in everyday tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Inspiration
&lt;/h2&gt;

&lt;p&gt;The idea for this project stemmed from a common challenge: remembering birthdays. With friends and family spread out across different time zones, it’s easy to forget special dates. Automating birthday greetings can ensure that no one is left out, making it a thoughtful gesture that requires minimal effort on my part.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Overview
&lt;/h2&gt;

&lt;p&gt;The goal of my project was simple: create a script that sends automated birthday emails to individuals whose birthdays fall on the current day. To achieve this, I used Python along with a few libraries, including pandas for data manipulation and smtplib for sending emails.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools and Libraries Used
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Python:&lt;/strong&gt; The primary programming language for the project.&lt;br&gt;
&lt;strong&gt;2. pandas:&lt;/strong&gt; A powerful data manipulation library that allows for easy reading and processing of CSV files.&lt;br&gt;
&lt;strong&gt;3. smtplib:&lt;/strong&gt; A built-in Python library for sending emails via the Simple Mail Transfer Protocol (SMTP).&lt;br&gt;
&lt;strong&gt;4. Random:&lt;/strong&gt; To select a random letter template for personalized emails.&lt;/p&gt;
&lt;h2&gt;
  
  
  Step-by-Step Implementation
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Setting Up the Environment&lt;/strong&gt;&lt;br&gt;
First, I ensured that Python was installed on my machine and set up a virtual environment for the project. I also installed the pandas library, which is not included in the standard library.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install pandas
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Creating the CSV File&lt;/strong&gt;&lt;br&gt;
I created a CSV file named birthdays.csv to store the names, birth dates, and email addresses of individuals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Crafting Letter Templates&lt;/strong&gt;&lt;br&gt;
To make the emails more personalized, I created a directory named letter_templates containing text files with birthday messages. The files were named letter_1.txt, letter_2.txt, and letter_3.txt, each containing a different message format. Each message included a placeholder for the name.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Writing the Python Script&lt;/strong&gt;&lt;br&gt;
The core of the project was a Python script that checks the current date against the birthdays in the CSV file and sends an email if there is a match. Here’s the complete code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from datetime import datetime
import pandas as pd
import random
import smtplib

# Your email and password
MY_EMAIL = "YOUR EMAIL"
MY_PASSWORD = "YOUR PASSWORD"

# Get today's date
today = datetime.now()
today_tuple = (today.month, today.day)

# Load birthdays from the CSV file
data = pd.read_csv("birthdays.csv")
birthdays_dict = {(data_row["month"], data_row["day"]): data_row for (index, data_row) in data.iterrows()}

# Check if today is someone's birthday
if today_tuple in birthdays_dict:
    birthday_person = birthdays_dict[today_tuple]

    # Select a random letter template
    file_path = f"letter_templates/letter_{random.randint(1, 3)}.txt"
    with open(file_path) as letter_file:
        contents = letter_file.read()
        contents = contents.replace("[NAME]", birthday_person["name"])

    # Set up the SMTP connection and send the email
    with smtplib.SMTP("YOUR EMAIL PROVIDER SMTP SERVER ADDRESS") as connection:
        connection.starttls()  # Upgrade to a secure connection
        connection.login(MY_EMAIL, MY_PASSWORD)  # Log in to your email account
        connection.sendmail(
            from_addr=MY_EMAIL,
            to_addrs=birthday_person["email"],
            msg=f"Subject: Happy Birthday!\n\n{contents}"
        )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. Testing the Automation&lt;/strong&gt;&lt;br&gt;
After writing the script, I ran several tests to ensure everything worked smoothly. I set different dates in the CSV file and verified that the correct email was sent. I also checked that the letter templates were correctly formatted and that the names were replaced appropriately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Security Considerations&lt;/strong&gt;&lt;br&gt;
To ensure security, I handled my email credentials carefully. Instead of hardcoding them directly in the script, I used environment variables or a configuration file to store sensitive information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;p&gt;This project provided me with valuable insights into the world of automation and practical applications of Python:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Understanding Email Protocols:&lt;/strong&gt; I gained a foundational understanding of how SMTP works and how to send emails programmatically.&lt;br&gt;
&lt;strong&gt;2. Data Handling with pandas:&lt;/strong&gt; I learned how to read and manipulate data from CSV files, a crucial skill for many data-driven projects.&lt;br&gt;
&lt;strong&gt;3. The Importance of Personalization:&lt;/strong&gt; By using letter templates, I understood the impact of personalization in communication, even in automated processes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;p&gt;Looking ahead, I’m excited to explore further enhancements for this project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Using OAuth2:&lt;/strong&gt; Implementing OAuth2 for secure authentication instead of using plain email passwords.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scheduling Emails:&lt;/strong&gt; Using Python’s schedule library to run the script at a specified time each day automatically.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adding More Features:&lt;/strong&gt; Including features like sending reminders a few days before someone’s birthday.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Automating birthday emails using Python has been a rewarding experience that deepened my understanding of automation, data handling, and email protocols. I encourage anyone looking to improve their programming skills to embark on similar projects, as they provide practical experience and valuable learning opportunities.&lt;/p&gt;

&lt;p&gt;If you're interested in the full code, check out my GitHub repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/iamrupambiswas/Birthday-wish-automation-python" rel="noopener noreferrer"&gt;GitHub Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to share your thoughts or experiences with automation in the comments below. Happy coding!&lt;/p&gt;

</description>
      <category>python</category>
      <category>automation</category>
      <category>100daysofcode</category>
      <category>programming</category>
    </item>
    <item>
      <title>My Journey in Mobile App Development: Completing the "Mobile App Development Ecosystem" Module</title>
      <dc:creator>Rupam Biswas</dc:creator>
      <pubDate>Sun, 15 Sep 2024 06:19:02 +0000</pubDate>
      <link>https://forem.com/iamrupambiswas/my-journey-in-mobile-app-development-completing-the-mobile-app-development-ecosystem-module-49j6</link>
      <guid>https://forem.com/iamrupambiswas/my-journey-in-mobile-app-development-completing-the-mobile-app-development-ecosystem-module-49j6</guid>
      <description>&lt;p&gt;Hello, Dev Community! 👋&lt;/p&gt;

&lt;p&gt;I’m excited to share that I’ve just completed the second module, &lt;strong&gt;'Mobile App Development Ecosystem'&lt;/strong&gt; as part of the &lt;strong&gt;IBM iOS and Android Mobile App Development Professional Certificate&lt;/strong&gt; course. This module was incredibly informative and has equipped me with essential knowledge and skills that I’m eager to apply in my projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Module Overview
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Overview of Mobile Development&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Mobile Platforms and Operating Systems: Explored various platforms, focusing on iOS and Android.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Types of Mobile Apps: Learned about different app categories and their use cases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mobile App Development Process: Gained insights into the complete lifecycle of app development.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Agile Development Methodology: Understood agile principles and their importance in modern development.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Expert Viewpoints: Engaged with insights from industry experts on best practices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Activity: Testing a Mobile App: Participated in hands-on testing activities.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Understanding the Mobile App Development Ecosystem&lt;/strong&gt;&lt;br&gt;
Development Languages and Frameworks: Reviewed the languages and frameworks used in mobile app development.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;UI/UX Design: Learned the fundamentals of creating user-friendly interfaces.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Practical Work: Created a conceptual mobile app business plan with wireframes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mobile IDEs and Tools: Explored various Integrated Development Environments (IDEs) and tools.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testing Tools and Emulators: Gained experience with testing tools and emulators.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;App Market and Distribution Platforms: Discussed different platforms for app distribution.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Module Summary and Graded Quiz&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Summary: Reviewed key takeaways from the module.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Graded Quiz: Completed a quiz to reinforce my understanding.&lt;br&gt;
Looking Ahead&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvc46bn51t0ztask5y18s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvc46bn51t0ztask5y18s.png" alt="Mobile App Development Ecosystem" width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Completing this module has strengthened my foundation in mobile app development, and I am eager to apply these concepts in upcoming projects. If you’re interested in mobile app development or considering a similar course, I highly recommend it!&lt;/p&gt;

&lt;p&gt;Feel free to connect with me on &lt;a href="https://www.linkedin.com/in/iamrupambiswas/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; or &lt;a href="https://x.com/iam_rupambiswas" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. I’m always eager to network, share insights, and collaborate on projects!&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>webdev</category>
      <category>agile</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Embarking on My Mobile App Development Journey with IBM</title>
      <dc:creator>Rupam Biswas</dc:creator>
      <pubDate>Wed, 11 Sep 2024 17:21:52 +0000</pubDate>
      <link>https://forem.com/iamrupambiswas/embarking-on-my-mobile-app-development-journey-with-ibm-250m</link>
      <guid>https://forem.com/iamrupambiswas/embarking-on-my-mobile-app-development-journey-with-ibm-250m</guid>
      <description>&lt;p&gt;Today marks an exciting new chapter in my career as I officially started the &lt;strong&gt;IBM iOS and Android Mobile App Development Professional Certificate&lt;/strong&gt; course. With the rapid evolution of technology, I felt it was essential to enhance my skills in creating innovative mobile applications that can address real-world challenges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First Module: Mobile App Development Ecosystem&lt;/strong&gt;&lt;br&gt;
As part of the first section of the course, I completed the Mobile App Development Ecosystem module. This module provided a comprehensive overview of mobile app development, covering a range of topics that are crucial for anyone looking to thrive in this field. Here are some key takeaways from my learning experience:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Differences Between Web Apps and Mobile Apps&lt;/strong&gt;&lt;br&gt;
One of the first concepts I explored was the distinction between web apps and mobile apps. While both serve essential functions, they cater to different user needs and environments. Mobile apps are designed for mobile devices, providing a more tailored user experience, while web apps operate through browsers and can be accessed on various devices.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3iyomwaynjdua9re8iqy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3iyomwaynjdua9re8iqy.png" alt="Image description" width="800" height="196"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Evolution of Mobile Apps&lt;/strong&gt;&lt;br&gt;
Understanding the evolution of mobile apps was fascinating. From the early days of simple applications to today’s complex and feature-rich platforms, mobile apps have transformed significantly. This evolution is driven by advancements in technology and changing user expectations, pushing developers to innovate continuously.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros and Cons of Mobile App Categories&lt;/strong&gt;&lt;br&gt;
I also delved into the pros and cons of different mobile app categories, including native, hybrid, and web apps. Each category has its strengths and weaknesses, and choosing the right type depends on the project’s specific goals, target audience, and resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Apps Work: The Role of Cloud Computing&lt;/strong&gt;&lt;br&gt;
A significant part of my learning focused on how mobile apps work, particularly the role of cloud computing and hosting services. I learned how cloud technologies enable scalability, performance, and efficient data storage, allowing developers to build robust applications that can grow with user demands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hands-On Learning Experience&lt;/strong&gt;&lt;br&gt;
In addition to theoretical knowledge, this module included practical challenges and hands-on exercises that helped solidify my understanding. Working with cloud tools for mobile development provided me with valuable insights into the tools and technologies available for building modern applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Looking Ahead&lt;/strong&gt;&lt;br&gt;
Starting this course has been incredibly exciting, and I’m eager to dive deeper into mobile app development. I look forward to applying these insights in upcoming projects and continuing my learning journey.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Call to Action&lt;/strong&gt;&lt;br&gt;
I would love to hear from fellow developers about their experiences in mobile app development! Do you have any tips, resources, or recommendations to share?&lt;/p&gt;

</description>
      <category>development</category>
      <category>android</category>
      <category>ios</category>
      <category>mobile</category>
    </item>
  </channel>
</rss>
