Online Task & Deadline Reminder for Students

Task & Deadline Reminder

Organize your tasks and get timely reminders so you never miss a deadline.

Add New Task

Upcoming Tasks

Your tasks will appear here.

${task.subject}

Due: ${dueDateTime.toLocaleString()}

`; taskListDiv.appendChild(taskEl); }); }; // --- EVENT LISTENERS --- addBtn.addEventListener('click', () => { const desc = descInput.value.trim(); const subject = subjectInput.value.trim(); const date = dateInput.value; const time = timeInput.value; const priority = prioritySelect.value; if (!desc || !subject || !date || !time) { alert('Please fill out all task details.'); return; } tasks.push({ id: Date.now(), desc, subject, date, time, priority, completed: false, notified: false }); descInput.value = ''; subjectInput.value = ''; dateInput.value = ''; timeInput.value = ''; renderTasks(); }); taskListDiv.addEventListener('click', e => { const id = parseInt(e.target.dataset.id); if (e.target.classList.contains('delete-btn')) { tasks = tasks.filter(task => task.id !== id); } if (e.target.classList.contains('toggle-complete-btn')) { const task = tasks.find(task => task.id === id); if (task) task.completed = e.target.checked; } renderTasks(); }); // --- PDF DOWNLOAD --- downloadPdfBtn.addEventListener('click', () => { const { jsPDF } = window.jspdf; const doc = new jsPDF(); doc.setFontSize(22); doc.text('Student Task & Deadline List', 105, 20, { align: 'center' }); const tableData = tasks.map(t => [ t.desc, t.subject, new Date(`${t.date}T${t.time}`).toLocaleString(), t.priority.charAt(0).toUpperCase() + t.priority.slice(1), t.completed ? 'Yes' : 'No' ]); doc.autoTable({ head: [['Task', 'Subject', 'Due Date & Time', 'Priority', 'Completed']], body: tableData, startY: 30, theme: 'grid' }); doc.save('task-list.pdf'); }); // --- INITIALIZATION --- requestNotificationPermission(); renderTasks(); setInterval(checkDeadlines, 60000); // Check for deadlines every minute });
Scroll to Top