Skip to content

Projeto elaborado para demonstrar competências full-stack desenvolvendo uma API para fornecer dados ao Front-end da aplicação de aluguel de imóveis.

Notifications You must be signed in to change notification settings

thiagohrcosta/realState-rails-api

Repository files navigation

RealState - API

MainBanner

Projeto desenvolvido com o objetivo de desenvolver uma API para armazenar dados de imóveis para locação com posterior alimentação do front-end.

Para fins didáticos este projeto foi hospedado no Heroku e pode ser visto clicando aqui.

Tecnologias utilizadas neste projeto

Este projeto foi criado com:
Ruby Rails Postgres Bootstrap HTML5 SASS

Gems utilizadas:

Modelagem da API

O modelo elaborado para o presente projeto segue devidamente apresentado abaixo: enter image description here

A tabela User foi implementado mediante a Gem Devise, sendo padrão login por emal e senha, desta forma ocultou-se o campo password por ser inerente ao devise.

enter image description here

API endpoint

A API poderá ser acessada a partir do endpoint localhost:3000/api/v1/rentals ou a partir do endpoint hospedado no heroku (clique aqui).

secondImg

Cada imóvel inserido na API poderá também ser acessado pelo endpoint: api/v1/rentals/:id, veja clicando aqui.

Home page

Home

A home page foi estilizada usando CSS-grid usando o seguinte:

.rental-grid{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-gap: 16px;
  margin: 10px;
}

.rental-card{
  margin: 10px 0;
  border: 1px solid #E8E8E8;
  box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);
}

Todos os dados apresentados pelo front-end são enviados pela API. Foram limitados 06 resultados na página inicial que são apresentados de forma aleatória ao usuário sempre que ele atualizar a página.

A barra de busca na página principal não foi implementada nesta versão, sendo realizada posteriormente por questão de prazo mediante a gem Pg_search conforme implementado neste projeto (Imdb_search), permitindo posterior consulta a partir dos dados enviados pela API.

Show page

Ao clicar em um determinado imóvel o usuário será automaticamente encaminhado para a rota mediante o id cadastrado pela API, lhe sendo apresentada a seguinte tela: Show Page

Para alugar

Caso o usuário decida clicar na opção "Para alugar" ele será encaminhado para uma página onde são listados todos os imóveis apresentados pela API. enter image description here

Novamente, caso o usuário clique em "Ver detalhes" ele será redirecionado para a página do imóvel conforme apresentada no item anterior.

O menu de busca lateral ainda não foi implementado nesta versão atual, sendo apresentado apenas sua versão front-end. Para criar o estilo visualizado foi utilizado Flex e Bootstrap.

Painel

Caso o usuário esteja cadastrado no site e tenha poderes (neste momento foi deixado liberado para qualquer usuário para fins de testes) ele poderá acessar o painel administrativo onde poderá cadastrar novos imóveis, editar ou remover. Toda a operação CRUD refletirá na API. enter image description here

Cada usuário apenas poderá ver no painel administrativo os imóveis que ele cadastrou. enter image description here

Login

Páginas não sensíveis são acessadas por qualquer usuário, contudo, para cadastrar, editar ou apagar imóveis será necessário se cadastrar previamente. enter image description here

Existem dois usuários padrões cadastrados no banco de dados que podem ser utilziados para teste:

Usuário 1 - admin - 6 imóveis cadastrados

Usuário 2 - thiago - 2 imóveis cadastrados

Testes

Para a realização de testes unitários foi utilizada a gem Rspec, sendo criado 11 testes. enter image description here Para rodar os testes basta executar o comando rspec spec/models dentro da pasta do arquivo.

Como rodar a aplicação?

Este projeto foi desenvolvido em :

  • Ruby (2.6.6);
  • Rails (6.1.3.2);

Caso você já tenha instalado o Ruby on Rails nas versões acima apontadas, após efetuar o download do projeto é necessário rodar os seguintes comandos:

  • yarn install;

Caso o projeto continue apresentando erros rode os seguintes comandos:

  • bundle install;
  • rails db:create (caso o banco de dados não esteja criado);
  • rails db:migrante (para implementar as migrações no bando de dados);
  • rails db:seed (para popular a API);

Caso alguma migração ou seed apresente erro você poderá tentar o comando:

  • rails db:reset

Tudo estando certo, basta rodar o comando

  • rails s

About

Projeto elaborado para demonstrar competências full-stack desenvolvendo uma API para fornecer dados ao Front-end da aplicação de aluguel de imóveis.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published