An advanced task management application with drag-and-drop functionality, user management, Discord notifications, and task completion tracking. Built with React, TypeScript, Node.js, and MongoDB.
- User Management: Create and manage users with Discord integration
- Task Management: Create, edit, complete, and delete tasks with comprehensive details
- Category Organization: Organize tasks into custom categories with special system categories
- Drag-and-Drop: Seamlessly move tasks between categories
- Priority Levels: Color-coded priorities (Easy/Green, Medium/Yellow, Hard/Red)
- Discord Notifications: Automatic reminders via Discord webhook when tasks are due
- Recurring Tasks: Set tasks to repeat daily, weekly, or monthly
- Task Completion: Mark tasks as complete with dedicated "Completed Tasks" category
- Hidden Categories: Toggle visibility of Completed and Deleted tasks
- Smart Filtering: Filter by priority and due date (Today, This Week, Overdue)
- Smooth Animations: Modern UI with gradient designs and smooth transitions
- Node.js (v14 or higher)
- npm or yarn
- MongoDB connection (already configured in .env)
- Clone the repository and navigate to the app folder
cd reminder-app- Install all dependencies (root, backend, and frontend)
npm run install-all- Start both backend and frontend with a single command
npm startThat's it! The application will automatically:
- Start the backend server on http://localhost:5001
- Start the frontend on http://localhost:3000
- Open your browser to the application
If you prefer to run backend and frontend separately:
Backend:
cd backend
npm install
npm run devFrontend (in a new terminal):
cd frontend
npm install
npm start- Click the "Users" button in the header
- Add users with their name and Discord ID
- Users will receive Discord notifications for their assigned tasks
- Click "Add Task" to create a new task
- Fill in the details:
- Task name and due date
- Select category and priority
- Choose assigned user from dropdown
- Set repeat interval (none/daily/weekly/monthly)
- Complete: Click the ✓ button to mark tasks as complete
- Edit: Click the pencil icon to modify task details
- Delete: Click the trash icon to move tasks to deleted category
- Drag & Drop: Click and drag tasks between categories
- DC Toggle: Click "DC" button to show/hide Completed and Deleted tasks
- Filters: Use priority and date filters to find specific tasks
- Discord Notifications: Automatic reminders sent at 9 AM IST and every 6 hours
- React 19 with TypeScript
- @dnd-kit for drag-and-drop
- Axios for API calls
- Date-fns for date manipulation
- Lucide React for icons
- Node.js with Express
- MongoDB with Mongoose
- Discord webhook integration
- Node-cron for scheduled tasks
- Axios for webhook requests
- Users: Stores user names and Discord IDs
- Categories: Regular and special categories (Completed/Deleted)
- Tasks: Comprehensive task details with status tracking
- Completed Tasks: Non-deletable category for completed tasks
- Deleted Tasks: Non-deletable category for deleted tasks
The backend uses environment variables stored in backend/.env:
MONGODB_URI=your_mongodb_connection_string
PORT=5001
Discord webhook URL is configured in backend/server.js.
From the root reminder-app directory:
npm start- Run both backend and frontendnpm run backend- Run backend onlynpm run frontend- Run frontend onlynpm run install-all- Install all dependenciesnpm run dev- Alias for npm start
- Sends embedded messages with task details
- Color-coded by priority
- Mentions users via Discord ID
- Tracks last notification to prevent spam
- Daily: Notifies every 24 hours
- Weekly: Notifies every 7 days
- Monthly: Notifies every 30 days
- Continues until task is completed or deleted
- Active: Default state for new tasks
- Completed: Moved to Completed Tasks category
- Deleted: Moved to Deleted Tasks category
- Gradient-based modern design
- Smooth category load animations
- Hover effects on all interactive elements
- Responsive layout for all screen sizes
- Loading states with animated spinners
Built with ❤️ for efficient task management and team coordination.