Reminder App

User

User Model

googleId

stripeCustomerId

name

email

googleRefreshToken

Config

Stripe

Stripe Private Key

Stripe Secret Key

Stripe Webhook Secret

Google

Google Private Key

Google Secret Key

stripeSubscriptionCode
(based on this we will establish when did the user last pay)

settings

message

timeBefore

Scheduler

Tasks should work every single day at 10AM Warsaw Time Zone (but need to check limit cases -> what if two meetings to one number?)

Iterate through all the users calendars (based on user's refresh token stored in the MongoDB) [only if there's a valid subscription -> if not, send an email]

Create Message List for Each User based on previous iteration

Send all the Messages from the Message List for Each User with the SMS API

Payments

  1. Create Subscription Object
  2. Create Checkout Session with Stripe
  1. Receive a webhook and update the information in the user MongoDB

Landing Page

CTA: Register

Present the offer clearly

what is it about?

why does it help?

how does it help?

who does it help?

how to use it?

how much does it cost?

After registering, choosing a package that suits them best

present packages

Going to Payment System

Logged-In Page

Show a small report-dashboard

Allow user to log out

Dashboard

Allow to change message content

Allow to change time interval

Show Usage Instructions

Allow user to contact us

After purchasing - go to dashboard/settings/first-time

messageCount (monthly)