Este relatório descreve o desenvolvimento da aplicação proposta para o cargo desenvolvedor Java.
- Linguagem de Programação: Java
- Framework Web: JavaServer Faces (JSF)
- Framework UI: PrimeFaces
- Persistência de dados: JPA com PostgreSQL
- Servidor de Aplicação: GlassFish Server 5
- Gerenciamento de Dependências: Apache Maven
O projeto foi desenvolvido como uma aplicação Java Web utilizando o framework JavaServer Faces (JSF). O JSF é um framework MVC (Model-View-Controller) que facilita o desenvolvimento de interfaces de usuário baseadas em componentes. foi utilizado o JavaServer Faces (JSF) juntamente com o framework PrimeFaces para desenvolver a interface de usuário da aplicação. O PrimeFaces é um conjunto de componentes e temas prontos para uso com o JSF. Ele fornece uma ampla variedade de componentes ricos em recursos, como tabelas, formulários, botões e menus, facilitando a criação de interfaces de usuário sofisticadas. No projeto, aproveitamos os recursos do PrimeFaces para criar uma interface de usuário moderna e interativa. Foram utilizados componentes como DataTables para exibir e manipular a lista de tarefas, Dialogs para exibir modais, Buttons para ações de adicionar, editar e remover tarefas, entre outros.
-
Listagem de Tarefas: Permite visualizar todas as tarefas cadastradas, sendo possível exibir os detalhes de cada uma.
-
Adição de Tarefas: Permite adicionar uma nova tarefa. É necessário informar o título, descrição, responsável e data de conclusão da tarefa.
-
Edição de Tarefas: Permite editar os detalhes de uma tarefa existente, incluindo o título, descrição, situação, responsável e data de conclusão.
-
Remoção de Tarefas: Permite remover uma tarefa existente, excluindo-a permanentemente do banco de dados.
A aplicação utiliza o banco de dados PostgreSQL para armazenar e gerenciar os dados das tarefas. O PostgreSQL é um sistema de gerenciamento de banco de dados relacional de código aberto e amplamente utilizado. Ele oferece recursos de confiabilidade e desempenho. Através da combinação do JSF, JPA e PostgreSQL, a aplicação possui uma base sólida para a criação e gerenciamento eficiente das tarefas, garantindo a persistência e integridade dos dados.
A aplicação utiliza o Java Persistence API (JPA) como framework de persistência de dados. O JPA é uma especificação do Java que define uma API de mapeamento objeto-relacional, permitindo o mapeamento transparente de objetos Java para tabelas em um banco de dados relacional. Com o uso do JPA, é possível simplificar o acesso aos dados e facilitar as operações de persistência, remoção, atualização e consulta de objetos no banco de dados. O JPA oferece uma abstração de nível superior, permitindo que o desenvolvedor trabalhe com entidades e consultas em vez de lidar diretamente com SQL A classe TarefaDAO é utilizada para encapsular as operações relacionadas à entidade Tarefa. Vejamos algumas funcionalidades presentes no projeto:
-
O método
salvar
é responsável por persistir uma nova tarefa no banco de dados. Ele utiliza oEntityManager
para iniciar uma transação, persistir a tarefa e confirmar a transação. -
O método
excluirTarefa
é responsável por remover uma tarefa do banco de dados. Ele utiliza oEntityManager
para iniciar uma transação, buscar a tarefa pelo seu número (caso não esteja no estado "managed") e removê-la. -
O método
editarTarefa
é responsável por atualizar os dados de uma tarefa existente no banco de dados. Ele utiliza oEntityManager
para iniciar uma transação, mesclar (merge) as alterações da tarefa e confirmar a transação. -
O método
concluirTarefa
é responsável por marcar uma tarefa como concluída no banco de dados. Ele utiliza oEntityManager
para iniciar uma transação, mesclar as alterações da tarefa e confirmar a transação. -
O método
listarTarefas
é responsável por buscar as tarefas no banco de dados com base em um filtro. Ele utiliza oEntityManager
para criar uma consulta (query) com base nos critérios definidos no filtro. A consulta é realizada utilizando a linguagem JPQL (Java Persistence Query Language), e os parâmetros do filtro são definidos usando o métodosetParameter
daTypedQuery
.
Para executar a aplicação em um ambiente local, siga as instruções abaixo:
-
Clone o repositório do projeto:
git clone https://github.com/luizhtss/esig_taskmanager.git
-
Navegue até o diretório do projeto:
cd esig_taskmanager
-
Execute o comando Maven para construir o arquivo WAR:
mvn clean package
-
Após a conclusão do comando, você encontrará o arquivo
ESIG-Challenger-1.0.war
no diretóriotarget
. -
Faça o deploy do arquivo WAR em um servidor GlassFish Server ou outro servidor Java EE.
-
Inicie o servidor GlassFish:
$GLASSFISH_HOME/bin/asadmin start-domain
Substitua
$GLASSFISH_HOME
pelo diretório de instalação do GlassFish Server.Realize o deploy do arquivo WAR:
$GLASSFISH_HOME/bin/asadmin deploy --name=ESIG-Challenger --contextroot=/ESIG-Challenger /caminho/para/ESIG-Challenger-1.0.war
Substitua
/caminho/para
pelo diretório onde está localizado o arquivo WAR. -
Acesse a aplicação pelo navegador usando o seguinte endereço: http://localhost:8080/ESIG-Challenger
Nota: Certifique-se de ter o GlassFish Server 5 ou outro servidor Java EE (JDK 8) configurado corretamente em sua máquina e de atualizar as configurações de host, usuário e senha no arquivo
persistence.xml
. Se você estiver utilizando outro servidor de aplicação, consulte a documentação correspondente para obter os comandos de deploy adequados.
-
Clone o repositório do projeto:
git clone https://github.com/luizhtss/esig_taskmanager.git
-
Navegue até o diretório do projeto:
cd esig_taskmanager
-
Execute o comando Maven para construir o arquivo WAR:
mvn clean package
-
Inicie o container da aplicação:
docker-compose up
-
Após a inicialização, acesse a aplicação pelo navegador usando o seguinte endereço: http://localhost:8080/ESIG-Challenger
- Nome: Luiz Henrique Targino da Silva Souza
- E-mail: lhtargino@gmail.com