Reminder App
User
User Model
googleId
stripeCustomerId
name
googleRefreshToken
Config
Stripe
Stripe Private Key
Stripe Secret Key
Stripe Webhook Secret
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
- Create Subscription Object
- Create Checkout Session with Stripe
- 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)