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.
- Host: GitHub
- URL: https://github.com/ally-matias/task-flow
- Owner: Ally-Matias
- License: mit
- Created: 2023-05-26T20:57:59.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-11-19T20:17:06.000Z (over 2 years ago)
- Last Synced: 2023-11-19T21:20:46.866Z (over 2 years ago)
- Topics: axios, bcrypt, css, express, html, jwt, mongodb, node-js, nodejs, react, socket-io
- Language: JavaScript
- Homepage:
- Size: 5.39 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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:
[](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:
---
📌 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