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
-
Documento de Visão e Escopo: Sistema de venda e aluguel de imóveis
-
Sprint 1: Anunciar Imóveis
-
Sprint 2: Gerenciar anúncio e anunciante
-
Sprint 3: Visualizar anúncio
-
Sprint 4: Busca e Paginação de imóveis
-
Sprint 5: Autocomplete na busca de imóveis
-
Sprint 6: Relatórios de venda e aluguel
-
-
Modelos de relatórios disponíveis: Venda e Aluguel
-
-
Sprint 9: Cadastro e gerência de cliente
-
Sprint 10: Engenharia reversa e análise estática
-
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.
-
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:
- Front-end: http://localhost:5000
- Back-end: http://localhost:8080/swagger-ui.html
- Banco de dados: http://localhost:16543
- Credenciais do mesmo está no common.env na raiz do projeto.
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.