### User Story #### Background Help with project and task management Manager can create, delete projects and tasks. It is possible to add employees from the team to the project and assign tasks to the employees participating in the project. Manager can change status of project and task, send files and files seen in project, can write and see Comment when task has review and redo status page Staff can replace all services assigned and the time must be updated. Staff can only change weapon's status from wode for review and redo for review, Comments can be seen when the task has a review and redo status page, submissions and files found in the project Group HR will create new employees and new groups. Turn employees into gifts and add employees to groups, remove employees and groups The email address is not associated with any account in the system. After joining, users can update their profile to Avatar The CEO can see the number of tasks and tasks created. See the security team and staff are active. Through two icons, it is possible to display the number of tasks for each attitude page and the number of tasks that update the correct rank to the past level, these data only partially reflect any state of the company. #### Authentication - As a user I can sign in. with my email and password. - As a user, I can stay signed in with refreshing page. #### Ceo - view data of task, project, user, team - The pie chart shows the status of the task - create, edit, delete teams - create, edit, delete user - see all projects #### Manager - create, edit, delete Project - see all projects in the team - create, edit, delete task - assign tasks to workers - change the status of the task from * woding to review * rework to review * done to archive * review to rework * review to done #### Manager Team Personnel - **has the function of self with Manager** - create, edit, delete teams - create, edit, delete user #### Workers - see all projects in the team - change the status of the task from * woding to review * rework to review - see comments when task has redo status - to send file #### Workers Team Personnel - **has the function of self with WORKERS** - create, edit, delete teams - Acreate, edit, delete user ### API endpoints #### Auth APIs ``` * @route POST /auth/login * @description Log in with username and password * @body {email, passsword} * @access Public ``` #### Team APIs ``` @route Post /teams @descripton create New Team @body {"name", "manager"} @access login request ``` ``` @route Get/teams/page=1&limit=10 @descripton get teams with paginaton @body @access login request ``` ``` @route Get /teams/:id @descripton get Single Team @body @access login request ``` ``` @route Put /teams/:id @descripton update Single Team @body {"name", "manager", "workers"} @access login request ``` #### User APIs ``` @route Post /users @descripton Reginster new user @body {"name","email" , "password"} @access public ``` ``` @route Get /users/page=1&limit=10 @descripton get users with paginaton @body @access login request ``` ``` @route Get /users/me @descripton get current user info @body @access login request ``` ``` @route Get /users/admin @descripton admin get information @body @access login request ``` ``` @route Get /users/:id @descripton get users profile @body @access login request ``` ``` @route Put /users/:id @descripton Update user profile @body {"name", "avatarUrl", "position", "team", "imageUrl", "phone1", "phone2", "manager",} @access login request ``` ``` @route delete /users/:id @descripton delete user @body @access login request ``` #### File APIs ``` @route Post /files @descripton create new file @body { "FileUrl", "projectId", "taskId"} @access login request ``` ``` @route Get /files @descripton get list files @body @access login request ``` #### Project APIs ``` @route Post /projects @descripton create new project @body {"name", "description", "team", "assignee", } @access login request ``` ``` @route Get /projects/page=1&limit=10 @descripton get projects with paginaton @body @access login request ``` ``` @route Get /projects/:id @descripton get project profile @body @access login request ``` ``` @route Delete /projects/:id @descripton delete a project @body @access login request ``` ``` @route Put /projects/:id @descripton update a project @body {"name", "description", "assignee", "status",} @access login request ``` #### Task APIs ``` @route Post /tasks @descripton create new task @body {"name", "dueAt", "assignee", "project", "important", "urgent"} @access login request ``` ``` @route Put /tasks/:id @descripton update a task @body {"name", "dueAt", "urgent", "important", "assignee", "status", "progress"} @access login request ``` ``` @route Put /review/:id @descripton write a comment @body @access login request ``` ``` @route Delete /tasks/:id @descripton delete a task @body @access login request ``` ``` @route Get /tasks/page=1&limit=10 @descripton get tasks with paginaton @body @access login request ``` ``` @route Get /tasks/:id @descripton get task profile @body @access login request ``` ### Diagram Relation ![](https://i.imgur.com/sGBgGxb.png) ### ⭐️ Wrap up align="center">Hi 👋, I'm Đình Biểu</h1> <h3 align="center">A passionate frontend developer</h3> - 🌱 I’m currently learning **Javascript, HTML, CSS** - 🔭 I’m currently working on [task management](https://task-management-bieu.netlify.app/) - 👯 Front End [link](https://github.com/bieudo1/task_management_fe.git) - 🤝 Back End [link](https://github.com/bieudo1/task_management_be.git) - 💬 Framework, Library **React, Redux, MUI, Express** - 📫 How to reach me **bieucd17dk1@gmail.com** <h3 align="left">Connect with me:</h3> <p align="left"> </p> <h3 align="left">Languages and Tools:</h3> <p align="left"> <a href="https://www.arduino.cc/" target="_blank" rel="noreferrer"> <img src="https://cdn.worldvectorlogo.com/logos/arduino-1.svg" alt="arduino" width="40" height="40"/> </a> <a href="https://www.chartjs.org" target="_blank" rel="noreferrer"> <img src="https://www.chartjs.org/media/logo-title.svg" alt="chartjs" width="40" height="40"/> </a> <a href="https://www.w3schools.com/css/" target="_blank" rel="noreferrer"> <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/css3/css3-original-wordmark.svg" alt="css3" width="40" height="40"/> </a> <a href="https://expressjs.com" target="_blank" rel="noreferrer"> <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/express/express-original-wordmark.svg" alt="express" width="40" height="40"/> </a> <a href="https://git-scm.com/" target="_blank" rel="noreferrer"> <img src="https://www.vectorlogo.zone/logos/git-scm/git-scm-icon.svg" alt="git" width="40" height="40"/> </a> <a href="https://heroku.com" target="_blank" rel="noreferrer"> <img src="https://www.vectorlogo.zone/logos/heroku/heroku-icon.svg" alt="heroku" width="40" height="40"/> </a> <a href="https://www.w3.org/html/" target="_blank" rel="noreferrer"> <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/html5/html5-original-wordmark.svg" alt="html5" width="40" height="40"/> </a> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript" target="_blank" rel="noreferrer"> <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/javascript/javascript-original.svg" alt="javascript" width="40" height="40"/> </a> <a href="https://www.mongodb.com/" target="_blank" rel="noreferrer"> <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/mongodb/mongodb-original-wordmark.svg" alt="mongodb" width="40" height="40"/> </a> <a href="https://nodejs.org" target="_blank" rel="noreferrer"> <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/nodejs/nodejs-original-wordmark.svg" alt="nodejs" width="40" height="40"/> </a> <a href="https://postman.com" target="_blank" rel="noreferrer"> <img src="https://www.vectorlogo.zone/logos/getpostman/getpostman-icon.svg" alt="postman" width="40" height="40"/> </a> <a href="https://reactjs.org/" target="_blank" rel="noreferrer"> <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/react/react-original-wordmark.svg" alt="react" width="40" height="40"/> </a> <a href="https://redux.js.org" target="_blank" rel="noreferrer"> <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/redux/redux-original.svg" alt="redux" width="40" height="40"/> </a> </p> <p><img align="left" src="https://github-readme-stats.vercel.app/api/top-langs?username=bieudo1&show_icons=true&locale=en&layout=compact" alt="bieudo1" /></p> <p>&nbsp;<img align="center" src="https://github-readme-stats.vercel.app/api?username=bieudo1&show_icons=true&locale=en" alt="bieudo1" /></p>