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.
- Host: GitHub
- URL: https://github.com/samuel-jonathan-qa/sectorflow
- Owner: Samuel-Jonathan-QA
- Created: 2025-10-25T20:50:40.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-11-07T22:45:53.000Z (3 months ago)
- Last Synced: 2025-11-08T00:17:02.347Z (3 months ago)
- Topics: express, full-stack-web-development, javascript, jwt-authentication, nodejs, rbac-authorization, react, rest-api, sequelize, sqlite
- Language: JavaScript
- Homepage:
- Size: 228 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
SectorFlow | Sistema de Gestão Setorizada
[](https://nodejs.org/)
[](https://expressjs.com/)
[](https://reactjs.org/)
[](https://jwt.io/)
[](/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.