O projeto HerCall é um sistema de gerenciamento de chamados desenvolvido utilizando Java Spring Boot e MySQL como banco de dados. O objetivo principal do sistema é facilitar o processo de solicitação, atribuição e acompanhamento de chamados técnicos em ambientes corporativos ou de suporte técnico.
✅Painel Funcionario:
- Exibição da tela principal do funcionário: Mostra os chamados em aberto.
- Cadastro de novos chamados: Permite que os funcionários registrem novos chamados no sistema quando os usuários solicitam suporte ou assistência.
✅Painel Técnico:
-
Exibição da tela principal do técnico: Mostra todos os chamados existentes no sistema, permitindo que os técnicos visualizem e gerenciem todos os chamados, independentemente do estado ou atribuição.
-
Listagem de prioridades: Exibe uma lista de prioridades disponíveis para os técnicos selecionarem ao lidar com os chamados, permitindo uma classificação adequada das solicitações de suporte.
-
Listagem de status de chamados: Fornece uma lista dos diferentes estados de chamados (Aguardando técnico, em atendimento, escalado para outro setor, cancelado e finalizado), permitindo que os técnicos atualizem o status dos chamados conforme necessário.
✅Painel Admin:
-
Exibição de estatísticas mensais de chamados: Essa funcionalidade mostra as estatísticas mensais de chamados em forma de gráficos, permitindo aos administradores visualizar a quantidade de chamados registrados em cada mês.
-
Exibição do número de chamados abertos, em atendimento e finalizados: Essa funcionalidade exibe informações sobre o número de chamados em diferentes estados, como abertos, em atendimento e finalizados, fornecendo uma visão geral do status atual dos chamados.
-
Listagem de usuários cadastrados: Permite aos administradores visualizar todos os usuários cadastrados no sistema.
-
Listagem de setores cadastrados: Similar à listagem de usuários, essa funcionalidade exibe todos os setores cadastrados no sistema, fornecendo informações relevantes sobre cada um deles.
-
Cadastro e exclusão de setores: Permite aos administradores adicionar novos setores ao sistema ou remover setores existentes, conforme necessário, fornecendo flexibilidade na gestão dos setores da organização.
-
Cadastro e exclusão de prioridades: Oferece a capacidade de definir e gerenciar diferentes níveis de prioridade para os chamados, permitindo aos administradores configurar as prioridades de acordo com as necessidades da organização.
- JavaSpring
- MySQL
- Postman
- Dependencia JDK
- Thymeleaf
- Spring Web
- Spring Data JPA (Java Persistence API)
- Spring Boot DevTools
- Lombok
- Bootstrap
- Hibernate
# Clone repositório
git clone https://github.com/Adrianaramss/hercall.git
Abra o projeto no IntelliJ IDEA e navega até a pasta src > main > resources, arquivo chamado "application.properties". Ao abrir o arquivo "application.properties" e colocar a sua senha de acesso do seu MySQL.
Ir em src > main > java > hercall > "HercallApplication" e executar o projeto.
Apos Executar no botão "Play"
POST - localhost:8080/usuarios
{
"nome": "maria",
"email": "[email protected]",
"matricula": "121248",
"senha": "1234",
"confirmaSenha": "1234",
"tipoUsuario": "FUNCIONARIO"
}
Output
{
"status": 201,
"message": "Usuário cadastrado com sucesso!",
"data": {
"id": 4,
"nome": "maria",
"email": "[email protected]",
"matricula": "121248",
"senha": "1234",
"confirmaSenha": null,
"tipoUsuario": "FUNCIONARIO"
}
}
GET - localhost:8080/usuarios
Output
{
"status": 200,
"message": "Listagem de usuários realizada com sucesso!",
"data": [
{
"id": 1,
"nome": "Funcionario1",
"email": "[email protected]",
"matricula": "123",
"senha": "senha123",
"confirmaSenha": null,
"tipoUsuario": "FUNCIONARIO"
},
{
"id": 2,
"nome": "Admin1",
"email": "[email protected]",
"matricula": "456",
"senha": "senha456",
"confirmaSenha": null,
"tipoUsuario": "ADMIN"
},
{
"id": 3,
"nome": "Tecnico1",
"email": "[email protected]",
"matricula": "789",
"senha": "senha789",
"confirmaSenha": null,
"tipoUsuario": "TECNICO"
},
{
"id": 4,
"nome": "maria",
"email": "[email protected]",
"matricula": "121248",
"senha": "1234",
"confirmaSenha": null,
"tipoUsuario": "FUNCIONARIO"
}
]
}
GET - localhost:8080/usuarios/4
Output
{
"status": 200,
"message": "Detalhamento de usuário realizado com sucesso!",
"data": {
"id": 4,
"nome": "maria",
"email": "[email protected]",
"matricula": "121248",
"senha": "1234",
"confirmaSenha": null,
"tipoUsuario": "FUNCIONARIO"
}
}
PUT - localhost:8080/usuarios/4
Output
{
"status": 200,
"message": "Usuário editada com sucesso!",
"data": {
"id": 4,
"nome": "maria",
"email": "[email protected]",
"matricula": "121248",
"senha": "1234",
"confirmaSenha": null,
"tipoUsuario": "FUNCIONARIO"
}
}
DELETE - localhost:8080/usuarios/4
Output
{
"status": 200,
"message": "Usuário excluído com sucesso!",
"data": {
"id": 4,
"nome": "maria",
"email": "[email protected]",
"matricula": "121248",
"senha": "1234",
"confirmaSenha": null,
"tipoUsuario": "FUNCIONARIO"
}
}
POST - localhost:8080/setores
{
"tipoSetor": "Vendas"
}
Output
{
"status": 201,
"message": "Setor cadastrado com sucesso!",
"data": {
"id_setor": 7,
"tipoSetor": "Vendas"
}
}
Output
{
"status": 200,
"message": "Listagem de setores realizada com sucesso!",
"data": [
{
"id_setor": 5,
"tipoSetor": "Departamento pessoal"
},
{
"id_setor": 6,
"tipoSetor": "Desenvolvimento web"
},
{
"id_setor": 2,
"tipoSetor": "Financeiro"
},
{
"id_setor": 3,
"tipoSetor": "Markenting"
},
{
"id_setor": 4,
"tipoSetor": "RH"
},
{
"id_setor": 1,
"tipoSetor": "Suporte"
},
{
"id_setor": 7,
"tipoSetor": "Vendas"
}
]
}
GET - localhost:8080/setores/2
Output
{
"status": 200,
"message": "Detalhamento de setor realizado com sucesso!",
"data": {
"id_setor": 2,
"tipoSetor": "Financeiro"
}
}
PUT - localhost:8080/setores/7
{
"tipoSetor": "COMERCIAL"
}
Output
{
"status": 200,
"message": "Setor editado com sucesso!",
"data": {
"id_setor": 7,
"tipoSetor": "COMERCIAL"
}
}
DELETE - localhost:8080/setores/7
Output
{
"status": 200,
"message": "Setor excluído com sucesso!",
"data": {
"id_setor": 7,
"tipoSetor": "COMERCIAL"
}
}
POST - localhost:8080/prioridades
{
"tipoPrioridade": "URGENTISSIMO"
}
Output
{
"status": 201,
"message": "Prioridade cadastrada com sucesso!",
"data": {
"id_prioridade": 5,
"tipoPrioridade": "URGENTISSIMO"
}
}
GET - localhost:8080/prioridades
Output
{
"status": 200,
"message": "Listagem de prioridades realizada com sucesso!",
"data": [
{
"id_prioridade": 3,
"tipoPrioridade": "Alta"
},
{
"id_prioridade": 1,
"tipoPrioridade": "Baixa"
},
{
"id_prioridade": 2,
"tipoPrioridade": "Média"
},
{
"id_prioridade": 4,
"tipoPrioridade": "Urgente"
}
]
}
GET - localhost:8080/prioridades/1
Output
{
"status": 200,
"message": "Detalhamento de prioridade realizado com sucesso!",
"data": {
"id_prioridade": 1,
"tipoPrioridade": "Baixa"
}
}
PUT - localhost:8080/prioridades/5
{
"tipoPrioridade": "URGENTISSIMA"
}
Output
{
"status": 200,
"message": "Prioridade editada com sucesso!",
"data": {
"id_prioridade": 5,
"tipoPrioridade": "URGENTISSIMA"
}
}
DELETE - localhost:8080/prioridades/5
Output
{
"status": 200,
"message": "Prioridade excluída com sucesso!",
"data": {
"id_prioridade": 5,
"tipoPrioridade": "URGENTISSIMA"
}
}
GET - localhost:8080/chamados
Output
{"status": 200,
"message": "Listagem de chamados realizada com sucesso!",
"data": [
{
"id": 1,
"descricao": "Chamado 1 - Descrição",
"status": "Aguardando técnico",
"data_inicio": "01/01/2024",
"data_termino": "N/A",
"id_setor": 5,
"tipoSetor": "Departamento pessoal",
"id_solicitante": 1,
"nome_solicitante": "Funcionario1",
"id_responsavel": 3,
"nome_responsavel": "Tecnico1",
"id_prioridade": 2,
"tipoPrioridade": "Média"
},
{
"id": 2,
"descricao": "Chamado 2 - Descrição",
"status": "Em atendimento",
"data_inicio": "01/02/2024",
"data_termino": "N/A",
"id_setor": 4,
"tipoSetor": "RH",
"id_solicitante": 1,
"nome_solicitante": "Funcionario1",
"id_responsavel": 3,
"nome_responsavel": "Tecnico1",
"id_prioridade": 4,
"tipoPrioridade": "Urgente"
},
]
}
GET - localhost:8080/chamados/1
Output
{
"status": 200,
"message": "Detalhamento de chamados realizado com sucesso!",
"data": {
"id": 1,
"descricao": "Chamado 1 - Descrição",
"status": "Aguardando técnico",
"data_inicio": "01/01/2024",
"data_termino": "N/A",
"id_setor": 5,
"tipoSetor": "Departamento pessoal",
"id_solicitante": 1,
"nome_solicitante": "Funcionario1",
"id_responsavel": 3,
"nome_responsavel": "Tecnico1",
"id_prioridade": 2,
"tipoPrioridade": "Média"
}
}
GET - localhost:8080/chamados/1
Output
{
"status": 200,
"message": "Chamado excluído com sucesso!",
"data": {
"id": 1,
"descricao": "Chamado 1 - Descrição",
"status": "Aguardando técnico",
"data_inicio": "01/01/2024",
"data_termino": "N/A",
"id_setor": 5,
"tipoSetor": "Departamento pessoal",
"id_solicitante": 1,
"nome_solicitante": "Funcionario1",
"id_responsavel": 3,
"nome_responsavel": "Tecnico1",
"id_prioridade": 2,
"tipoPrioridade": "Média"
}
}
POST - localhost:8080/chamados
QUERY PARAMS
{
"descricao": "Descrição",
"status": "Aguardando técnico",
"id_setor": 1,
"tipoSetor": "Suporte",
"id_solicitante": 1,
"id_prioridade": 1
}
Output
{
"status": 201,
"message": "Chamado cadastrado com sucesso!",
"data": {
"id": 13,
"descricao": "Descrição",
"status": "Aguardando técnico",
"data_inicio": "14/05/2024",
"data_termino": "N/A",
"id_setor": 1,
"tipoSetor": "Suporte",
"id_solicitante": 1,
"nome_solicitante": "Funcionario1",
"id_responsavel": "N/A",
"nome_responsavel": "N/A",
"id_prioridade": 1,
"tipoPrioridade": "Baixa"
}
}
PUT - localhost:8080/chamados/13
QUERY PARAMS
{
"descricao": "Solicitação de serviço",
"status": "FINALIZADO",
"id_setor": 1,
"id_solicitante": 1,
"id_responsavel": 1,
"id_prioridade": 1
}
Output
{
"status": 200,
"message": "Chamado editado com sucesso!",
"data": {
"id": 13,
"descricao": "Solicitação de serviço",
"status": "Finalizado",
"data_inicio": "N/A",
"data_termino": "14/05/2024",
"id_setor": 1,
"tipoSetor": "Suporte",
"id_solicitante": "N/A",
"nome_solicitante": "N/A",
"id_responsavel": 1,
"nome_responsavel": "Funcionario1",
"id_prioridade": 1,
"tipoPrioridade": "Baixa"
}
}
Para acessar a documentação oficial Postman: Clique aqui!
Anna Karoline
Adriana Ramos
Amanda Vidal
Daniela Sousa
Jurineide Souza
Janete Souza