WORK IN PROGRESS
This is a spring boot based application, that I am building for a charity organization that I volunteer for. They currently have many employees who aren't very tech savvy and also do not have resources for employee traiing. They need a more intuitive way of getting their daily tasks done without much end user training. It is very costly for them to hire paid employees, so volunteers like me try to help in any fashion we can by donating either time, money, resources in the form of code like this project.
Their main pain point today is performing mail merges to send emails across vast set of donors/patron emails. Crafting an email draft is easy for them, doing mail merge is not. Their pain point is that they come to know of erroneous entries (names or gmail addresses) after the entire mail merge task is completed via gmail. And some one has to look into "inbox" folder , to see which recipients did not get the email and then accordingly make changes to mailmerge record source file. This is time consuming for them because they have to email tens of thousands of patrons/donors very frequently. They would prefer errors in record source ( e.g. spreadsheets in csv format), being identified upfront, before an email send operation is attempted.
Hence this spring boot app is being worked upon as backend. It will be used via a custom frontend. This spring boot app provide api's that would capture recipient data and store in memory and report errors upfront before an email send operation is attempted via the custom frontend (being worked upon separately).
Mail Merge API requirements :
- MailMerge API should allow to add few records of recipients on demand or allow to upload in bulk via a csv file.
- MailMerge API's should indicate errors in first, middle or last names and email addresses upfront.
LIST OF API's : => POST /v1/mailMerge/recipients/create -
- Input - Takes JSON array of recipients
-
{ "firstName": "Sam", "lastName": "Dsouza", "emailAddress": "samd@gmail.com" }, { "firstName": "Alice", "lastName": "Laker", "emailAddress": "alaer@gmail.com" }, { "firstName": "Alicia", "lastName": "Laker", "middleName" : "M", "emailAddress": "aliciaL@gmail.com" } ]
[
-
- Output - Returns 201 on success or 400/500 on failure
=> POST /v1/mailMerge/recipients/upload
- Input - Takes file of type "text/csv" as input mapped to key "csvfile".
- Output - Returns 201 on success or 400/500 on failure
USAGE EXAMPLES :
- CREATE API REQUEST




