comboPortal;
15 |
16 | public LoginFrame() {
17 | setTitle("Login - Licitação");
18 | setSize(400, 300);
19 | setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
20 | setLocationRelativeTo(null);
21 |
22 | JPanel panel = new JPanel(new GridLayout(5, 2, 10, 10));
23 |
24 | panel.add(new JLabel("CNPJ:"));
25 | txtCnpj = new JTextField();
26 | panel.add(txtCnpj);
27 |
28 | panel.add(new JLabel("Senha:"));
29 | txtPassword = new JPasswordField();
30 | panel.add(txtPassword);
31 |
32 | panel.add(new JLabel("Portal:"));
33 | comboPortal = new JComboBox<>(new String[]{"ComprasNet", "Licitações-e", "Compras Públicas"});
34 | panel.add(comboPortal);
35 |
36 | JButton btnImportCert = new JButton("Importar Certificado");
37 | panel.add(btnImportCert);
38 |
39 | JButton btnLogin = new JButton("Login");
40 | panel.add(btnLogin);
41 |
42 | add(panel, BorderLayout.CENTER);
43 |
44 | btnImportCert.addActionListener(new ActionListener() {
45 | @Override
46 | public void actionPerformed(ActionEvent e) {
47 | // TODO: Implement certificate import logic
48 | JOptionPane.showMessageDialog(null, "Função de Importar Certificado em desenvolvimento.");
49 | }
50 | });
51 |
52 | btnLogin.addActionListener(new ActionListener() {
53 | @Override
54 | public void actionPerformed(ActionEvent e) {
55 | // TODO: Implement login action to authenticate with selected portal
56 | String cnpj = txtCnpj.getText();
57 | char[] password = txtPassword.getPassword();
58 | String portal = Objects.requireNonNull(comboPortal.getSelectedItem()).toString();
59 |
60 | // Stub method call to AuthController for authentication
61 | // AuthController.authenticate(cnpj, new String(password), portal);
62 | JOptionPane.showMessageDialog(null, "Login em desenvolvimento.");
63 | }
64 | });
65 | }
66 |
67 | public static void main(String[] args) {
68 | SwingUtilities.invokeLater(() -> {
69 | new LoginFrame().setVisible(true);
70 | });
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## 🏆 Arremate Certo 🏆
2 |
3 |
4 |
5 | [](https://github.com/Bulletdev/Arremate-certo/actions/workflows/ant.y)
6 | [](https://sonarcloud.io/summary/new_code?id=Bulletdev_Arremate-certo)
7 | [](https://sonarcloud.io/summary/new_code?id=Bulletdev_Arremate-certo)
8 |

9 |
10 |
11 | Arremate Certo é uma solução moderna de automação para licitações públicas e dispensas.
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | ## 📋 Índice
25 | 1. [Status do Projeto](#-Status-do-projeto)
26 | 2. [Arquitetura do Projeto](#-arquitetura-do-projeto)
27 | - [Frontend (Vue.js)](#-Frontend ( Vue.js ))
28 | - [Backend (Go API)](#-Microserviços-em-Golang)
29 | - [Backend (Java API)](#-Backend ( Java API principal ))
30 |
31 | 3. [Funcionalidades Principais](#-funcionalidades-principais)
32 | 4. [Pré-requisitos](#️-pré-requisitos)
33 | 5. [Como Executar](#-como-executar)
34 | 6. [Contribuindo](#-contribuindo)
35 | 7. [Licença](#-licença)
36 | 8. [Suporte](#-suporte)
37 |
38 |
39 | ## 🏗️ Arquitetura do Projeto
40 |
41 | O projeto é dividido em dois componentes principais:
42 |
43 | ### Frontend ( Vue.js )
44 |
45 |
46 | - Desenvolvido em vue 3
47 | - Interface do usuário intuitiva e responsiva
48 | - Vite: Ferramenta de build rápida para criar e executar o projeto
49 | - Pinia: para gerenciamento de estado para centralizar e otimizar o fluxo de dados da aplicação
50 | - Vue Router: Para gerenciar as rotas e navegação na aplicação
51 | - HTML e CSS: Para a estrutura e o estilo da interface
52 |
53 | ### Backend ( Java API principal )
54 |
55 | - Desenvolvido em Java 17 com Spring Boot 3.2
56 | - Documentação OpenAPI/Swagger integrada
57 | - Persistência com JPA e PostgreSQL
58 | - Criptografia com Bouncy Castle
59 |
60 | ### Microserviços em Golang
61 |
62 | - Desenvolvido em Go 1.21
63 | - Framework Gin para alta performance
64 | - ORM com GORM
65 | - Configuração flexível via variáveis de ambiente
66 | - Captcha Solver com Wrapper 2Captcha e go-hcaptcha
67 |
68 | ## Funcionalidades Principais
69 |
70 | - 🔄 **Automação de Lances:** Defina regras personalizadas para lances automáticos
71 | - 📊 **Relatórios de Participação:** Geração de relatórios detalhados sobre o desempenho em cada licitação
72 | - 🔗 **Integração com Portais:** Conexão facilitada com diversos portais públicos e privados
73 | - 🔐 **Gestão de Dados:** Armazenamento seguro e eficiente das informações
74 | - 📈 **Performance Otimizada:** Backend em Go para processamento rápido de requisições
75 |
76 | ## Pré-requisitos
77 |
78 | ### Para a Aplicação Java
79 |
80 | - Java 17 ou superior
81 | - Gradle
82 | - IDE compatível com Spring Boot (recomendado: IntelliJ IDEA )
83 |
84 | ### Para a API Go
85 |
86 | - Go 1.21 ou superior
87 | - PostgreSQL
88 | - Docker (opcional)
89 |
90 | ## Como Executar
91 |
92 | ### Aplicação Java
93 |
94 | ```bash
95 | cd java-app
96 | ./gradlew bootRun
97 | ```
98 | A aplicação estará disponível em `http://localhost:8080`
99 |
100 | ### API Go
101 | ```bash
102 | cd go-api
103 | go mod tidy
104 | go run main.go
105 | ```
106 | A API estará disponível em `http://localhost:8081`
107 |
108 |
109 |
110 | ## Contribuindo
111 |
112 | 1. Faça um fork do projeto
113 | 2. Crie uma branch: `git checkout -b feature/nova-funcionalidade`
114 | 3. Faça o commit das alterações: `git commit -m 'Adiciona nova funcionalidade'`
115 | 4. Envie para o repositório: `git push origin feature/nova-funcionalidade`
116 | 5. Crie um Pull Request
117 |
118 | ## Licença
119 |
120 | Distribuído sob a licença Apache 2.0. Veja `LICENSE` para mais informações.
121 |
122 | ## Suporte
123 |
124 | Em caso de dúvidas ou problemas, abra uma issue no repositório.
125 |
126 |
127 | ## Feito com 💙 por Michael Bullet
128 |
--------------------------------------------------------------------------------