Does OpenedX allow for notifications and other?

Hello.

I have a use case where I need to allow people to get certifications for an organic food preparation process.

I need…
1.) To allow the Certification through a process in openedx (read materials, take a test, get a certification).
2.) Allow for auto-emails to be sent to notify the end-user (whom took the test and got the cert already) 30 days before the end of each year (term) to “re certify.” Then send those auto emails at whatever frequency I want until they get re certified (meaning if they ignored the first email).
3.) Allow for that user to come back to the platform and take the test again to get re-certified.
4.) Track all the processes for me the admin via reports, etc.

Is this all possible in openEdx as-is? Thank you for your help. Thank you for making the system.

-Joe