This assignment is a PHP-based task management system where users can add tasks to a common list and subscribe to receive hourly email reminders for pending tasks.
- Add new tasks to the common list
- Duplicate tasks should not be added.
- Mark tasks as complete/incomplete
- Delete tasks
- Store tasks in
tasks.txt
- Users can subscribe with their email
- Email verification process:
- System generates a unique 6-digit verification code
- Sends verification email with activation link
- Link contains email and verification code
- User clicks link to verify subscription
- System moves email from pending to verified subscribers
- Store subscribers in
subscribers.txt - Store pending verifications in
pending_subscriptions.txt
- CRON job runs every hour
- Sends emails to verified subscribers
- Only includes pending tasks in reminders
- Includes unsubscribe link in emails
- Unsubscribe process:
- Every email includes an unsubscribe link
- Link contains encoded email address
- One-click unsubscribe removes email from subscribers
Implemented the following functions in functions.php:
function addTask($task_name) {
// Add a new task to the list
}
function getAllTasks() {
// Get all tasks from tasks.txt
}
function markTaskAsCompleted($task_id, $is_completed) {
// Mark/unmark a task as complete
}
function deleteTask($task_id) {
// Delete a task from the list
}
function generateVerificationCode() {
// Generate a 6-digit verification code
}
function subscribeEmail($email) {
// Add email to pending subscriptions and send verification
}
function verifySubscription($email, $code) {
// Verify email subscription
}
function unsubscribeEmail($email) {
// Remove email from subscribers list
}
function sendTaskReminders() {
// Sends task reminders to all subscribers
// Internally calls sendTaskEmail() for each subscriber
}
function sendTaskEmail( $email, $pending_tasks ) {
// Sends a task reminder email to a subscriber with pending tasks.
}functions.php(Core functions)index.php(Main interface)verify.php(Email verification handler)unsubscribe.php(Unsubscribe handler)cron.php(Reminder sender)setup_cron.sh(CRON job setup)tasks.txt(Task storage)subscribers.txt(Verified subscribers)pending_subscriptions.txt(Pending verifications)
Iedmplemented a CRON job that runs cron.php every 1 hour.
β
The email content is in HTML format
β
PHP's mail() function is used for sending emails.
β
Each email includes an unsubscribe link.
β
Subscribers email is stored in subscribers.txt.
β
Pending verifications are stored in pending_subscriptions.txt.
β
Each email included an unsubscribe link.