📚 Aplicação utilizando JFrame - Programação Orientada a Objetos II
Avaliação aplicada pelo professor Adriano Maia.
📢 Sobre a Questão
Devemos criar um programa utilizando a biblioteca JFrame que será responsável por cadastrar um utilizador num determinado sistema. Onde um funcionário terá total acesso ao sistema para adicionar, remover, alterar ou buscar um usuário.
A aplicação deverá ser construída em Java, utilizando a biblioteca JFrame e as ações devem ser em runtime.
📋 Critérios avaliados
- Criar mascarás para o CPF, RG e Números telefonicos.;
- Campos definidos no ‘slide’ devem ser obrigatórios;
- O funciário deve conseguir cadastrar, alterar, excluir e pesquisar um usuário;
- Código precisa ser autoral e se possível é desejável validação;
🎯 Ferramentas utilizadas no desenvolvimento da aplicação:
Java 18
openjdk-18-jre
openjdk-18-jdk
MAVEN
IntelliJ IDEA
GIT
GH CLI
📚 Oque está sendo entregue
Nessa aplicação o funcionário vai conseguir ter todo o processo de CRUD de um utilizador.
Além disso, as classes possuem validação e tratamento de exceções, para que o utilizador não possa fazer algo que não deveria.
Para melhor escalabilidade da aplicação, foi utilizado o padrão de projeto SOLID
,
onde cada classe é responsável por uma única funcionalidade e nada mais que isso.
Para uma compravação de um código funcinal, foi utilizado do GitHubActions responsável por ci/cd,
que testará o código e verificará se funciona corretamente em cada push
e pull-request
feita no repo.
Para gerar um arquivo executável foi utilizado um script que gerava um .jar
a cada versão da aplicação.
Em conjuto a aplicação foi feito testes unitários, para verificar se as classes e as suas respetivas funcionalidades funcionam corretamente. Para validar o código, foi utilizado o JUnit, em conjunto com as actions do GitHub.
🦥 Futuras atualizações
Na aplicação, pode-se encontrar alguns TODOS que vão ser implementados como forma externa a avaliação, com o intuito de melhorar a qualidade do código.
Adaptação da classe UTILS
: Será removido algumas lógicas repetitivas, que de alguma forma poderam ser reaproveiadas em mais de um contexto para o Utils.Reescrita de algumas regras de négocio
: Será reescrita algumas regras de négocio para melhorar a desempenho da aplicação. PR da melhoriaCriar testes unitarios para as classes
: Será criado testes unitários para as classes, assim assegurando a completa estabilidade do software. PR da melhoriaCriar classes de exception para as determinadas classes: User & UserActions
: Será criado uma classe de exception para, conseguirmos tratar as exceções que acontecem na aplicação. PR da melhoriaPequenos ajustes na interface
: Será realizado alguns ajustes na interface, para melhorar a experiência do usuário. PR da melhoriaAdição de um banco de dados
: Será adicionado um banco de dados para armazenar os usuários e não mais em runtime.
🚀 Releases
Cada release foi gerada por uma Command Line Interface
(CLI) chamada GitHub CLI.
As releases são categorizadas por versão da aplicação, onde cada uma possui um nome e um arquivo executável.
Caso queira uma release mais recente ou especifica, basta clicar aqui.
Developer with ❤️🔥 by Lucas Souza (@deverebor)