{"id":18498855,"url":"https://github.com/lekejosh/team-collaboration-api","last_synced_at":"2025-04-19T21:22:01.289Z","repository":{"id":163354426,"uuid":"607840902","full_name":"Lekejosh/Team-Collaboration-Api","owner":"Lekejosh","description":"Backend API for team collaboration. This backend includes a chat feature as well as a task management.","archived":false,"fork":false,"pushed_at":"2023-08-17T12:27:21.000Z","size":201,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-29T13:35:08.762Z","etag":null,"topics":["api","api-rest","api-restful","backend","backend-api","backend-service","chat","express","node","node-js","socket-io","task-management","task-manager"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lekejosh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-02-28T19:33:45.000Z","updated_at":"2023-08-20T09:44:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"7241388e-07f6-4e83-bad4-62669891d9fc","html_url":"https://github.com/Lekejosh/Team-Collaboration-Api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lekejosh%2FTeam-Collaboration-Api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lekejosh%2FTeam-Collaboration-Api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lekejosh%2FTeam-Collaboration-Api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lekejosh%2FTeam-Collaboration-Api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lekejosh","download_url":"https://codeload.github.com/Lekejosh/Team-Collaboration-Api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249807696,"owners_count":21328105,"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":["api","api-rest","api-restful","backend","backend-api","backend-service","chat","express","node","node-js","socket-io","task-management","task-manager"],"created_at":"2024-11-06T13:42:52.185Z","updated_at":"2025-04-19T21:22:01.272Z","avatar_url":"https://github.com/Lekejosh.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CHAT + TASK MANAGEMENT API\n\n### Introduction\n\nThis project is a mini for a team collaboration system, where teams/users can chat and also manage task.\n\n### Project Support Features\n\n- User can Signup and Login to their accounts\n- Users can create group\n- Users receives messages in real-time\n- Users can create a team or private workspace\n- Users can create tasks\n- Users can assign task to members in the workspace\n- Users can watch changes in task and recieve notifications on it\n- Users get notified before task due date\n\n## Installation Guide\n\n## RUNNING ON LOCALLY ON MACHINE\n\n### Pre-requisite\n\n- [Node js](https://nodejs.org/en/download/)\n- [Mongo DB](https://www.mongodb.com/try/download/shell)\n- [Cloudinary]()\n\n### Steps\n\n- Clone this repository [here](https://github.com/Lekejosh/Team-Collaboration-Api.git).\n- The master branch is the most stable at any given time, ensure you're working from it.\n- Run \"npm install\" to install all dependencies\n- Create an .env file in your project root folder and add your variables. See .env.sample for assistance.\n\n### Usage\n\n- Run 'npm start' to start the application.\n- Connect to the API using Postman on port 4000.\n\n## USING DOCKER\n\n### Pre-requisite\n\n- [Docker Destop(MAC)](https://desktop.docker.com/mac/main/arm64/Docker.dmg?utm_location=module) || [Docker Destop(Windows)](https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe?utm_location=module) || [Docker Destop(Linux)](https://docs.docker.com/desktop/linux/install/)\n\n### Steps\n\n- After installing Docker desktop on your PC\n- Change your DB_URI to 'mongodb://mongo_db:27017'\n- Run `npm start:docker`\n\n# API Endpoints\n\n- Check [Postman Documentation](https://documenter.getpostman.com/view/17957003/2s9Xy5LVoa) for more info\n\n## User Request\n\n### Authentication\n\n| HTTP Verbs | Endpoints                          | Action                                                                              |\n| ---------- | ---------------------------------- | ----------------------------------------------------------------------------------- |\n| POST       | /api/v1/user/register              | To sign up a new user account                                                       |\n| POST       | /api/v1/user/login                 | To login an existing user account                                                   |\n| GET        | /api/v1/user/logout                | To logout user sesssion                                                             |\n| DELETE        | /api/v1/user/delete-account             | To delete user's account                                                             |\n| POST       | /api/v1/user/deactivate            | To deactivate user's account                                                             |\n\n### Password\n\n| HTTP Verbs | Endpoints                        | Action                                                               |\n| ---------- | -------------------------------- | -------------------------------------------------------------------- |\n| POST       | /api/v1/user/forgot/password         | For users if password is forgotten |\n| GET        | /api/v1/user/password/reset/:token             | Token is gotten from the mail sent to the user requesting for a password reset                             |\n| PUT        | /api/v1/user/update/password              | To update password                                                    |\n\n\n### OTP\n\n| HTTP Verbs | Endpoints                | Action                            |\n| ---------- | ------------------------ | --------------------------------- |\n| GET       | /api/v1/user/generate/email/otp      | To generate OTP for user email verification |\n| GET       | /api/v1/user/generate/mobile/otp      | To generate OTP for user mobile verification |\n| POST       | /api/v1/user/verify/otp      | To verify mail and mobile |\n### Profile\n\n| HTTP Verbs | Endpoints                           | Action                                   |\n| ---------- | ----------------------------------- | ---------------------------------------- |\n| GET       | /api/v1/user/    | To get all users |\n| GET       | /api/v1/user/search?search={{username/mobileNumber}}     | To search for user |\n| GET       | /api/v1/user/me    | To Personal profile |\n| PUT       | /api/v1/user/update/profile            | To update user profile information         |\n| PUT        | /api/v1/user/update/mobile       | To update user's mobile number                  |\n| PUT        | /api/v1/user/update/email             | To update User's email Address      |\n| POST        | /api/v1/user/update/avatar | To update user's Profile avatar |\n| DELETE        | /api/v1/user/update/avatar | To delete user's Profile avatar |\n\n## Chat\n\n| HTTP Verbs | Endpoints                    | Action                         |\n| ---------- | ---------------------------- | ------------------------------ |\n| POST       | /api/v1/chat    | Access or Create Chat |\n| GET        | /api/v1/chat/fetch        | Fetch all login user's chat               |\n| POST        | /api/v1/chat/create/group   | To Create group chat          |\n| PUT     | /api/v1/chat/group/rename       | To rename Group chat            |\n| PUT      | /api/v1/chat/group/add     | To add users to group chat           |\n| PUT        | /api/v1/chat/group/remove        | To remove users from group chat            |\n| PUT        | /api/v1/chat/group/icon/:chatId     | To add group chat icon      |\n| DELETE     | /api/v1/chat/group/icon/:chatId     | To delete group chat icon             |\n| DELETE      | /api/v1/chat/group/exit?group={{chatId}}     | To update a driver             |\n\n## Messages\n\n| HTTP Verbs | Endpoints                    | Action                         |\n| ---------- | ---------------------------- | ------------------------------ |\n| POST       | /api/v1/message    | Send Message|\n| GET        | /api/v1/message/:chatId        | Fetch all chat messages              |\n| POST        | /api/v1/message/send/audio   | Send audio message        |\n| POST        | /api/v1/message/send/video   | Send video message        |\n| POST        | /api/v1/message/send/image   | Send image message        |\n| POST        | /api/v1/message/send/document   | Send document message        |\n| DELETE     | /api/v1/message/:chatId/:messageId      | Delete message from self         |\n| DELETE      | /api/v1/message/:chatId/:messageId/all    | Delete message from all           |\n| POST        | /api/v1/message/read/:messageId       | To read message            |\n\n## Task Management\n\n### Board\n\n| HTTP Verbs | Endpoints                    | Action                         |\n| ---------- | ---------------------------- | ------------------------------ |\n| POST       | /api/v1/task/:groupID    | Create workspace board|\n| PUT        | /api/v1/task/board/:boardId    | Edit workspace board            |\n| DELETE        | /api/v1/task/board/:boardId   | Delete Workspace board      |\n| GET        | /api/v1/task/board/:boardId   | Get workspace board       |\n| GET        | /api/v1/task/allboard  | Get all logged in user's board       |\n| DELETE        | /api/v1/task/board/memeber-remove/:boardId?groupId={{groupId}}   | Send document message        |\n\n### Task\n\n| HTTP Verbs | Endpoints                    | Action                         |\n| ---------- | ---------------------------- | ------------------------------ |\n| POST       | /api/v1/task/create-task/:boardId?groupId={{groupId}}  | Create task in board |\n| PUT        | /api/v1/task/edit/:taskId/:boardId?groupId={{groupId}}  | Edit board task          |\n| GET        | /api/v1/task/get/:taskId   | Get board task    |\n| DELETE        | /api/v1/task/delete/:taskId/:boardId  | Delete board task      |\n\n### Card\n\n| HTTP Verbs | Endpoints                    | Action                         |\n| ---------- | ---------------------------- | ------------------------------ |\n| POST       | /api/v1/task/card/:taskId?groupId={{groupId}}  | Create card in task |\n| PUT        | /api/v1/task/card/edit/:cardId/:boardId?groupId={{groupId}}\u0026taskId={{taskId}}  | Edit task card       |\n| GET        | /api/v1/task/card/:cardId/:boardId   | Get task Card    |\n| PUT        | /api/v1/task/card/member/:cardId/:boardId?groupId={{groupId}}\u0026taskId={{taskId}} | Add member to task card     |\n| DELETE | /api/v1/task/card/member/remove/:cardId?groupId={{groupId}}\u0026taskId={{taskId}} | Remove member from task card |\n| DELETE | /api/v1/task/card/:taskId/:cardId?groupId={{groupId}} | Delete task card |\n\n### Checklist\n\n| HTTP Verbs | Endpoints                    | Action                         |\n| ---------- | ---------------------------- | ------------------------------ |\n| POST       | /api/v1/task/checklist/:cardId?groupId={{groupId}}\u0026taskId={{taskId}}  | Create card checklist |\n| PUT        | /api/v1/task/editchecklist/edit/:checklistId?groupId={{groupId}}\u0026taskId={{taskId}} | Edit card checklist         |\n| DELETE        | /api/v1/task/checklist/delete/:checklistId/:cardId?groupId={{groupId}}\u0026taskId={{taskId}}   | delete card checklist   |\n| DELETE        | /api/v1/task/checklist/complete/:cardId/:checklistId?groupId={{groupId}}\u0026taskId={{taskId}}\u0026completed={{true/false}} | Complete/Incomplete card checlist      |\n\n### Checklist Content\n\n| HTTP Verbs | Endpoints                    | Action                         |\n| ---------- | ---------------------------- | ------------------------------ |\n| PUT       | /api/v1/task/checklist/content/add/:checklistId/:cardId  | Add content to checklist |\n| PUT        | /api/v1/task/checklist/content/edit/:checklistId/:contentId/:cardId  | Edit checklist content          |\n| PUT        | /api/v1/task/checklist/content/member/:checklistId/:contentId/:cardId   | Add member to checklist content    |\n| DELETE        | /api/v1/task/checklist/content/member/:checklistId/:contentId/:cardId  | Delete member from checklist content      |\n| PATCH   | /api/v1/task/checklist/content/complete/:checklistId/:contentId/:cardId | Complete checklist content  |\n| DELETE | /api/v1/task/checklist/content/delete/:checklistId/:contentId/:cardId | Delete checklist content |\n\n### Activity\n\n| HTTP Verbs | Endpoints                    | Action                         |\n| ---------- | ---------------------------- | ------------------------------ |\n| GET       | /api/v1/activity?chatId={{groupId}} | Get all board activity |\n| PUT        | /api/v1/activity/task?chatId={{groupId}}\u0026taskId={{taskId}} | Get All activity by task          |\n## Technologies Used\n\n- [NodeJS](https://nodejs.org/) This is a cross-platform runtime environment built on Chrome's V8 JavaScript engine used in running JavaScript codes on the server. It allows for installation and managing of dependencies and communication with databases.\n- [ExpressJS](https://www.expresjs.org/) This is a NodeJS web application framework.\n- [MongoDB](https://www.mongodb.com/) This is a free open source NOSQL document database with scalability and flexibility. Data are stored in flexible JSON-like documents.\n- [Mongoose ODM](https://mongoosejs.com/) This makes it easy to write MongoDB validation by providing a straight-forward, schema-based solution to model to application data.\n\n### Author\n\n- [Adeleke Joshua](https://github.com/lekejosh)\n\n### License\n\nThis project is available for use under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flekejosh%2Fteam-collaboration-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flekejosh%2Fteam-collaboration-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flekejosh%2Fteam-collaboration-api/lists"}