TaskMaster is a web-based task management application designed to help users organize, prioritize, and keep track of their tasks. It allows users to log in, manage tasks, filter by priority or deadlines, and perform CRUD operations on their task list.
- User Authentication: Signup, login, and logout functionality with secure JWT-based authentication.
- Task Management: Create, read, update, and delete tasks.
- Prioritization: Filter tasks based on priority levels (
low,medium,high) or due dates. - Dynamic UI: Responsive interface with toast notifications for feedback.
- Secure Operations: Uses HTTP-only cookies for secure authentication.
- HTML, CSS, JavaScript
- Toast notifications for user feedback
- Node.js, Express.js
- MongoDB with Mongoose for database management
- JWT (JSON Web Tokens)
- Secure cookies for session management
- Node.js and npm installed on your system.
- MongoDB installed and running locally or a MongoDB Atlas connection URI.
- Clone the repository:
git clone https://github.com/your-username/taskmaster.git
- Navigate to the project directory:
cd taskmaster - Install dependencies:
npm install
- Create a .env file in the root directory and configure the environment variables:
PORT=your_port MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key NODE_ENV=your_environment
- Start the backend server:
npm run dev
-
Running the Application
-
Open the index.html file in your browser to access the dashboard.
-
Use the following endpoints for authentication and tasks:
Authentication:
- POST /api/auth/signup - Sign up a new user
- POST /api/auth/login - Log in an existing user
- POST /api/auth/logout - Log out the current user
Tasks:
- GET /api/taskmanager/tasks - Get all tasks
- POST /api/taskmanager/tasks - Create a new task
- PUT /api/taskmanager/tasks/:id - Update a task
- DELETE /api/taskmanager/tasks/:id - Delete a task
Task Operations:
- Create a task using the Create New Task modal.
- Edit or delete tasks using the buttons provided in the task cards.
- Filter tasks by priority or deadlines using the dropdowns and date picker.