Code Monkey home page Code Monkey logo

casa-facil-imoveis's Introduction

Casa Fácil Imóveis Logo

Build Status Sonarcloud Status License Codacy Badge Front-end Developer Front-end Developer

O projeto consiste em construir uma aplicação de compra/venda de imóveis parecido com alguns sites já existentes, a aplicação back-end não foi feita autenticação via Token, apenas utilizando o spring security para poder criptografar as senhas, quem controla a sessão do cliente é o front-end com o Vuex.

Para a instalação do spring boot é necessário fazer o download das dependências utilizadas e em seguida estartar a aplicação. Os comandos para poder rodar a aplicação front-end são:

- npm install
- npm run serve

Documentação:

Tecnologias Utilizadas:

  • Back-end: Spring boot (dependências):

    • JPA Data: Gerenciamento das entidades da aplicação
    • Spring Security: Segurança dos web-services (Foi usado apenas para criptografia de senhas)
    • Spring Email: Usado para o envio de e-mails dentro da aplicação
    • Spring Web
    • Spring Cache
    • Spring DevTools
    • Jasper Reports
    • Captura de exceções e armazenamento em banco
    • FlyWay: Faz o gerenciamento de versões do banco de dados.
    • Postgres
    • Spring test (Teste de unidade)
    • Swagger: Faz o gerenciamento de todas as requisões (controllers) de dentro da aplicação facilitando a visualização das mesmas.
    • Lombok: O Project Lombok é uma biblioteca java que se conecta automaticamente ao seu editor e cria ferramentas, apimentando o seu desenvolvimento java.
  • Front-end: Vue JS (dependências):

    • Bootstrap-Vue: Usado para auxiliar na criação de componentes responsivos.
    • Axios: Faz as requisições http com o back-end.
    • Vue-Router: Ferramenta do Vue usada para fazer as rotas de usuário.
    • ESLint: Ferramenta para manter os padrões de código do JavaScript.
    • Vuex: Ferramenta do Vue para fazer sessão e armazenar informações do usuário
  • Database: Postgres

    • Observações: A aplicação está com o banco de dados em deploy no Heroku, a principio da para deixar lá para poder utilizar a API sem necessidade de banco local, mas devido não ter custos o serviço é um pouco lento.
  • Integração contínua: Travis CI

    • O Travis CI é um serviço web de Integração Contínua na nuvem integrado com o GitHub. Ele é gratuito para repositórios públicos e pago para repositórios privados.
  • Revisor de código: Codacy

    • Codacy é um revisor de código automático que é feito em nuvem e integrado ao Github, quando é commitado algo automaticamente o mesmo já é chamado para poder fazer a revisão.
  • Links para teste da aplicação:

    Back-end: Deploy

    Front-end: Deploy

  • Como rodar o projeto?

    Assumindo que já tenha o Docker instalado na máquina, execute os procedimentos abaixo:

    Abra o console na pasta raiz da aplicação

    Execute o deploy, atualiza a imagem da aplicação e cria o banco Postgresql populado

    docker-compose up -d --build
    

    No seu browser acesse as urls:

  • License:

Copyright 2018 Wender Galan - Matheus Pimentel

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

casa-facil-imoveis's People

Contributors

matheuspimentel avatar renatoassis01 avatar wendergalan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

casa-facil-imoveis's Issues

RQ4 - Criar anúncio de imóveis (Front-end)

  • Buscar informações pelo cep
  • Validar campos obrigatórios para a inserção de um novo anúncio
  • Selecionar pelo menos uma foto para o anúncio
  • informar ao usuário se o anúncio foi inserido com sucesso
  • Inserção das imagens, enviando uma lista de imagens para o Back-end

Criação de novos componentes

O objetivo da criação de novos componentes é fazer a refatoração de código e diminuir a complexidade e linhas de código.

Melhora de componentes

  • Refatoração do código.
  • Componentizar códigos que são duplicados.
  • Validação por componentes.

RQ5 - Ver anúncios (Back-end)

  • Criação da Query de busca no banco
  • Criação da Query que busca no banco uma palavra chave
  • Retorno da chamada do método do Front-end com a lista de anúncios disponiveis

Refatorar os controllers

Refatorar os controllers das outras classes, devido a regra de negócio de alguns já estar grandes é bom criar um service para deixar as mesmas lá dentro e desta forma ficar com um código mais desacoplado.

RQ4 - Criar anúncio de imóveis (Back-end)

  • Criação do repository e controller do mesmo
  • Validação dos campos do anúncio e retorno caso contenha inconsistências
  • Salvar o anúncio no banco de dados
  • Upar as imagens para o Google Drive

Fixação de layout

Arrumar a aparência do layout, facilitar e melhorar a interatividade com o sistema

Alteração dos métodos de testes

Devido a mudança da paginação alguns métodos de testes tiveram que passar por alterações, principalmente na busca de anúncios.

Criação do controller de busca

  • Foi criado o controller de busca, para buscar conforme os parâmetros passados pelo Front-end
  • Foram criadas novas querys de buscar anuncios pela rua, bairro e cidade.

Implementação dos services do Anuncio

  • Devido o controller do anúncio estar muito grande acabei por refatorar está parte dividindo em Service para de dentro do controller apenas chamar o service desejado.

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.