Este projeto é um sistema de CRM completo, desenvolvido em Java, com uma interface interativa via console (menus numerados de 1 a 5+). Ele foi estruturado seguindo os requisitos de canais de acesso, fluxos de atendimento com chatbot e equipe de vendas, além de toda a modelagem de entidades solicitada.
- Nome: Gabriel Couto Ribeiro - RM559579
- Nome: Gabriel Kato Peres - RM560000
- Nome: João Vitor de Matos Araujo - RM559246
- Nome: Marcelo Affonso Fonseca - RM559790
O sistema utiliza o padrão de separação de responsabilidades para garantir um código limpo e organizado:
| Pacote | Responsabilidade |
|---|---|
com.crm.model |
Contém as entidades permanentes (Vendedor, Atendente, Cliente, Usuario) e temporárias (Prospectante, Contrato). |
com.crm.model.enums |
Define as regras de negócio fixas: Qualificacao, Tipo, AreaDeInteresse e Status. |
com.crm.model.vo |
Implementa o Value Object Endereco, utilizado em todos os cadastros que requerem localização. |
com.crm.repository |
Camada de persistência genérica em memória (RAM), permitindo salvar e buscar dados durante a execução. |
com.crm.service |
Contém a lógica de negócio, como o gerenciamento do ciclo de vida do prospectante e validações. |
com.crm.ui |
A ConsoleInterface, responsável por toda a interação com o usuário através do terminal. |
O sistema simula a entrada de clientes por diferentes canais:
WhatsApp (via Instagram, Facebook ou Web Site):
- O cliente inicia o contato e é recebido por um Chatbot treinado.
- O chatbot esclarece dúvidas iniciais.
- Se houver interesse em orçamento, o sistema encaminha automaticamente para a Equipe de Vendas e registra o contato como um Prospectante.
Chamada Telefônica (via TV, Revistas ou Web Site):
- O contato é direto e encaminhado imediatamente para a Equipe de Vendas.
E-mail (via Web Site):
- O contato é registrado e encaminhado para o SAC (Serviço de Atendimento ao Cliente).
Siga estes passos para rodar o projeto corretamente:
- Extraia o conteúdo do arquivo
crm_java_project.zip. - Abra o IntelliJ IDEA.
- Vá em
File > Opene selecione a pastacrm_java.
- Vá em
File > Project Structure(ou pressioneCtrl+Alt+Shift+S). - Em Project, certifique-se de que o Project SDK está definido para Java 11, 17 ou 21.
- Em Project language level, selecione a versão correspondente ao SDK escolhido.
- No painel lateral esquerdo (Project), localize a pasta
src/main/java. - Clique com o botão direito sobre ela.
- Selecione Mark Directory as > Sources Root. (A pasta deve ficar azul).
- Navegue até
src/main/java/com/crm/Main.java. - Clique com o botão direito no arquivo e selecione Run 'Main.main()'.
- O console do IntelliJ abrirá na parte inferior, pronto para receber seus comandos!
Ao iniciar, você verá o menu principal:
- Canais de Acesso: Simule a entrada de um novo lead via WhatsApp, Telefone ou E-mail.
- Gestão de Entidades: Cadastre seus Vendedores, Atendentes e Clientes (necessário preencher os dados de Endereço).
- Listar Registros: Veja todos os dados salvos em memória (Vendedores, Clientes, Prospectantes, etc.).
- Gerar Novo Contrato: Vincule um Cliente a um Vendedor e defina o valor do contrato.
- Sair: Encerra o sistema.
- Tratamento de Erros: O sistema não trava se você digitar letras onde deveriam ser números.
- Identificadores Únicos: Cada registro recebe um UUID automático para garantir que não haja duplicidade de IDs.
- Value Objects: O endereço é um objeto imutável, seguindo as melhores práticas de DDD (Domain-Driven Design).
- Extensibilidade: O repositório genérico permite que você adicione novas entidades facilmente no futuro.
Desenvolvido com foco em qualidade, organização e facilidade de uso.