Giter Club home page Giter Club logo

sistema-de-vendas-de-imoveis's Introduction

Sistema de controle de vendas para imobiliárias.

O sistema foi proposto como um trabalho final da disciplina de Computação Orientada a Objetos, do curso de Ciência da computação, da Universidade Federal de Itajubá - UNIFEI. Este trabalho foi desenvolvido em equipe e teve uma nota final de 98 pontos de 100.

Descrição do sistema:

A imobiliária ItaHouse contratou seu grupo para desenvolver um sistema para controle de venda de imóveis, de forma a facilitar a gerência de seu negócio. A ItaHouse trabalha apenas com a venda de imóveis. Os tipos de imóvel comercializados são casas, apartamentos, lotes, salas comerciais e propriedades rurais. A imobiliária possui um grupo de corretores de imóveis que realizam o processo de intermediação entre os vendedores e os compradores. No processo de compra e venda, inicialmente os compradores procuram a imobiliária para registrar os imóveis que desejam vender. Inicialmente, os vendedores devem ser registrados, com nome, cpf, email e fone, indicando o contato preferencial (email, telefone ou whatsapp). Em seguida, é possível cadastrar o(s) imóvel(is) à venda.

Cada imóvel deve ser registrado com as seguintes informações: código, tipo, descrição, endereço, arquivoFoto, estado, preço, comissão, data de inclusão e vendedor. O código é um número interno da imobiliária que identifica unicamente um imóvel. Os tipos de imóveis, como já mencionado, são: casa, apartamento, lote, sala e propriedade rural. O atributo arquivoFoto deve salvar o nome do arquivo que contém a foto do imóvel. O estado identifica se o imóvel está disponível para venda, já foi vendido ou está temporariamente inativo. O preço identifica o preço de venda solicitado pelo vendedor, em geral, sujeito a negociação. A comissão é um valor percentual que varia de 1 a 5%. A data de inclusão é a data do dia do cadastramento do imóvel. Finalmente, vendedor identifica quem está vendendo o imóvel (já foi cadastrado previamente). Deve-se criar uma tela para o cadastro de imóveis que permita, opcionalmente, fazer o upload de uma imagem (foto) que exiba o imóvel.

Além do cadastramento de vendedores, o sistema deve fornecer telas para permitir o cadastramento de corretores e compradores. Os corretores devem ser cadastrados com nome, cpf, email, fone, percentual de comissão e CRECI, que é o número do conselho de corretores de imóveis. O percentual de corretagem indica o valor que o corretor recebe sobre o valor recebido pela imobiliária como comissão na venda de um imóvel. Assim, se o percentual de corretagem do corretor que vendeu o imóvel é 40%, o corretor fica com 40% do valor da comissão e a imobiliária fica com 60% desse valor. Os compradores devem ser cadastrados com nome, cpf, email e fone, indicando o contato preferencial (email, telefone ou whatsapp).

Os imóveis cadastrados e com status de “Ativo” compõe o cadastro de imóveis da imobiliária. Assim, deve ser possível visualizar o catálogo, o qual deve ser organizado por tipo de imóvel; deve haver um combo box que permita selecionar os tipos de imóveis. Ao selecionar um tipo, o sistema deve incluir em um objeto JList o código e uma descrição sucinta de todos os imóveis do tipo selecionado. O usuário deve poder interagir com o JList de forma a selecionar imóveis de seu interesse. Ao selecionar um imóvel, deve-se exibir um painel (na mesma ou em outra janela) contendo a foto do imóvel selecionado à esquerda e suas informações – código, preço, descrição, endereço e valor – à direita. Abaixo das informações, deve haver dois botões “Agendar visita” e “Fazer proposta”.

Clicar no botão “Agendar visita” deve levar a uma tela na qual seja possível fazer o agendamento de uma visita no imóvel. Esta tela deve conter campos para a identificação do visitante (comprador), do corretor que irá acompanhá-lo na visita, bem como a data e hora agendada para a visita. Já o botão “Fazer proposta” deve levar a uma tela na qual seja possível cadastrar uma proposta de compra do imóvel. Esta tela deve permitir a identificação do comprador, do corretor que está intermediando o negócio, da data da proposta e do valor da mesma.

O sistema deve ainda oferecer uma forma de se visualizar os imóveis que possuem propostas pendentes de avaliação. Para tanto, deve-se implementar um mecanismo parecido ao catálogo de imóveis, sem entretanto, dividir os imóveis por tipo. Ao acessar a opção do menu que permite avaliar as propostas, o sistema deve-se exibir todos os imóveis que estão nessa situação num JList. Ao selecionar um imóvel da lista, deve-se visualizar todas as propostas pendentes de avaliação (cujo estado = “Submetida”). Deve ser possível aceitar ou rejeitar cada proposta. Quando uma proposta é aceita, seu estado passa para “Aceita” e o estado do imóvel passa para “Vendido”. Quando uma proposta é rejeitada, seu estado passa para “Rejeitada”.

O sistema deve ainda possibilitar a mudança do estado de um imóvel para “Inativo”, caso o vendedor desista de realizar a venda. Neste caso, o imóvel permanece no cadastro, mas seu estado inativo faz com que ele não apareça no catálogo de venda. O sistema deve permitir a obtenção de informações que facilitem o gerenciamento do seu negócio, a saber:

  1. Valor total faturado em um dado período. Trata-se do valor total obtido em comissão em um período. Deve-se mostrar o valor que ficou com a imobiliária e o valor que foi repassado para os corretores. Deve-se ler a data inicial e final e calcular esse valor.
  2. Valor total faturado por corretor em um dado período. Trata-se do valor total obtido em comissão em um período para um corretor específico. Deve-se ler a data inicial e final, bem como os dados do corretor, e calcular esse valor.
  3. Visitas por corretor por período. Deve-se ler a data inicial e final e exibir os imóveis que foram visitados pelo corretor no período. Deve-se informar também o nome do comprador que esteve em cada visita.
  4. Eventos por imóvel por período. Deve-se ler a data inicial e final e o código do imóvel e listar as visitas que o imóvel recebeu, mostrando a data, o nome do corretor e do comprador. Deve mostrar também todas as propostas recebidas, informando o nome do comprador, do corretor, o valor da proposta e seu estado.
  5. Relatório de vendas por período. Deve-se ler a data inicial e final e exibir os dados dos imóveis que tenham sido vendidos no período, informando o valor de venda e o valor da comissão paga à imobiliária.
  6. Listagem de imóveis por vendedor. Deve-se ler o cpf do vendedor e listar todos os seus imóveis que estão cadastrados para venda, mostrando o estado do imóvel.

Descrição dos arquivos:

O sistema foi desenvolvido usando a IDE NetBeans com JDK Bundle. Por isso, o projeto tem alguns arquivos de configuração e algumas pastas criadas pela própria IDE. Os códigos fonte do projeto se encontra na pasta scr.

Dentro da pasta scr encontra se os arquivos organizados da seguinte forma:

Tutorialj4

O sistema foi desenvolvido em MVC (Model-View-Controller), sendo assim, o projeto está organizado da seguinte forma:

  • Pasta Modelo: Contém todos os Model do programa;
  • Pasta Controle: Contém todos os Controller do programa;
  • Pasta Limite: Contém todos os View do programa;
  • Pasta Utilitário: Contém um arquivo com algumas definições para facilitar o desenvolvimento;
  • aplicacao.java Neste arquivo está a MAIN do programa;

Como executar

O sistema foi desenvolvido usando a IDE NetBeans 8.2 com JDK Bundle. O NetBeans funciona em Windows, Linux e MAC, é gratuito e pode ser baixado por esse link: https://www.oracle.com/technetwork/pt/java/javase/downloads/jdk-netbeans-jsp-3413153-ptb.html

1. Após baixar e instalar , basta importar o projeto no NetBeans 8.2

tutorialj1


2. Agora, procurar pelo projeto e seleciona-lo:

tutorialj2


3. Basta clicar no botão para executar o programa:

tutorialj3

sistema-de-vendas-de-imoveis's People

Contributors

rav98 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.