{"id":22243731,"url":"https://github.com/yousufislam191/task-management-system","last_synced_at":"2026-04-09T15:45:47.480Z","repository":{"id":194724448,"uuid":"691307840","full_name":"yousufislam191/Task-Management-System","owner":"yousufislam191","description":"A Task Management System","archived":false,"fork":false,"pushed_at":"2024-05-20T20:41:13.000Z","size":362,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-12T01:07:07.799Z","etag":null,"topics":["expressjs","jwt-token","material-ui","mysql2","nodejs","reactjs","rest-api","sequelize-orm","tailwind-css"],"latest_commit_sha":null,"homepage":"https://task-management-system-flax.vercel.app/","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/yousufislam191.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":"2023-09-13T23:19:10.000Z","updated_at":"2025-01-13T21:48:21.000Z","dependencies_parsed_at":"2024-05-19T20:27:11.661Z","dependency_job_id":"bc5fc5bd-df80-4bf8-b9b1-339a3def6bad","html_url":"https://github.com/yousufislam191/Task-Management-System","commit_stats":null,"previous_names":["yousufislam191/task-management-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yousufislam191/Task-Management-System","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yousufislam191%2FTask-Management-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yousufislam191%2FTask-Management-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yousufislam191%2FTask-Management-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yousufislam191%2FTask-Management-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yousufislam191","download_url":"https://codeload.github.com/yousufislam191/Task-Management-System/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yousufislam191%2FTask-Management-System/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267288875,"owners_count":24064723,"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","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["expressjs","jwt-token","material-ui","mysql2","nodejs","reactjs","rest-api","sequelize-orm","tailwind-css"],"created_at":"2024-12-03T04:28:44.638Z","updated_at":"2025-12-30T19:05:12.072Z","avatar_url":"https://github.com/yousufislam191.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eTask Management System\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n\u003cstrong\u003e\"Task Management System\"\u003c/strong\u003e is a simple full-stack web application. Inside this app, the admin has more control than the user. The user will be able to just read their assigned task, update their task status and profile, and delete their account. On the other hand, admin will be able to do everything.\n\u003c/p\u003e\n\n#### Visit website: \u003ca href=\"https://task-management-system-flax.vercel.app\" target=\"_blank\"\u003ehttps://task-management-system-flax.vercel.app\u003c/a\u003e\n\n#### For Admin login---\u003e Email: `tms-admin@gmail.com` | Password: `1qasw2!@Q`\n\n\u003ch3\u003eFeatures that have been implemented\u003c/h3\u003e\n\n- Login, Logout, and Registration authentication\n- Access token, and Refresh token based authentication\n- Role-based authorization\n- Account activated through token email verification\n- Reset password through token email verification\n- Update user profile\n- Manage users by admin\n- Task management\n- Task status management\n- Search and filter tasks\n- Delete tasks\n- Update tasks\n- Automatically send reminder emails to users 15 minutes before the deadline for an assigned task\n- Automatically move failed task data to the failed task table from the main table in the database\n\u003ch3\u003eTechnology that have been used\u003c/h3\u003e\n\n[React.js](https://react.dev/learn),\n[Material UI](https://mui.com/material-ui/getting-started/installation/),\n[Tailwind CSS](https://tailwindcss.com/docs/installation),\n[Node.js](https://nodejs.org/en),\n[Express.js](https://expressjs.com/en/starter/installing.html),\n[MySQL](https://dev.mysql.com/doc/mysql-getting-started/en/),\n[Sequelize ORM](https://sequelize.org/docs/v6/getting-started/)\n\n\u003ch1 align=\"center\"\u003eRun this web application on your local server\u003c/h1\u003e\n\u003cp align=\"center\"\u003eHere is the step-by-step guideline that will help you run this project on your local server.\u003c/p\u003e\n\n1. **Open your terminal and clone the repository using this command**\n\n```terminal\ngit clone https://github.com/yousufislam191/Task-Management-System.git\n```\n\n2. **After cloning, you will see a folder which name is `Task-Management-System`. Open this foler using vs code. After opening, you will see there are two folders which will be `client` and `server`.**\n\n---\n\n3. **For running front-end site, open your terminal in your vs code and run this three command**\n\n```terminal\ncd client\nnpm install\nnpm run dev\n```\n\n4. **You will get to show a URL where the front-end site is running, then open this link in your browser.**\n\n---\n\n5. _Now it's time to run the backend site, and there are some steps for running the backend site, and you have to follow these steps **strictly**; otherwise, you will face some errors._\n6. **Open a new terminal in your vs code then run this two command.**\n\n```terminal\ncd server\nnpm install\n```\n\n7. **Go to your email to create `SMTP App Password` or by clicking [here][1], or you can watch this [video][2] to understand the better way. After creating the password, you have to save this password in your notepad for later uses because you will never get it after closing the window.**\n\n[1]: https://security.google.com/settings/security/apppasswords \"SMTP App Password\"\n[2]: https://youtu.be/qpAI5qZR9ms?si=mlC-cNmT4gs5riMf \"Youtube Video\"\n\n8. **After that, create a new file in your root folder of the `server` folder which name will be `.env`, or you will be able to see a `.env.example` file, where you can set the environment variable by removin `.example` from the `.env.example`.**\n9. **Inside the `.env` file, you have to store some of your environment variables. Your environment variables must be exactly the same format. For example, `APP_NAME= Task Management System`. All environment variables are named below:**\n\n| Environment Variable Name           | Value                                                                                                                                                      |\n| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| SERVER_PORT                         | Your server port number, you can use any number, like `5100`                                                                                               |\n| DB_PORT                             | Your database port number like `3306`                                                                                                                      |\n| DB_HOST                             | Your database host name like `localhost`                                                                                                                   |\n| DB_USER_NAME                        | Your database username. By default your local mysql server username will be `root`                                                                         |\n| DB_PASS                             | Your database password                                                                                                                                     |\n| DB_NAME                             | Your database name                                                                                                                                         |\n| APP_NAME                            | You can be use any name such as `Task Management System`                                                                                                   |\n| CLIENT_URL                          | Your client site url which you are already running for front-end                                                                                           |\n| CORS_ORIGIN                         | Your client site url which you are already running for front-end                                                                                           |\n| USER_ACCOUNT_ACTIVATE_KEY           | You can be use any some word like uppercase, lowercase, number                                                                                             |\n| USER_ACCOUNT_JWT_EXPIRE_TIME        | You can be use any number like `10m` (ten minutes)                                                                                                         |\n| USER_LOGIN_KEY                      | You can be use any some word like uppercase, lowercase, number                                                                                             |\n| USER_ACCESS_TOKEN_EXPIRE_TIME       | You can be use any number like `5m` (five minutes)                                                                                                         |\n| REFRESH_TOKEN_KEY                   | You can be use any some word like uppercase, lowercase, number                                                                                             |\n| USER_REFRESH_TOKEN_EXPIRE_TIME      | You can be use any number but it must be a day like `7d` (seven days). And of course its duration must be greater than the `USER_ACCESS_TOKEN_EXPIRE_TIME` |\n| USER_PASSWORD_RESET_KEY             | You can be use any some word like uppercase, lowercase, number                                                                                             |\n| USER_PASSWORD_RESET_JWT_EXPIRE_TIME | You can be use any number like `10m` (ten minutes)                                                                                                         |\n| SMTP_USERNAME                       | This will be your email and the email you used to create the `SMTP App Password` in step 7 will be here                                                    |\n| SMTP_PASSWORD                       | This will be your password which you created in step 7 and saved in notepad                                                                                |\n\n10. **Then save changes and run this command.**\n\n```terminal\nnpm run dev\n```\n\n\u003ch4 align=\"center\"\u003eOk now enjoy everything ✌️\u003c/h4\u003e\n\n---\n\n\u003ch1 align=\"center\"\u003eAPI Endpoints\u003c/h1\u003e\n\nHere are all the API endpoints for this project. And you can also [**visit**][10] the Postman API documentation for these projects.\n\n\u003ch2 align=\"left\"\u003eUser API\u003c/h2\u003e\n\n- `GET /api/user` : Get all users with task status activities. _[for admin only]_\n- `GET /api/user/:id` : Get user by id.\n- `POST /api/user/register` : Create user account.\n- `POST /api/user/verify-account` : Verify user account.\n- `POST /api/user/forgot-password` : Forget user password.\n- `PUT /api/user/reset-password` : Reset user password.\n- `PUT /api/user/:id` : Update user account by id.\n- `PUT /api/user/update-password/:id` : Update user password.\n- `DELETE /api/user/:id` : Delete user by id.\n\n\u003ch2 align=\"left\"\u003eAuth API\u003c/h2\u003e\n\n- `POST /api/auth/login` : User login.\n- `POST /api/auth/logout` : User logout.\n- `GET /api/auth/refresh-token` : Generate refresh token.\n- `GET /api/auth/protected` : Check protected access.\n\n\u003ch2 align=\"left\"\u003eTask API\u003c/h2\u003e\n\n- `POST /api/task` : Get all tasks. _[for admin only]_\n- `GET /api/task/single-task/:id` : Get task by id.\n- `POST /api/task/user-tasks` : Get all task for a particular user.\n- `POST /api/task/create-task` : Create new task. _[for admin only]_\n- `PUT /api/task/:id` : Update task by id. _[for admin only]_\n- `PUT /api/task/status/:id` : Update task status. _[for user only]_\n- `DELETE /api/task/:id` : Delete task by id. _[for admin only]_\n\n\u003ch2 align=\"left\"\u003eSeed API\u003c/h2\u003e\n\nSeed API has been used for enhancing development purposes. For the production grade, it has been disabled. You will be able to use it for your local server by removing the `//` from the `app.js` file.\n\n- `GET /api/seed/users` : Seed user.\n- `GET /api/seed/tasks` : Seed task.\n\n\u003ch1\u003eAbout Developer\u003c/h1\u003e\n\n**[Facebook][3]** |\n**[Linkedin][4]** |\n**[Instagram][5]** |\n**[Twittwer][6]** |\n**[Github][7]** |\n**[Kaggle][8]** |\n**[Website][9]**\n\n[3]: https://facebook.com/yousufislam191\n[4]: https://linkedin.com/in/yousufislam191\n[5]: https://instagram.com/yousufislam191\n[6]: https://twitter.com/yousufislam_191\n[7]: https://github.com/yousufislam191\n[8]: https://kaggle.com/yousufislam191\n[9]: https://yousufislam191.github.io\n[10]: https://documenter.getpostman.com/view/27853638/2s9YCBsoy2\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyousufislam191%2Ftask-management-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyousufislam191%2Ftask-management-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyousufislam191%2Ftask-management-system/lists"}