Este é meu projeto integrador do Senac. O SalesSync é um sistema ERP (Enterprise Resource Planning) especializado em análise financeira e geração de relatórios detalhados, desenvolvido para atender pequenas e médias empresas. O sistema permite o gerenciamento completo de clientes, vendas, despesas e ordens de serviço, oferecendo uma visão clara do balancete empresarial em diferentes períodos (diário, semanal, mensal e anual).
O diferencial do SalesSync está na sua capacidade avançada de processamento de dados financeiros, gerando relatórios detalhados em formato CSV que incluem métricas essenciais como lucro bruto, impostos estimados, lucro líquido, total de vendas e despesas. Essas informações permitem ao gestor uma análise aprofundada do desempenho da empresa, facilitando a tomada de decisões estratégicas baseadas em dados concretos.
- Gestão de Clientes: Cadastro completo com código único, dados de contato e histórico de compras
- Registro de Vendas: Gerenciamento detalhado de vendas com múltiplos itens e cálculo automático
- Controle de Despesas: Categorização de gastos com suporte a despesas recorrentes e pontuais
- Ordens de Serviço: Emissão e acompanhamento com status, prazos e valores
- Relatórios Financeiros: Geração de balancetes em diferentes períodos (diário, semanal, mensal e anual)
- Métricas Financeiras: Cálculo automático de lucro bruto, impostos, lucro líquido e totalizadores
- Controle de Acesso: Três níveis de usuários (ADMIN, OWNER, EMPLOYEE) com permissões específicas
- Interface Moderna: Visual consistente e responsivo com FlatLaf em diferentes sistemas operacionais
- Backend: Java 17
- Frontend: Swing com FlatLaf 3.1 (Look and Feel moderno)
- Persistência: JPA/Hibernate 6.2
- Banco de Dados: MySQL 8.0
- Arquitetura: Padrão MVC (Model-View-Controller)
- Segurança: BCrypt para hash de senhas
- Gerenciamento: Maven para dependências
- Java 17 ou superior
- MySQL 8.0 ou superior
- 4GB de RAM (mínimo)
- 100MB de espaço em disco para a aplicação
- Sistemas Operacionais: Windows 10/11 ou distribuições Linux baseadas em Debian
- JDK 17+
- MySQL 8.0+
- Maven
- Clone o repositório:
git clone https://github.com/seu-usuario/sales-sync-GUI.git
cd sales-sync- Configure o banco de dados:
mysql -u root -p < src/main/resources/db/script.sql-
Configure as credenciais do banco de dados:
- Edite o arquivo
src/main/resources/META-INF/persistence.xmlcom as credenciais do seu banco de dados
- Edite o arquivo
-
Compile o projeto:
mvn clean package- Execute a aplicação:
java -jar target/salessync-1.0-SNAPSHOT.jar- Configuração e manutenção do sistema
- Acesso aos logs do sistema para auditoria
- Gerenciamento de perfis de usuários
- Acesso a todos os relatórios
- Acesso completo às funcionalidades operacionais
- Geração de relatórios detalhados em todos os períodos
- Acesso a métricas avançadas (lucro bruto, impostos, lucro líquido)
- Permissão para excluir registros do sistema
- Operações diárias de vendas e atendimento
- Cadastro e edição de clientes
- Emissão de ordens de serviço
- Acesso limitado a relatórios diários
sales-sync/
└── src
└── main
├── java
│ └── br
│ └── com
│ └── devjf
│ └── salessync
│ ├── SalesSyncApp.java # Classe de chamada do programa
│ ├── controller # Controladores da aplicação
│ ├── dao # Camada de acesso a dados
│ ├── model # Entidades e modelos de dados
│ ├── service # Lógica de negócio
│ ├── util # Classes utilitárias
│ └── view # Interfaces gráficas
└── resources
├── META-INF # Configuração JPA
├── db # Scripts SQL
└── images # Imagens e ícones
O SalesSync utiliza uma Arquitetura em Camadas (Layered Architecture) com implementação do padrão Model-View-Controller (MVC) e Service Layer, seguindo boas práticas de desenvolvimento de software empresarial Java.
-
Camada de Apresentação (View)
- Responsável pela interface gráfica usando Swing
- Localização:
br.com.devjf.salessync.view - Implementa as telas e formulários da aplicação
-
Camada de Controle (Controller)
- Gerencia a lógica de interação entre View e Model
- Localização:
br.com.devjf.salessync.controller - Coordena as operações entre diferentes componentes
-
Camada de Serviço (Service)
- Contém a lógica de negócio da aplicação
- Localização:
br.com.devjf.salessync.service - Implementa regras de negócio e orquestração de operações
-
Camada de Modelo (Model)
- Define as entidades e objetos de negócio
- Localização:
br.com.devjf.salessync.model - Representa as estruturas de dados fundamentais
-
Camada de Persistência (DAO)
- Responsável pelo acesso e manipulação de dados
- Localização:
br.com.devjf.salessync.dao - Utiliza JPA/Hibernate para interação com banco de dados
- Repository Pattern: Implementado através da camada DAO
- Dependency Injection: Gerenciado pelo próprio design das camadas
- Session Management: Implementado em
UserSessionManager - Authorization: Controle de acesso com diferentes níveis de permissão
- Alta modularidade
- Separação clara de responsabilidades
- Facilidade de manutenção e evolução do sistema
- Flexibilidade para adicionar novas funcionalidades
- Usuário: admin
- Senha: @devjf123admin
- Login: Validação de usuário e senha
- Dashboard: Visão geral com indicadores principais do negócio
- Clientes: Cadastro, consulta e histórico de clientes
- Vendas: Registro, consulta e acompanhamento de vendas
- Despesas: Controle e categorização de gastos
- Ordens de Serviço: Emissão e acompanhamento de serviços
- Relatórios: Geração de análises financeiras e operacionais
- Usuários: Gerenciamento de usuários do sistema (ADMIN)
- Logs: Registro de atividades para auditoria e segurança
- Balancete Diário: Detalhamento de vendas e despesas do dia (todos os usuários)
- Balancete Semanal: Resumo semanal por categoria (OWNER e ADMIN)
- Balancete Mensal: Análise mensal de desempenho financeiro (OWNER e ADMIN)
- Balancete Anual: Comparativo anual com análise de tendências (OWNER e ADMIN)
- Análise de Produtos: Identificação de produtos com melhor desempenho de vendas
- Hibernate ORM 6.2.7.Final
- Jakarta Persistence 3.1.0
- MySQL Connector 8.0.33
- FlatLaf 3.1.1 (Look and Feel)
- JBCrypt 0.4
- Apache Commons Lang 3.12.0
- JUnit Jupiter 5.9.3 (testes)
O projeto utiliza Maven para gerenciamento de dependências e build:
mvn clean install- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -m 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para detalhes.
©DevJF - djfcoder@outlook.com


