{"id":15155532,"url":"https://github.com/anshuldhakate/task-management-system","last_synced_at":"2026-03-05T20:34:37.063Z","repository":{"id":254418317,"uuid":"846153276","full_name":"Anshuldhakate/Task-Management-System","owner":"Anshuldhakate","description":"The Task Management System is a backend API built using Node.js and Express.js. It provides task management functionality with secure user authentication and role-based access control. The API uses MongoDB to store data and follows best practices for code quality","archived":false,"fork":false,"pushed_at":"2024-08-23T10:00:20.000Z","size":24,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T01:07:11.856Z","etag":null,"topics":["bcrypt","dotenv","express-js","jwt-authentication","mongodb","nodejs"],"latest_commit_sha":null,"homepage":"https://task-management-system-afof.onrender.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Anshuldhakate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-22T16:24:51.000Z","updated_at":"2024-08-23T10:02:40.000Z","dependencies_parsed_at":"2024-08-23T10:59:27.767Z","dependency_job_id":"118c9e07-5dd7-4599-8d46-f7b2a085ba69","html_url":"https://github.com/Anshuldhakate/Task-Management-System","commit_stats":null,"previous_names":["anshuldhakate/task-management-system"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anshuldhakate%2FTask-Management-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anshuldhakate%2FTask-Management-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anshuldhakate%2FTask-Management-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anshuldhakate%2FTask-Management-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Anshuldhakate","download_url":"https://codeload.github.com/Anshuldhakate/Task-Management-System/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237964428,"owners_count":19394393,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bcrypt","dotenv","express-js","jwt-authentication","mongodb","nodejs"],"created_at":"2024-09-26T18:23:17.098Z","updated_at":"2025-10-24T12:30:35.959Z","avatar_url":"https://github.com/Anshuldhakate.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task Management System\n\n## Deployed Link- https://task-management-system-afof.onrender.com/\n\n## Overview\n\nThe Task Management System is a backend API built using Node.js and Express.js. It provides task management functionality with secure user authentication and role-based access control. The API uses MongoDB to store data and follows best practices for code quality, including dependency injection and proper design patterns.\n\n## Features\n\n- User Registration with JWT-based Authentication\n- Role-Based Access Control (Admin, User)\n- CRUD Operations for Tasks\n- Filtering Tasks by Priority, Status, and Assigned User\n- Secure Endpoints with Route Guards and Input Validation\n- Dependency Injection for Authentication, Role Management, and Task Handling\n\n## Technologies Used\n\n- Node.js\n- Express.js\n- MongoDB (Mongoose)\n- JWT (JSON Web Token) for Authentication\n- bcryptjs for Password Hashing\n- dotenv for Environment Variables\n- Postman for API Testing\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js installed on your machine\n- MongoDB installed and running locally or a connection URI to a remote MongoDB instance\n- Postman installed for testing API endpoints\n\n### Installation\n\n1. **Clone the Repository:**\n\n   ```bash\n   git clone https://github.com/Anshuldhakate/task-management-system.git\n   cd task-management-system\n\n2. **Install Dependencies:**\n   - npm install\n   - \n3. **Set Up Environment Variables:**\n   - MONGOURL= mongodb+srv://user-new-11:saloni123@cluster0.dtxqfit.mongodb.net/task_management?retryWrites=true\u0026w=majority\u0026appName=Cluster0\n   - JWT_SECRET= Anshul1234\n     \n4. **Start the Server:**\n   - npm start\n  \n\n### API Endpoints\n #### Authentication\n ####  Register User\n\n   - URL: /api/auth/register\n   - Method: POST\n   - Headers: Content-Type: application/json\n   - Body: json\n\n         {\n           \"name\": \"John Doe\",\n           \"email\": \"johndoe@example.com\",\n           \"password\": \"password123\"\n         }\n   - Response: json\n\n         {\n           \"token\": \"your_jwt_token_here\"\n         }\n  - Login User\n\n  - URL: /api/auth/login\n  - Method: POST\n  - Headers: Content-Type: application/json\n  - Body: json\n\n      {\n        \"email\": \"johndoe@example.com\",\n        \"password\": \"password123\"\n      }\n  - Response: json\n\n         {\n           \"token\": \"your_jwt_token_here\"\n         }\n  #### Tasks\n    - Get All Tasks\n\n    - URL: /api/tasks\n    - Method: GET\n    - Headers:\n    - Authorization: Bearer your_jwt_token_here\n    \n  #### Create a Task\n\n   - URL: /api/tasks\n   - Method: POST\n   - Headers:\n   - Content-Type: application/json\n   - Authorization: Bearer your_jwt_token_here\n   - Body: json\n\n         {\n           \"title\": \"New Task\",\n           \"description\": \"Task description\",\n           \"priority\": \"High\",\n           \"status\": \"Pending\",\n           \"assignedTo\": \"userId\"\n         }\n  #### Update a Task\n\n   - URL: /api/tasks/:taskId\n   - Method: PUT\n   - Headers:\n   - ontent-Type: application/json\n   - Authorization: Bearer your_jwt_token_here\n   - Body: json\n\n         {\n           \"title\": \"Updated Task\",\n           \"description\": \"Updated task description\",\n           \"priority\": \"Low\",\n           \"status\": \"Completed\",\n           \"assignedTo\": \"userId\"\n         }\n  #### Delete a Task\n\n   - URL: /api/tasks/:taskId\n   - Method: DELETE\n   - Headers:\n   - Authorization: Bearer your_jwt_token_here\n   - Testing the API with Postman\n  \n  #### Register a New User:\n\n   - Make a POST request to /api/auth/register with the required fields in the body.\n   - Login with the Registered User:\n   \n   - Make a POST request to /api/auth/login with the user's email and password.\n   - Copy the Token from the Login Response:\n\n   - Use this token to authenticate requests to protected routes.\n   - Set Authorization Header in Postman:\n\n   - Go to the Headers tab in Postman.\n   - Add a new header:\n   - Key: Authorization\n   - Value: Bearer your_jwt_token_here\n  \n\n ### ontributing\n   - Contributions are welcome! Please fork the repository and submit a pull request for any enhancements or bug fixes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanshuldhakate%2Ftask-management-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanshuldhakate%2Ftask-management-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanshuldhakate%2Ftask-management-system/lists"}