https://github.com/fabiosperotto/etiquetascorreios
Projeto para fins educacionais de geração de etiquetas para correspondência
https://github.com/fabiosperotto/etiquetascorreios
hibernate hibernate-orm internationalization itext-pdf itext7 java learn-to-code pdf swing-application
Last synced: about 1 year ago
JSON representation
Projeto para fins educacionais de geração de etiquetas para correspondência
- Host: GitHub
- URL: https://github.com/fabiosperotto/etiquetascorreios
- Owner: fabiosperotto
- License: gpl-3.0
- Created: 2025-05-22T00:53:54.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-22T14:57:13.000Z (about 1 year ago)
- Last Synced: 2025-06-03T16:07:53.667Z (about 1 year ago)
- Topics: hibernate, hibernate-orm, internationalization, itext-pdf, itext7, java, learn-to-code, pdf, swing-application
- Language: Java
- Homepage:
- Size: 432 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Gerador de Etiquetas para Correios
[README pt-BR](README.md) | [README english](README-en.md)

Este é um projeto de aprendizado sobre programação desktop com Java, interfaces gráficas em Java Swing, ersistência de dados com Hibernate, Internacionalização e Exportação de dados para PDF. O sistema não deve ser utilizado para fins comerciais ou em produção, servindo apenas como referência instrucional em disciplinas de cursos da área.
## Instalação para uso
Realize o download da última versão disponível. É necessário o JDK 18+ para rodar a aplicação. O diretório de execução do projeto precisa ter o executável .jar e o diretório de arquivos de idiomas.
## Funcionalidades
- Cadastro de pessoas (atualmente somente armazena o nome);
- Cadastro de endereços, com logradouro e número. Cada pessoa pode ter múltiplos endereços.
- Gerador de etiquetas: para cada endereço é possível gerar etiqueta de destinatário, abre o PDF automaticamente após cada solicitação de geração do arquivo. Existe espaço de melhoria aqui pois a etiqueta consta parcialmente pronta.
## Para Desenvolvedores
O projeto utiliza como gerenciador de dependência o Maven, sendo que a estrutura de diretórios consta como:
- DAO: classes que operam aspectos de banco de dados com as entidades;
- entities: classes entidades do sistema (Model do MVC);
- gui: classes de interfaces gráficas do sistema (Controller/View do MVC);
- services: classes de serviços de terceiros do sistema, aqui reside atualmente a classe que gera o PDF;
- utilities: classes utilitárias para todos os demais componentes do sistema, pode conter gerador de dados de teste, configurações de banco de dados, etc.
Após realizar o download para desenvolvimento, na raíz do projeto, renomeie o arquivo hibernate-exemplo.cfg.xml para hibernate.cfg.xml e informe as credenciais do seu banco de dados. A configuração atual irá criar o banco baseado nas classes entidades.
## Tecnologias e Conceitos Aplicados
- [Hibernate](https://hibernate.org/orm/) 6.6;
- MySQL 8.0;
- JDK 18+;
- [iText PDF](https://itextpdf.com/) 8.0.3;
### Banco de Dados
O presente projeto utiliza como SGBD o MySQL e por meio do Hibernate realiza as persistência dos objetos e o gerenciamento dos dados.
### Javadoc
Utiliza o plugin maven-javadoc-plugin para gerar o javadoc para fins de empacotamento no executável .jar (gera também o site com o HTML de documentação de toda a API do código).
### Geração de Executável
O projeto usa o plugin maven-assembly-plugin que gera executável com todo o empacotamente das dependências e javadoc no mesmo .jar.
### Geração de Etiquetas em PDF
Por meio do iText pe fornecido um exemplo de geração de etiquetas simples de envio de correspondência via correios.
### Internacionalização
O sistema atualmente consta em português e inglês e se apresenta automaticamente no idioma do usuário de acordo com o idioma do sistema operacional.
## Contribuindo
Pull requests são bem vindos. Para mudanças grandes abra uma issue primeiro para discutir as mudanças desejadas. Para outras colaborações, informe no seu pull request os detalhes e motivações na contribuição.
## Licença
[GNU GPLv3](https://choosealicense.com/licenses/gpl-3.0/)