Skip to main content

Posts

Showing posts from October 29, 2022

How and why I designed a meeting (iCalendar) library

Greetings! Have you ever thought about how to send a meeting event programmatically? In one of the projects I worked on, there was a requirement to send the appointment information to the user (in addition to visualizing it in our UIs). This is when I thought to do this as a meeting request. How can we do that? We learned that these calendar applications follow a standard format, that is "icalendar". Now my job is to create these .ics files. We investigated a few existing libraries as well but I was not happy with them as I wanted to send it as a meeting request but it did not work with existing libraries. At the same time, we have a lengthy process when introducing new libraries. Hence, why don't I build my own library 😉? What is iCalendar? The iCalendar is the standard specification for calendaring and scheduling events. It allows users to store and exchange calendaring and scheduling information such as events, to-dos, etc. According to the specification u

How and why I designed an email library

 Greetings! How do you send emails using Java? You would probably use a free library/framework like Spring or anything available. Or, you might write a simple email-sending class. However, when I needed an emailing functionality for one of the requirements, I decided to do more. Why? In larger projects, we always should think about the bigger picture. Adding a new library should be done with a lot of investigation Module-only features have no value for the product That is why I thought to give this an extra effort and designed an internal email library. General idea This is simple. Any team should be able to use this library without depending on any other external libraries. Also, the email API can have any implementation without impacting consumer modules. Existing libraries Initially, I thought to use Spring email but Spring core doesn't come with it. It looks like Spring should have separate jars for this. But anyway this will not help me now. There are other email libraries but