Chamaí é uma plataforma completa para gerenciamento de chamados, desenvolvida para facilitar a comunicação entre usuários, técnicos e administradores, permitindo o registro, acompanhamento e resolução de chamados de forma eficiente.
- Criação de Chamados: Usuários podem abrir chamados informando título, descrição, prioridade e setor. O sistema envia um e-mail de confirmação ao solicitante.
- Cadastro de Técnicos e Administradores: Administradores podem cadastrar novos técnicos e outros administradores com login e senha exclusivos.
- Direcionamento de Chamados: Administradores podem direcionar chamados para técnicos específicos.
- Atribuição de Chamados: Técnicos podem se atribuir a chamados que foram direcionados a eles, mudando o status para
em_atendimento
. - Exibição do Técnico no Chamado: O nome do técnico atribuído é exibido no card do chamado.
- Alteração de Prioridade: Administradores e técnicos podem alterar a prioridade de chamados em aberto.
- Resolução de Chamados: Administradores e técnicos podem resolver chamados; o sistema envia e-mail automático ao solicitante.
- Histórico de Ações: Toda movimentação relevante é registrada no histórico de cada chamado.
- Autenticação e Autorização (RBAC): Sistema de login com cookies HTTP-only, com permissões distintas para usuários, técnicos e administradores.
- Painel Técnico: Técnicos visualizam apenas os chamados direcionados a eles ou que já estão em atendimento.
- Ordenação por Data: Chamados são listados do mais recente para o mais antigo.
- Filtros e Busca: Administradores podem filtrar chamados por status, prioridade, setor e termos de busca.
- Listagem Dinâmica de Setores: O sistema detecta automaticamente os setores existentes nos chamados.
# Clone o repositório
git clone https://github.com/Captain-not-so-obvious/Chamai.git
cd Chamai
# Instale as dependências na raiz e no frontend
npm install
cd frontend
npm install
cd ..
Crie o arquivo .env
na raiz do projeto:
DB_HOST=localhost
DB_NAME=chamai
DB_USER=postgres
DB_PASS=yourpassword
DB_PORT=5432
JWT_SECRET=your_jwt_secret
SMTP_USER=your_smtp_user
SMTP_PASS=your_smtp_password
# Executa migrations
npx sequelize db:migrate
# Inicia o servidor Node.js
npm start
npm run dev
Aplicação disponível em: http://localhost:5173
A autenticação é feita via cookies HTTP-only. O token não é retornado no corpo da resposta e não pode ser acessado via JavaScript.
POST /chamados
Payload exemplo:
{
"solicitanteNome": "João Silva",
"solicitanteEmail": "[email protected]",
"titulo": "Erro no sistema",
"descricao": "Tela de login não carrega.",
"prioridade": "alta",
"setor": "Financeiro"
}
POST /auth/login
Após login, as requisições para rotas protegidas serão autenticadas automaticamente.
Contribuições são bem-vindas! Abra uma issue ou envie um pull request com melhorias.
Este projeto é de uso livre e aberto.