An open API service indexing awesome lists of open source software.

https://github.com/ally-matias/task-flow

O TaskFlow é um projeto que visa facilitar a colaboração entre desenvolvedores por meio de tarefas colaborativas.
https://github.com/ally-matias/task-flow

axios bcrypt css express html jwt mongodb node-js nodejs react socket-io

Last synced: 3 months ago
JSON representation

O TaskFlow é um projeto que visa facilitar a colaboração entre desenvolvedores por meio de tarefas colaborativas.

Awesome Lists containing this project

README

          



logo TaskFlow







O TaskFlow é um projeto que visa facilitar a colaboração entre desenvolvedores por
meio de tarefas colaborativas.


---
## 🔴 Clique na imagem para ver o vídeo do projeto:

[![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)

---

## 🚀 Execução:

1. Faça um clone desse repositório rodando: `git clone https://github.com/Ally-Matias/Task-Flow.git`;
2. Entre na pasta rodando pelo terminal: `cd Task-Flow`;
3. Rode `npm install` para instalar as dependências do projeto;
4. Rode na pasta FrontEnd `npm run dev` para iniciar o frontend do projeto.
5. Acrescente também na pasta Backend um arquivo `.env` com esse conteúdo `BCRYPT_SECRET=D35CUBR4537ORC@P@Z!`
6. 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`
7. Rode na pasta BackEnd `nodemon server.js` para iniciar o backend do projeto.

---

## 🗂 Documentação:

Notion

---


📌 Requisitos principais:



Envio de dados utilizando Sockets TCP.

O TaskFlow utiliza a biblioteca Socket.IO para permitir uma comunicação bidirecional em tempo real entre clientes e servidor através de WebSockets, garantindo eficiência e confiabilidade no envio e recebimento de dados entre os desenvolvedores conectados ao sistema.



Protocolo Requisição/Resposta.

No TaskFlow, o protocolo HTTP será utilizado para gerenciar as requisições e respostas entre os clientes e o servidor. Os clientes enviarão requisições HTTP para o servidor, que processará essas solicitações e enviará as respostas correspondentes de volta aos clientes.



Representação externa de dados.

O TaskFlow utiliza o MongoDB como banco de dados para armazenar e recuperar os dados do sistema. O MongoDB é um banco de dados NoSQL que trabalha com documentos JSON, 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.


---


📌 Requisitos específicos:


🔷 Privacidade:



• Garantir a privacidade dos dados dos usuários e tarefas no sistema.

Para garantir a privacidade dos dados, o TaskFlow utiliza diversas tecnologias, incluindo:




  • bcrypt: Uma biblioteca para criptografia de senhas, que permite armazenar senhas de forma segura no banco de dados.


  • jsonwebtoken: Implementação de JSON Web Tokens (JWT) para autenticação e autorização, garantindo que apenas usuários autenticados tenham acesso a determinados recursos.


  • helmet: Um middleware do Express que ajuda a proteger a aplicação configurando vários cabeçalhos HTTP relacionados à segurança.


  • Certificados SSL/TLS: 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.



🔷 Confiabilidade:



• Assegurar a confiabilidade na transmissão e armazenamento dos dados.

Para garantir a confiabilidade na transmissão e armazenamento dos dados, o TaskFlow utiliza as seguintes tecnologias:




  • Socket.IO: Permite a comunicação em tempo real entre clientes e servidor, garantindo a entrega eficiente e confiável dos dados.


  • MongoDB: 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.


  • Express: 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.


  • bcrypt: Uma biblioteca para criptografia de senhas, garantindo a segurança dos dados armazenados.


  • jsonwebtoken: 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.



🔷 Escalabilidade:



• Permitir que o sistema seja capaz de lidar com um grande número de usuários e tarefas.

Para garantir a escalabilidade do sistema, o TaskFlow utiliza as seguintes tecnologias e práticas:




  • MongoDB: 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.


  • Node.js: 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.


  • Express: 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.


---


💻 Stack do Projeto:


Frontend:




  • React - Biblioteca JavaScript para construção da interface do usuário.


  • React Router - Roteamento para aplicativos React.


  • Styled Components - Biblioteca para estilização de componentes com CSS-in-JS.


  • Axios - Cliente HTTP para realizar requisições para o servidor.


  • Mitt - Gerenciador de eventos para comunicação interna entre os componentes.


Backend:




  • Node.js - Ambiente de execução JavaScript do lado do servidor.


  • Express - Framework web para construção de APIs RESTful.


  • MongoDB - Banco de dados NoSQL para armazenamento e recuperação de dados.


  • Socket.IO - Biblioteca para comunicação em tempo real usando WebSockets.


  • bcrypt - Biblioteca para criptografia de senhas.


  • jsonwebtoken - Implementação de JSON Web Tokens (JWT) para autenticação e autorização.


Autores







Alliquison Matias da Silva


Alliquison Matias




Antônio Bandeira Magalhães Neto


Antônio Bandeira




João Paulo N. Rodrigues


João Paulo