A lightweight task management system built in PHP that allows users to add and manage tasks, subscribe via email for hourly task reminders, and unsubscribe anytime — all without using a database.
- Add new tasks to a shared task list
- Avoids duplicate task names (case-insensitive)
- Mark tasks as complete/incomplete
- Delete tasks
- Stores all tasks in
tasks.txt(JSON format)
- Users can subscribe using their email address
- Email verification via a unique 6-digit code
- Email verification handled via
verify.php - Verified emails stored in
subscribers.txt - Unverified emails and codes stored in
pending_subscriptions.txt - Users can unsubscribe via one-click link in reminder email
- CRON job executes
cron.phpevery hour - Sends reminder emails with pending tasks to all verified subscribers
- Each email contains:
- List of pending tasks
- An unsubscribe link
This project uses MailHog for email testing in a local development environment.
- MailHog captures outgoing emails sent using
mail()and provides a web UI to view them. - This allows you to test subscription verification and reminder emails without sending real messages.
- Download and run MailHog:
MailHog GitHub Repo - MailHog UI runs at http://localhost:8025
- Ensure PHP is configured to send email via
localhost:1025:ini_set('SMTP', 'localhost'); ini_set('smtp_port', 1025); ini_set('sendmail_from', 'no-reply@example.com');
To set up the hourly reminder CRON job:
chmod +x setup_cron.sh
./setup_cron.shFor Windows, use task manager or bash. Alternatively, the cron.php file can be run manually for testing.
Start the PHP built-in server:
php -S localhost:8000