Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a way to sign up for Tuesday emails only #87

Open
kentonh opened this issue Sep 25, 2017 · 9 comments
Open

Add a way to sign up for Tuesday emails only #87

kentonh opened this issue Sep 25, 2017 · 9 comments

Comments

@kentonh
Copy link
Member

kentonh commented Sep 25, 2017

In issue #47 we send an email to users, the public should have a way to just opt in to these emails. Maybe through a sign up to be a user.

BUT these people wouldn't be show on the people list.

@aekasitt
Copy link
Contributor

aekasitt commented Oct 1, 2017

Hi, is #47 solved?
If yes, how was it implemented?
When talking about the public, do you want to have a mailing list for non-members? If yes, I also recommend implementing Captcha in the Newsletter Sign-up form as well. Please advise.

I can take up on this task.

@kentonh
Copy link
Member Author

kentonh commented Oct 1, 2017

Hey @aekazitt. No, #47 is not yet solved.

I want to have a place for non-users to sign up for the email mentioned in #47 I believe captcha or an email verification link would be appropriate.

Thanks for your help

@aekasitt
Copy link
Contributor

aekasitt commented Oct 2, 2017

Ok, so here is going to be the outline.
There are three steps to proceed, since the Background Process to email signed-in users are not yet implemented.

  1. Create Model to maintain Mailing List, this can be a Meta-model serving as extension to the People's model so it can be used by Mailing List participants to smoothly transition into Signed-In users.
  2. Create foolproof Mailing List sign-up process either with ReCaptcha or with Email Verification like you mentioned. Preferably both.
  3. Include Background Processing, most likely 'sidekiq' gem, into the Procfile that starts on schedule every Tuesday for mail sending via SendGrid.

Please advise if you want anything changed.

@kentonh
Copy link
Member Author

kentonh commented Oct 2, 2017

I have only one question @aekazitt. Would it be better to create a User record for each email address that signs up for the emails only?
This would allow that person to more easily manage the transition between casual subscriber, community member, and contributing member

@aekasitt
Copy link
Contributor

aekasitt commented Oct 4, 2017

Hi, after looking into the schema, I advise against the above approach.
The User model is used mostly for Authentication while Person model is used for Role assignments -> community member (non-featured) and contributing member (featured)

While the casual subscriber, though can be assigned as a Role does not need the complexity of Authentication implemented nor being Featured.

My approach so far has been to create a model named the TuesdayReader which can either register new email address or pull email address from registered User with appropriate validations implemented. The solution is aimed at creating as little side-effects as possible, while also permitting existing users to Opt-in to the Tuesday Newsletters and not automatically added to the Mailing List. (Community Member / Contributing Member Mailing List can also be implemented.)

Here are some follow-up questions that I would like to ask:

  • Should there be a distinction between a Tuesday Newsletter and Member Newsletter?
  • Do you think the opt-in for Members to Tuesday Reader is unnecessary?
  • How do you want to approach content creation for the Tuesday Newsletter, Admin-only?

And for the Casual Member -> Community Member Transition

  • Do you like the current clean approach of separate Model; TuesdayReader?
  • Transitioning Link can be embedded in emails sent or a State-based transition within the TuesdayReader model during sign-up process
    --- OR ---
  • Do you want a rework with a mock-authentication made to Newsletter Sign-up that needs to be overridden when signing up for Community?

@kentonh
Copy link
Member Author

kentonh commented Oct 4, 2017

@aekazitt some answers:

  • Should there be a distinction between a Tuesday Newsletter and Member Newsletter? Yes, that would be good. I don't know how we'd use that right now, but I think it would be useful to differentiate the messages we send based on involvement.

  • Do you think the opt-in for Members to Tuesday Reader is unnecessary? While there should be an Opt Out for receiving the Tuesday Mailing, by default, any user should be automatically added to the list.

  • How do you want to approach content creation for the Tuesday Newsletter, Admin-only? It should be programmatic. The Tuesday email should include any new Event and News post added in the last two weeks. This means that each post would be included at least twice. Additionally, it would be really neat to have Admin-selected "Featured" posts that are highlighted.

  • Do you like the current clean approach of separate Model; TuesdayReader? Yes, I see why this is your approach.

  • Transitioning Link can be embedded in emails sent or a State-based transition within the TuesdayReader model during sign-up process I like this idea. This resolves my concern that led to the other suggestion.

@aekasitt
Copy link
Contributor

aekasitt commented Oct 5, 2017

What's done since our last chat:

  • Opt-in Users to TuesdayReader using Migration
  • Implement Opt-Out (Unsubscription) for Users including form and separate page

Remaining Tasks:

  • Programmatically Generate Email Contents as said above
  • Implement SideKiq scheduling (Integratable with Heroku Scheduler)
  • Validate and Transition TuesdayReader during User Sign-up

@aekasitt
Copy link
Contributor

In order to use ActiveJobs (as part of ActiveSupport) I need to upgrade Ruby version fro 2.2.0 to 2.2.2+ Is that ok?

@kentonh
Copy link
Member Author

kentonh commented Oct 12, 2017

As long as it doesn't break anything else, I'm fine with it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants