Giter Club home page Giter Club logo

task-flow's Introduction

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


🚀 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

task-flow's People

Contributors

ally-matias avatar joaopaulonr avatar bandeirapk avatar dependabot[bot] avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.