{"id":25832892,"url":"https://github.com/ally-matias/task-flow","last_synced_at":"2026-04-02T02:49:31.009Z","repository":{"id":169871399,"uuid":"645952162","full_name":"Ally-Matias/Task-Flow","owner":"Ally-Matias","description":"O TaskFlow é um projeto que visa facilitar a colaboração entre desenvolvedores por meio de tarefas colaborativas. ","archived":false,"fork":false,"pushed_at":"2023-11-19T20:17:06.000Z","size":5650,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2023-11-19T21:20:46.866Z","etag":null,"topics":["axios","bcrypt","css","express","html","jwt","mongodb","node-js","nodejs","react","socket-io"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":false,"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/Ally-Matias.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}},"created_at":"2023-05-26T20:57:59.000Z","updated_at":"2023-11-19T21:20:49.540Z","dependencies_parsed_at":"2023-11-19T21:20:47.203Z","dependency_job_id":"7402ba46-f269-478d-8a06-05baa2bdcb5e","html_url":"https://github.com/Ally-Matias/Task-Flow","commit_stats":null,"previous_names":["ally-matias/task-flow"],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ally-Matias%2FTask-Flow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ally-Matias%2FTask-Flow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ally-Matias%2FTask-Flow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ally-Matias%2FTask-Flow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ally-Matias","download_url":"https://codeload.github.com/Ally-Matias/Task-Flow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241246628,"owners_count":19933414,"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":["axios","bcrypt","css","express","html","jwt","mongodb","node-js","nodejs","react","socket-io"],"created_at":"2025-02-28T21:49:23.111Z","updated_at":"2025-10-04T14:15:26.287Z","avatar_url":"https://github.com/Ally-Matias.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv style=\"text-align: center\"\u003e\n  \u003ch1 align=\"center\"\u003e\u003cimg src=\"Frontend/src/assets/img/logoReadme.png\" alt=\"logo\" width=\"33\" height=\"33\"\u003e TaskFlow\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    \u003cimg\n      src=\"http://img.shields.io/static/v1?label=STATUS\u0026message=%20FINALIZADO\u0026color=GREEN\u0026style=for-the-badge\" /\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv\u003e\n  \u003cp align=\"center\"\u003eO \u003cb\u003eTaskFlow\u003c/b\u003e é um projeto que visa facilitar a colaboração entre \u003cb\u003edesenvolvedores\u003c/b\u003e por\n    meio de tarefas colaborativas. \n  \u003c/p\u003e\n\u003c/div\u003e\n\n---\n## 🔴 Clique na imagem para ver o vídeo do projeto:\n\n[![Texto alternativo](https://github.com/Ally-Matias/Task-Flow/blob/master/Frontend/src/assets/img/Screenshot%20from%202023-07-12%2014-29-28.png)](https://youtu.be/biLjNwEFt6Y)\n\n---\n\n## 🚀 Execução:\n\n1. Faça um clone desse repositório rodando: `git clone https://github.com/Ally-Matias/Task-Flow.git`;\n2. Entre na pasta rodando pelo terminal: `cd Task-Flow`;\n3. Rode `npm install` para instalar as dependências do projeto;\n4. Rode na pasta FrontEnd `npm run dev` para iniciar o frontend do projeto.\n5. Acrescente também na pasta Backend um arquivo `.env` com esse conteúdo `BCRYPT_SECRET=D35CUBR4537ORC@P@Z!`\n6. Para rodar o banco de dados, o MongoDB pode ser executado em um contêiner do Docker, após instalar e configurar o mesmo, use esse comando para iniciar: `sudo docker run -p 27017:27017 -d mongo`\n7. Rode na pasta BackEnd `nodemon server.js` para iniciar o backend do projeto.\n   \n---\n\n## 🗂 Documentação:\n\n\u003ca href=\"https://wobbly-saturday-dd1.notion.site/Documenta-o-API-240b8d69da114400b1a99bda0bd2d87a\" target=\"_blank\"\u003e\u003cb\u003eNotion\u003c/b\u003e\u003c/a\u003e\n\n---\n\u003cdiv align=\"justify\"\u003e\n  \u003ch3\u003e\u003cb\u003e📌 Requisitos principais:\u003c/b\u003e\u003c/h3\u003e\n  \u003cpre align=\"justify\"\u003e\n\u0026#x2022 \u003cb\u003eEnvio de dados utilizando Sockets TCP.\u003c/b\u003e\n\u003c/pre\u003e\n  \u003cp align=\"justify\"\u003eO TaskFlow utiliza a biblioteca \u003ca href=\"https://socket.io/docs/v4/\"\n      target=\"_blank\"\u003e\u003cb\u003eSocket.IO\u003c/b\u003e\u003c/a\u003e para permitir uma comunicação bidirecional em tempo real entre \u003cb\u003eclientes\u003c/b\u003e e \u003cb\u003eservidor\u003c/b\u003e através de \u003cb\u003eWebSockets\u003c/b\u003e, garantindo eficiência e confiabilidade no envio e recebimento de dados entre os desenvolvedores conectados ao sistema.\u003c/p\u003e\n  \u003cpre align=\"justify\"\u003e\n\u0026#x2022 \u003cb\u003eProtocolo Requisição/Resposta.\u003c/b\u003e\n\u003c/pre\u003e\n  \u003cp\u003eNo TaskFlow, o protocolo \u003cb\u003eHTTP\u003c/b\u003e será utilizado para gerenciar as \u003cb\u003erequisições\u003c/b\u003e e \u003cb\u003erespostas\u003c/b\u003e entre os clientes e o servidor. Os clientes enviarão requisições \u003cb\u003eHTTP\u003c/b\u003e para o servidor, que processará essas solicitações e enviará as respostas correspondentes de volta aos clientes.\u003c/p\u003e\n  \u003cpre align=\"justify\"\u003e\n\u0026#x2022 \u003cb\u003eRepresentação externa de dados.\u003c/b\u003e\n\u003c/pre\u003e\n  \u003cp\u003eO TaskFlow utiliza o \u003ca href=\"https://www.mongodb.com/docs/\" target=\"_blank\"\u003e\u003cb\u003eMongoDB\u003c/b\u003e\u003c/a\u003e como banco de dados para armazenar e recuperar os dados do sistema. O MongoDB é um banco de dados \u003cb\u003eNoSQL\u003c/b\u003e que trabalha com documentos \u003cb\u003eJSON\u003c/b\u003e, o que facilita a representação externa dos dados. Os desenvolvedores podem interagir com o banco de dados MongoDB para armazenar informações relacionadas a tarefas, usuários, mensagens e outros dados relevantes do sistema.\u003c/p\u003e\n\u003c/div\u003e\n\n---\n\n\u003cdiv\u003e\n  \u003ch3\u003e\u003cb\u003e📌 Requisitos específicos:\u003c/b\u003e\u003c/h3\u003e\n  \u003cp\u003e\u003cb\u003e 🔷 Privacidade:\u003c/b\u003e\u003c/p\u003e\n  \u003cpre\u003e\n\u0026#x2022 Garantir a privacidade dos dados dos usuários e tarefas no sistema.\n\u003c/pre\u003e\n  \u003cp align=\"justify\"\u003ePara garantir a privacidade dos dados, o TaskFlow utiliza diversas tecnologias, incluindo:\u003c/p\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003cb\u003ebcrypt:\u003c/b\u003e Uma biblioteca para criptografia de senhas, que permite armazenar senhas de forma segura no banco de dados.\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003ejsonwebtoken:\u003c/b\u003e Implementação de JSON Web Tokens (JWT) para autenticação e autorização, garantindo que apenas usuários autenticados tenham acesso a determinados recursos.\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003ehelmet:\u003c/b\u003e Um middleware do Express que ajuda a proteger a aplicação configurando vários cabeçalhos HTTP relacionados à segurança.\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eCertificados SSL/TLS:\u003c/b\u003e Tanto no frontend quanto no backend, utilizamos certificados SSL/TLS para estabelecer conexões seguras e criptografadas entre o cliente e o servidor. Essa criptografia de ponta a ponta protege a privacidade dos dados durante a transmissão, garantindo que as informações sejam acessadas apenas pelo remetente e pelo destinatário pretendidos.\u003c/li\u003e\n  \u003c/ul\u003e\n  \n  \u003cp\u003e\u003cb\u003e 🔷 Confiabilidade:\u003c/b\u003e\u003c/p\u003e\n  \u003cpre\u003e\n\u0026#x2022 Assegurar a confiabilidade na transmissão e armazenamento dos dados.\n\u003c/pre\u003e\n  \u003cp align=\"justify\"\u003ePara garantir a confiabilidade na transmissão e armazenamento dos dados, o TaskFlow utiliza as seguintes tecnologias:\u003c/p\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003cb\u003eSocket.IO:\u003c/b\u003e Permite a comunicação em tempo real entre clientes e servidor, garantindo a entrega eficiente e confiável dos dados.\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eMongoDB:\u003c/b\u003e Um banco de dados NoSQL altamente confiável, que fornece recursos de replicação e balanceamento de carga para garantir a disponibilidade e confiabilidade dos dados.\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eExpress:\u003c/b\u003e Um framework web confiável para construir APIs RESTful, oferecendo uma base sólida para a comunicação segura entre o cliente e o servidor.\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003ebcrypt:\u003c/b\u003e Uma biblioteca para criptografia de senhas, garantindo a segurança dos dados armazenados.\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003ejsonwebtoken:\u003c/b\u003e Implementação de JSON Web Tokens (JWT) para autenticação e autorização dos usuários, garantindo a integridade e autenticidade das informações transmitidas.\u003c/li\u003e\n  \u003c/ul\u003e\n  \n  \u003cp\u003e\u003cb\u003e 🔷 Escalabilidade:\u003c/b\u003e\u003c/p\u003e\n  \u003cpre\u003e\n\u0026#x2022 Permitir que o sistema seja capaz de lidar com um grande número de usuários e tarefas.\n\u003c/pre\u003e\n  \u003cp align=\"justify\"\u003ePara garantir a escalabilidade do sistema, o TaskFlow utiliza as seguintes tecnologias e práticas:\u003c/p\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003cb\u003eMongoDB:\u003c/b\u003e Com sua arquitetura flexível e escalável, o MongoDB permite que o sistema lide com um grande volume de dados e suporte a um número crescente de usuários e tarefas.\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eNode.js:\u003c/b\u003e Com seu modelo de E/S não bloqueante e orientação a eventos, o Node.js permite um processamento eficiente e escalável das requisições, possibilitando a resposta rápida mesmo com um grande número de usuários.\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eExpress:\u003c/b\u003e Um framework leve e rápido que ajuda a construir APIs escaláveis, fornecendo uma base sólida para o gerenciamento de rotas e manipulação de requisições.\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/div\u003e\n\n---\n\n\u003cdiv\u003e\n  \u003ch3\u003e\u003cb\u003e💻 Stack do Projeto:\u003c/b\u003e\u003c/h3\u003e\n  \u003cp\u003e\u003cb\u003eFrontend:\u003c/b\u003e\u003c/p\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"https://reactjs.org\" target=\"_blank\"\u003eReact\u003c/a\u003e - Biblioteca JavaScript para construção da interface do usuário.\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://reactrouter.com\" target=\"_blank\"\u003eReact Router\u003c/a\u003e - Roteamento para aplicativos React.\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://styled-components.com\" target=\"_blank\"\u003eStyled Components\u003c/a\u003e - Biblioteca para estilização de componentes com CSS-in-JS.\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://axios-http.com\" target=\"_blank\"\u003eAxios\u003c/a\u003e - Cliente HTTP para realizar requisições para o servidor.\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://github.com/developit/mitt\" target=\"_blank\"\u003eMitt\u003c/a\u003e - Gerenciador de eventos para comunicação interna entre os componentes.\u003c/li\u003e\n  \u003c/ul\u003e\n  \u003cp\u003e\u003cb\u003eBackend:\u003c/b\u003e\u003c/p\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"https://nodejs.org\" target=\"_blank\"\u003eNode.js\u003c/a\u003e - Ambiente de execução JavaScript do lado do servidor.\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://expressjs.com\" target=\"_blank\"\u003eExpress\u003c/a\u003e - Framework web para construção de APIs RESTful.\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://www.mongodb.com\" target=\"_blank\"\u003eMongoDB\u003c/a\u003e - Banco de dados NoSQL para armazenamento e recuperação de dados.\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://socket.io/docs/v4\" target=\"_blank\"\u003eSocket.IO\u003c/a\u003e - Biblioteca para comunicação em tempo real usando WebSockets.\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/bcrypt\" target=\"_blank\"\u003ebcrypt\u003c/a\u003e - Biblioteca para criptografia de senhas.\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/jsonwebtoken\" target=\"_blank\"\u003ejsonwebtoken\u003c/a\u003e - Implementação de JSON Web Tokens (JWT) para autenticação e autorização.\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/div\u003e\n\n\u003c!--\n\u003ch2\u003eStack do Projeto 🚀\u003c/h2\u003e\n\u003cdiv style=\"display: inline_block\"\u003e\n  \u003cimg align=\"center\" alt=\"logo\" height=\"45\" width=\"45\"\n    src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/html5/html5-plain.svg\" /\u003e\n  \u003cimg align=\"center\" alt=\"logo\" height=\"45\" width=\"45\"\n    src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/css3/css3-plain.svg\" /\u003e\n  \u003cimg align=\"center\" alt=\"logo\" height=\"45\" width=\"45\"\n    src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/javascript/javascript-plain.svg\" /\u003e\n  \u003cimg align=\"center\" alt=\"logo\" height=\"45\" width=\"45\"\n    src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nodejs/nodejs-original.svg\" /\u003e\n  \u003cimg align=\"center\" alt=\"logo\" height=\"45\" width=\"45\"\n    src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/express/express-original.svg\" /\u003e\n  \u003cimg align=\"center\" alt=\"logo\" height=\"45\" width=\"45\"\n    src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/mongodb/mongodb-original-wordmark.svg\" /\u003e\n\u003c/div\u003e\n\n--\u003e\n\n\u003ch2\u003eAutores\u003c/h2\u003e\n\u003cdiv\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://github.com/Ally-Matias\"\u003e\n          \u003cimg src=\"https://avatars.githubusercontent.com/u/98532868?v=4\" alt=\"Alliquison Matias da Silva\"\n            width=\"100px\"\u003e\n          \u003cbr\u003e\n          \u003csub\u003e\u003cb\u003eAlliquison Matias\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://github.com/bandeirapk\"\u003e\n          \u003cimg src=\"https://avatars.githubusercontent.com/u/85970097?v=4\" alt=\"Antônio Bandeira Magalhães Neto\"\n            width=\"100px\"\u003e\n          \u003cbr\u003e\n          \u003csub\u003e\u003cb\u003eAntônio Bandeira\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://github.com/joaopaulonr\"\u003e\n          \u003cimg src=\"https://avatars.githubusercontent.com/u/106177735?v=4\" alt=\"João Paulo N. Rodrigues\" width=\"100px\"\u003e\n          \u003cbr\u003e\n          \u003csub\u003e\u003cb\u003eJoão Paulo\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fally-matias%2Ftask-flow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fally-matias%2Ftask-flow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fally-matias%2Ftask-flow/lists"}