growupanand / ConvoForm

Create interative conversational forms
https://convoform.com
GNU Affero General Public License v3.0
66 stars 26 forks source link

Implement email service for sending emails #248

Open growupanand opened 5 months ago

growupanand commented 5 months ago

For sending emails (Promotional, Feature updates etc) to our users, we need to implement email service.

Tomkndn commented 5 months ago

Hey, looks interesting to me I want to work on this project. But I need to know the brief description of the issue. Upto now i understood for sending emails I will use Nodemailer and using this we can create email templates and send emails. is this right? or anything I'm missing?

growupanand commented 5 months ago

You are right, here is the brief description.

Currently, if you use WebApp, there is no email service in it that sends emails to users (execpt from the clerk authentication provider itself). We want to send emails to users to interact with them. Below are some cases where I want to send emails to users:

Related to the platform

Related to the data

You can use Nodemailer or any better option if available, Let me know your plan and we can discuss for this.

Tomkndn commented 5 months ago

I think Nodemailer will be the great option. Basically when a user submits a form , the form should be sent to the user via email is the main motivation? As because updates on plan, exporting a file, analytics should be monthly otherwise the user will be frustated.

growupanand commented 5 months ago

Yes, so we can set schedules for the types of emails, like weekly, monthly, etc. But we will implement this whole feature divided into subtasks, which I mention in the description. So right now, we can focus on setting up email infra and service. once we have a service to send email we can decide the schedule later.

Also, are you going to use react-mail for the templates?

growupanand commented 5 months ago

check this one also: https://resend.com/nextjs,

Let me know your plan before you start working on it.

growupanand commented 5 months ago

@Tomkndn assigned to you.

Tomkndn commented 5 months ago

Assigned to me , Looks good. 1st task is to build email infrastructure which includes react-email for email templates. Instead of nodemailer your suggestion is resend okay works fine. My question is when to send email after the submission of forms or any other work.

growupanand commented 5 months ago

Just create a PR for the first task - https://github.com/growupanand/ConvoForm/issues/255, don't worry about the scheduling of sending mail.

Tomkndn commented 5 months ago

I have implemented the email infrastructure. So, I have to raise the PR for #255 issue right? My suggestion is to send email when a new user signup to the website.

growupanand commented 5 months ago

Yes, you can raise the PR for https://github.com/growupanand/ConvoForm/issues/255

Tomkndn commented 5 months ago

What about the signup email and please label the issue under gssoc24 contribution.

growupanand commented 5 months ago

Lets do it step by step. First, create email templates in this issue - https://github.com/growupanand/ConvoForm/issues/265.

Also i am not able to pick your name, can you comment on this issue - https://github.com/growupanand/ConvoForm/issues/255

image

And gssoc24 is not a valid label, I have assigned gssoc label which is recommended in guidelines of GSSoC.

Tomkndn commented 5 months ago

Should I create a new branch or just do it in the main? Also those 2 issues I have solved should be Raised with 2 different PRs?

growupanand commented 5 months ago

Should I create a new branch or just do it in the main? Also those 2 issues I have solved should be Raised with 2 different PRs?

Since these are are now independant subtasks and we are doing it step by step, you can create seperate branches and PRs for them. After merging the first step PR you can rebase your branch with main branch.

growupanand commented 4 months ago

@Tomkndn, can you please share the status?

Tomkndn commented 4 months ago

We were going to discuss it in discord afterwards, but then you were off.