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

https://github.com/samuel-jonathan-qa/sectorflow

Sistema Full-Stack de Gestão Setorizada (SectorFlow) com Backend em Node.js/Express (API REST protegida por JWT e RBAC) e Frontend em React. Focado em segurança e no controle de acesso baseado em Roles (ADMIN/VENDEDOR) para gerenciamento de Usuários, Setores e Produtos.
https://github.com/samuel-jonathan-qa/sectorflow

express full-stack-web-development javascript jwt-authentication nodejs rbac-authorization react rest-api sequelize sqlite

Last synced: 3 months ago
JSON representation

Sistema Full-Stack de Gestão Setorizada (SectorFlow) com Backend em Node.js/Express (API REST protegida por JWT e RBAC) e Frontend em React. Focado em segurança e no controle de acesso baseado em Roles (ADMIN/VENDEDOR) para gerenciamento de Usuários, Setores e Produtos.

Awesome Lists containing this project

README

          

SectorFlow | Sistema de Gestão Setorizada



[![Node.js](https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white)](https://nodejs.org/)
[![Express.js](https://img.shields.io/badge/Express.js-000000?style=for-the-badge&logo=express&logoColor=white)](https://expressjs.com/)
[![React](https://img.shields.io/badge/React-61DAFB?style=for-the-badge&logo=react&logoColor=black)](https://reactjs.org/)
[![JWT](https://img.shields.io/badge/JWT-black?style=for-the-badge&logo=json-web-tokens&logoColor=white)](https://jwt.io/)
[![Status](https://img.shields.io/badge/Status-Desenvolvimento-blue?style=for-the-badge)](/status)


🎯 Sobre o Projeto


O SectorFlow é um sistema full-stack projetado para centralizar e gerenciar recursos (Usuários, Setores e Produtos) com base em segmentação.
O foco principal é a segurança e a separação de responsabilidades através de uma API REST protegida por JSON Web Tokens (JWT) e Controle de Acesso Baseado em Papéis (Role-Based Access Control - RBAC).

📋 Fases Atuais



     

  • Fundação e Segurança (JWT, Bcrypt, Roles): ✅ Completa

  •  

  • CRUD Usuários: ✅ Completa (com autenticação e autorização por Role)

  •  

  • CRUD Setores: ⚙️ Pendente

  •  

  • CRUD Produtos: ⚙️ Pendente




⚙️ Tecnologias e Arquitetura

 
   
      Categoria
      Tecnologia
      Uso Principal
   
 
 
   
      Servidor
      Node.js (Express)
      Roteamento, API REST
   
   
      Banco de Dados
      Sequelize / SQLite
      ORM, persistência de dados
   
   
      Segurança
      JWT / Bcrypt.js
      Autenticação sem estado e hashing de senhas
   
   
      Cliente
      React
      Single Page Application (SPA), Interface de Usuário
   
 

🏛️ Arquitetura do Projeto



O projeto segue uma arquitetura Full-Stack Separada, onde a comunicação é feita exclusivamente via API REST:



     

  • Backend (API Node.js/Express): Segue o padrão MVC (Model-View-Controller), com foco na separação da lógica de acesso a dados (Models) e regras de negócio (Controllers). Utiliza um sistema de Setup de Associações Centralizado para evitar dependências circulares.

  •  

  • Frontend (React): Utiliza uma Arquitetura Baseada em Componentes (similar ao MVVM), separando a lógica de estado e comunicação de dados (Pages/View Model) da apresentação da interface (Components/View).

📁 Estrutura do Repositório


projeto/
├── backend/                  # API REST (Node.js/Express)
│   ├── config/               # Configurações de DB e Associações
│   ├── models/               # Esquemas do DB (Sequelize)
│   ├── routes/               # Endpoints (auth.js, users.js, etc.)
│   ├── middleware/           # Middleware de Autenticação e Permissão
│   └── server.js             # Ponto de inicialização
└── frontend/                 # Aplicação Cliente (React)
    ├── src/
    │   ├── components/       # Blocos de UI (UserLogin, Forms, Lists)
    │   ├── pages/            # Telas (Dashboard, SetoresPage, etc.)
    │   └── api.js            # Comunicação com o Backend (Axios)


🚀 Como Executar o Projeto

1️⃣ Backend (API)

# Navega para a pasta da API

cd backend

# Instala as dependências
npm install

# Cria o arquivo de ambiente (.env)
echo "PORT=3001\nJWT_SECRET=sua_chave_secreta_forte" > .env

# 🚨 Setup do Banco de Dados (SQLite) 🚨
# 1. Cria as tabelas
sequelize db:migrate
# 2. Popula as tabelas com usuários/setores iniciais
sequelize db:seed:all

# Inicia o servidor
npm start

2️⃣ Frontend (React)

# Volta para a raiz do projeto e acessa o frontend

cd ..
cd frontend

# Instala as dependências
npm install

# Inicia a aplicação React (geralmente em http://localhost:3000)
npm start


🛡️ Ponto de Verificação de Segurança (QA)

🔐 Credenciais de Teste

O banco de dados é inicializado com um usuário administrador para testes:

 
   
      Campo
      Valor
      Observação
   
 
 
   
      Email
      admin@sectorflow.com
      Usuário padrão (Role: ADMIN)
   
   
      Senha
      123
      Senha de teste. Armazenada de forma hashada via Bcrypt.
   
 

🧠 Teste de Autenticação

Para acessar qualquer rota protegida (como /api/users), é obrigatório enviar o token no cabeçalho HTTP:

Authorization: Bearer [TOKEN_JWT_GERADO_PELO_LOGIN]

O middleware backend/middleware/auth.js valida o token e o backend/middleware/permission.js verifica a Role antes de conceder acesso à rota.



💻 Automação, café e paciência — nessa ordem.