The Work Reminder System is an advanced full-stack task management application that helps you organize tasks with drag-and-drop functionality, user management, Discord notifications, and comprehensive task completion tracking.
The project uses React with TypeScript for the frontend, Node.js with Express for the backend, and MongoDB for the database. It also integrates Discord webhooks for notifications and uses libraries like @dnd-kit for drag-and-drop functionality.
Navigate to the backend folder and run npm install then npm run dev to start the backend server on port 5001. Then navigate to the frontend folder, run npm install and npm start to start the frontend on port 3000.
Yes, you need a MongoDB database. Configure the MongoDB URI in a .env file in the backend directory with the variable MONGODB_URI.
The DC toggle is a feature that shows or hides special categories like "Completed Tasks" and "Deleted Tasks" in the UI, helping you keep your workspace clean and focused.
Using the @dnd-kit library, you can drag tasks between different category columns. When you drop a task in a new category, it automatically updates in the database and reflects the change across the application.
Tasks can have three priority levels: Easy (displayed in green), Medium (displayed in yellow), and Hard (displayed in red). This helps you quickly identify task urgency.
Tasks can be set to repeat with four options: none (one-time task), daily, weekly, or monthly. The system automatically handles recurring reminders based on your selection.
The application sends notifications to Discord via webhooks at scheduled times (9 AM IST daily and every 6 hours). Notifications are color-coded by priority and mention assigned users via their Discord ID.
When you click the complete button on a task, it automatically moves to the "Completed Tasks" category with a status change to "completed" in the database.
No, deleted tasks are moved to the "Deleted Tasks" category rather than being permanently deleted. This allows you to recover tasks if needed.
Click the user management button in the header to open the user management modal. From there, you can add new users by entering their name and Discord ID.
The Discord ID is used to mention and notify specific users in Discord when tasks assigned to them are due or require attention.
Yes, you can delete users through the user management modal. However, ensure that no active tasks are assigned to that user before deletion.
When creating or editing a task through the AddTaskModal, you can select a user from a dropdown that displays both their name and Discord ID.
Special categories are "Completed Tasks" and "Deleted Tasks". These categories are automatically created, cannot be deleted (isDeletable: false), and can be hidden using the DC toggle.
Yes, you can create custom categories to organize your tasks. All custom categories can be renamed or deleted unless marked as special.
Tasks are organized within category columns and linked to categories via MongoDB ObjectId references. You can drag tasks between categories to reorganize them.
The application provides REST API endpoints for users (GET, POST, DELETE at /api/users), categories (GET, POST, DELETE at /api/categories), and tasks (full CRUD operations at /api/tasks plus completion at /api/tasks/:id/complete).
The application uses IST (Indian Standard Time) for scheduled notifications and date handling, implemented through the date-fns library for date manipulation.
The application runs cron jobs for Discord notifications at 9 AM IST daily and every 6 hours. These jobs check for due tasks and send notifications to assigned users, tracking the last notification time to prevent spam.