DevOps Future Task Reminders

Source: Dev.to | Dec 28, 2025 (UTC)

Future Task Reminders

Node.js/Express dashboard to create and manage task reminders, store them in a MySQL database, and send reminder emails via SMTP when their trigger date/time is reached.

Features

  • Dashboard summary: See all tasks with counts of high, medium, and low priority.
  • Task form: Create a task with name, description, priority, trigger date/time, type, execution protection, and email recipients.
  • Execution Protection: Control how reminders are sent:
    • None (default): Reminder is sent once when trigger time is reached
    • Daily: Reminder is sent daily after trigger time until manually stopped
    • Weekly: Reminder is sent weekly after trigger time until manually stopped
    • Monthly: Reminder is sent monthly after trigger time until manually stopped
  • MySQL persistence: Tasks are stored in a MySQL table.
  • SMTP reminders: Dual schedulers check for due tasks and send emails via SMTP:
    • Immediate scheduler (REMINDER_CRON): Runs frequently for one-time reminders
    • Daily scheduler (DAILY_CRON): Runs daily for recurring reminders with execution protection

UI Screenshots

  • Create Account

  • Login

  • Task Dashboard

  • Task Lists

  • Email Reminder

Prerequisites

  • Node.js (LTS recommended)
  • MySQL server
  • SMTP credentials (can be from any provider that supports SMTP)

1. Clone and install

cd future-task-reminders npm install

Enter fullscreen mode

Exit fullscreen mode

2. Create the MySQL database

In MySQL:

CREATE DATABASE task_reminders CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Enter fullscreen mode

Exit fullscreen mode

You do not need to manually create the tasks table; it will be created automatically on server start via initializeSchema().

3. Environment variables

Create a .env file in the project root, for example:

PORT=3000 # MySQL DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASSWORD=your_db_password DB_NAME=task_reminders # SMTP SMTP_HOST=smtp.your-email-provider.com SMTP_PORT=587 SMTP_SECURE=false SMTP_USER=your_smtp_username SMTP_PASS=your_smtp_password SMTP_FROM="Task Reminders <[email protected]>" # Reminder check schedule (cron expression, default is every minute) # This scheduler handles immediate reminders for tasks with execution_protection='none' REMINDER_CRON=*/1 * * * * # Daily reminder check schedule (cron expression, default is 9 AM daily) # This scheduler handles recurring reminders for tasks with execution_protection='daily' or 'weekly' DAILY_CRON=0 9 * * * # Session secret SESSION_SECRET=change_me_for_production

Enter fullscreen mode

Exit fullscreen mode

4. Run the app

npm start

Enter fullscreen mode

Exit fullscreen mode

Then open http://localhost:3000 in your browser.

5. Usage

6. Production deployment checklist

7. Docker build & run

A simple Dockerfile is included to run the app in a container.

Build

docker build -t future-task-reminders .

Enter fullscreen mode

Exit fullscreen mode

Run (with external MySQL)

docker run -d \ --name future-task-reminders \ -p 3000:3000 \ -e NODE_ENV=production \ -e PORT=3000 \ -e DB_HOST=your-mysql-host \ -e DB_PORT=3306 \ -e DB_USER=your_db_user \ -e DB_PASSWORD=your_db_password \ -e DB_NAME=task_reminders \ -e SMTP_HOST=smtp.your-email-provider.com \ -e SMTP_PORT=587 \ -e SMTP_SECURE=false \ -e SMTP_USER=your_smtp_username \ -e SMTP_PASS=your_smtp_password \ -e SMTP_FROM="Task Reminders <[email protected]>" \ -e REMINDER_CRON="*/1 * * * *" \ -e DAILY_CRON="0 9 * * *" \ -e SESSION_SECRET="your_strong_random_secret" \ future-task-reminders

Enter fullscreen mode

Exit fullscreen mode

Then access the app at http://localhost:3000.

Run with Docker Compose

A docker-compose.yml file is included for easier deployment with MySQL:

docker-compose up -d

Enter fullscreen mode

Exit fullscreen mode

This will start both the MySQL database and the application. Make sure to update the environment variables in docker-compose.yml with your actual SMTP credentials and other configuration before running.

The compose file includes:

GitHub Link

https://github.com/prashantgupta123/future-task-reminders/tree/main

For further actions, you may consider blocking this person and/or reporting abuse

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Читайте також