- ExpressJs - For Routing
- PassportJs - For Authentication
- Nodemailer - To Send Emails
- Agendajs - To execute scheduled and recurring tasks.
- Mongoose - Relationship between Database(MongoDB)
This project uses node and npm. Go check them out if you don't have them locally installed.
- Clone the repository
$ git clone https://github.com/ancoreraj/Email-Reminders.git
$ npm install
- Add a config.env file in config folder and add the dependencies from config.example file there.
$ node app.js
- Open http://localhost:3000 in your favourite browser.
- I used a new node package AgendaJs. Why not traditional function such as setTimeout(), because in setTimeout(), we lose our job when the process restarts. AgendaJs uses a MongoDB database to schedule tasks so that even if the server goes down, the task will still run at the specified time or intervals.
- The first reason is, we use JavaScript in writing mongodb codes which is same for nodejs and fronted development. I didn't had to learn a new programming language.
- It is a noSql database.
Feel free to dive in! Open an issue or submit PRs.