Skip to content

Latest commit

 

History

61 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema de Lavação - Projeto Norteador - IFSC

GitHub repo size GitHub License GitHub top language

Sobre o Projeto

Este projeto foi desenvolvido com o propósito fundamental de estudo e prática avançada dos conceitos de Programação Orientada a Objetos (POO) e Arquitetura de Software. Atuando como um "projeto norteador" acadêmico, ele serve como um guia prático para a compreensão de como planejar, estruturar e evoluir uma aplicação desktop comercial completa utilizando Java, desde a modelagem de classes e regras de negócio até a persistência segura de dados e geração de relatórios.

Imagens do Projeto

Tela Inicial
Tela Inicial do Sistema
Cadastro de Cliente
Tela de Cadastro de Cliente
Gráfico de Serviços
Gráfico: Serviços Mais Contratados
Impressão de Comprovante
Impressão de Comprovante de OS

Funcionalidades do Sistema

O sistema evoluiu de um simples CRUD para uma plataforma completa de gestão de lava-rápido, incluindo:

  • Gestão de Cadastros (CRUDs): Controle completo de Clientes (Pessoa Física e Jurídica), Veículos, Modelos, Marcas, Cores e Serviços.
  • Processamento de Ordens de Serviço (OS): Criação, alteração e cancelamento de OS. O sistema conta com regras de negócio embutidas, como o cálculo automático do valor do serviço baseado na categoria (tamanho) do veículo e controle de status da OS.
  • Fidelização e Pontuação: Sistema automatizado de pontuação de clientes atrelado ao ciclo de vida (transação) das Ordens de Serviço.
  • Dashboards e Gráficos Gerenciais: Visualização de dados estratégicos através da biblioteca nativa do JavaFX, incluindo:
    • Gráfico de Linhas: Evolução do Faturamento Mensal.
    • Gráfico de Barras: Volume de Vendas por Mês.
    • Gráfico de Pizza: Distribuição dos Serviços Mais Contratados.
  • Emissão de Relatórios e Comprovantes: Geração de arquivos de impressão profissionais utilizando a biblioteca JasperReports, permitindo imprimir comprovantes de OS e relatórios de cadastros.

Arquitetura do Sistema

O sistema foi construído visando as melhores práticas de engenharia de software, separando estritamente as responsabilidades do código através do padrão MVC (Model-View-Controller):

  • View: Desenvolvida em JavaFX (utilizando arquivos .fxml e estilização padronizada com .css). É a camada responsável por toda a interface gráfica interativa, como menus, janelas de diálogo flutuantes, tabelas de listagem e gráficos. Nenhuma regra de negócio habita esta camada.
  • Controller: Atua como o "maestro" da aplicação. Ele captura as interações do usuário na View, injeta dados dinâmicos na tela, controla o estado da interface (bloqueios e validações visuais) e aciona as operações correspondentes no Model.
  • Model: O coração da aplicação. Contém as regras de negócio puras, as classes de domínio (utilizando herança, composição, associações e enumerações) e a estrutura de acesso a dados.

A Camada DAO (Data Access Object)

Um dos grandes focos deste projeto é a robustez na persistência de dados. O padrão DAO foi implementado estritamente dentro do pacote Model para isolar todo o código de comunicação com o Banco de Dados Relacional.

  • Responsabilidade Única: As classes de domínio (como OrdemServico ou Cliente) não conhecem o banco de dados. Toda instrução de INSERT, UPDATE, DELETE e SELECT é feita exclusivamente pelas classes DAO.
  • Transações ACID: O sistema utiliza o controle manual de transações do JDBC (connection.setAutoCommit(false) e commit()). Isso garante que operações complexas (como salvar uma OS, seus itens e atualizar a pontuação do cliente) sejam executadas como um bloco único. Se houver qualquer falha, o rollback() entra em ação, prevenindo dados inconsistentes ou "quebrados" no banco.

Tecnologias Utilizadas

  • Linguagem: Java (JDK 21+)
  • Interface Gráfica: JavaFX e Scene Builder (Estilizado via CSS)
  • Relatórios: Jaspersoft Studio / JasperReports
  • Banco de Dados: MySQL (Conexão nativa via JDBC)
  • Design Patterns: MVC, DAO e Factory Pattern (para fabricação de conexões com o banco).

Conceitos Praticados

Durante o desenvolvimento contínuo deste sistema, os seguintes conceitos fundamentais foram colocados em prática:

  • Pilares da POO: Encapsulamento, Herança, Abstração e Polimorfismo.
  • Relacionamentos estruturais: Agregação e Composição (ex: Ordem de Serviço gerenciando o ciclo de vida dos Itens da OS).
  • Uso de coleções (List, Map, HashMap, ObservableList) e laços de repetição aprimorados (For-Each).
  • Tratamento de Exceções Personalizadas para blindar as regras de negócio.

Desenvolvido por Luciano Simas Junior como Projeto Norteador acadêmico da disciplina de Programação Orientada a Objetos.

Orientador do projeto: Dr. Marcos André Pisching.

About

Projeto Norteador do IFSC - Florianópolis - Desenvolvido para estudar e praticar a Programação Orientada a Objetos.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages