{"id":15570020,"url":"https://github.com/thiagohrcosta/realstate-rails-api","last_synced_at":"2026-04-10T02:56:20.490Z","repository":{"id":50121419,"uuid":"372882586","full_name":"thiagohrcosta/realState-rails-api","owner":"thiagohrcosta","description":"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. ","archived":false,"fork":false,"pushed_at":"2021-06-03T19:34:40.000Z","size":264,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-26T02:42:30.669Z","etag":null,"topics":["bootstrap","css","html5","postgresql","ruby-on-rails","scss-framework"],"latest_commit_sha":null,"homepage":"http://api-realsate.herokuapp.com/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thiagohrcosta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-06-01T15:44:03.000Z","updated_at":"2021-06-04T16:32:42.000Z","dependencies_parsed_at":"2022-09-23T03:02:42.747Z","dependency_job_id":null,"html_url":"https://github.com/thiagohrcosta/realState-rails-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thiagohrcosta/realState-rails-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiagohrcosta%2FrealState-rails-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiagohrcosta%2FrealState-rails-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiagohrcosta%2FrealState-rails-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiagohrcosta%2FrealState-rails-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thiagohrcosta","download_url":"https://codeload.github.com/thiagohrcosta/realState-rails-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiagohrcosta%2FrealState-rails-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274463074,"owners_count":25290113,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-10T02:00:12.551Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","css","html5","postgresql","ruby-on-rails","scss-framework"],"created_at":"2024-10-02T17:40:52.736Z","updated_at":"2026-04-10T02:56:15.470Z","avatar_url":"https://github.com/thiagohrcosta.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"## RealState - API\n![MainBanner](https://res.cloudinary.com/dloadb2bx/image/upload/v1622692009/realstate1_uxymg7.png)\n\nProjeto desenvolvido com o objetivo de desenvolver uma API para armazenar dados de imóveis para locação com posterior alimentação do front-end.\n\nPara fins didáticos este projeto foi hospedado no Heroku e pode ser visto [clicando aqui](http://api-realsate.herokuapp.com/).\n\n## Tecnologias utilizadas neste projeto\nEste projeto foi criado com:\u003cbr\u003e\n\u003cimg alt=\"Ruby\" src=\"https://img.shields.io/badge/ruby-%23CC342D.svg?style=for-the-badge\u0026logo=ruby\u0026logoColor=white\"/\u003e \u003cimg alt=\"Rails\" src=\"https://img.shields.io/badge/rails-%23CC0000.svg?style=for-the-badge\u0026logo=ruby-on-rails\u0026logoColor=white\"/\u003e \u003cimg alt=\"Postgres\" src =\"https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white\"/\u003e \u003cimg alt=\"Bootstrap\" src=\"https://img.shields.io/badge/bootstrap-%23563D7C.svg?style=for-the-badge\u0026logo=bootstrap\u0026logoColor=white\"/\u003e \u003cimg alt=\"HTML5\" src=\"https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge\u0026logo=html5\u0026logoColor=white\"/\u003e \u003cimg alt=\"SASS\" src=\"https://img.shields.io/badge/SASS-hotpink.svg?style=for-the-badge\u0026logo=SASS\u0026logoColor=white\"/\u003e\n\nGems utilizadas:\n\n - [Devise](https://github.com/heartcombo/devise)\n - [Pundit](https://github.com/varvet/pundit)\n - [Simple_form](https://github.com/heartcombo/simple_form)\n - [Rspec](https://github.com/rspec/rspec-rails)\n\n## Modelagem da API\nO modelo elaborado para o presente projeto segue devidamente apresentado abaixo:\n![enter image description here](https://res.cloudinary.com/dloadb2bx/image/upload/v1622692008/realstateDb_hqmmu6.png)\n\nA 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.\n\n![enter image description here](https://res.cloudinary.com/dloadb2bx/image/upload/v1622692009/realstateDb1_bcbwus.png)\n\n## API endpoint\nA **API** poderá ser acessada a partir do endpoint `localhost:3000/api/v1/rentals` ou a partir do endpoint hospedado no heroku ([clique aqui](http://api-realsate.herokuapp.com/api/v1/rentals)).\n\n![secondImg](https://res.cloudinary.com/dloadb2bx/image/upload/v1622692045/realStateApi_wafftk.png)\n\nCada imóvel inserido na API poderá também ser acessado pelo endpoint: `api/v1/rentals/:id`, veja [clicando aqui](http://api-realsate.herokuapp.com/api/v1/rentals/3).\n## Home page\n![Home](https://res.cloudinary.com/dloadb2bx/image/upload/v1622692009/realstate2_cdg0gb.png)\n\nA home page foi estilizada usando CSS-grid usando o seguinte:\n\n    .rental-grid{\n      display: grid;\n      grid-template-columns: 1fr 1fr 1fr;\n      grid-gap: 16px;\n      margin: 10px;\n    }\n\n    .rental-card{\n      margin: 10px 0;\n      border: 1px solid #E8E8E8;\n      box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);\n    }\n\nTodos 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.\n\nA 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)](https://github.com/thiagohrcosta/imdb_search), permitindo posterior consulta a partir dos dados enviados pela API.\n\n## Show page\nAo 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:\n![Show Page](https://res.cloudinary.com/dloadb2bx/image/upload/v1622692009/realstate4_rjzy20.png)\n\n## Para alugar\nCaso 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.\n![enter image description here](https://res.cloudinary.com/dloadb2bx/image/upload/v1622692009/realstate3_x0qdxn.png)\n\nNovamente, caso o usuário clique em **\"Ver detalhes\"** ele será redirecionado para a página do imóvel conforme apresentada no item anterior.\n\nO 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**.\n\n## Painel\nCaso 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.\n![enter image description here](https://res.cloudinary.com/dloadb2bx/image/upload/v1622740094/realstateadmin_c44k0g.png)\n\nCada usuário apenas poderá ver no painel administrativo os imóveis que ele cadastrou.\n![enter image description here](https://res.cloudinary.com/dloadb2bx/image/upload/v1622741858/realstateAdmin3_qiu3vr.png)\n\n## Login\nPá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.\n![enter image description here](https://res.cloudinary.com/dloadb2bx/image/upload/v1622740650/realstateLogin_kfowfl.png)\n\nExistem dois usuários padrões cadastrados no banco de dados que podem ser utilziados para teste:\n\n**Usuário 1 - admin - 6 imóveis cadastrados**\n- email: admin@admin.com\n- senha: 123456\n\n**Usuário 2 - thiago - 2 imóveis cadastrados**\n\n- email: thiago@admin.com\n- senha: 123456\n\n## Testes\nPara a realização de testes unitários foi utilizada a gem Rspec, sendo criado 11 testes.\n![enter image description here](https://res.cloudinary.com/dloadb2bx/image/upload/v1622747253/reaslstateTests_mg747o.png)\nPara rodar os testes basta executar o comando `rspec spec/models` dentro da pasta do arquivo.\n\n## Como rodar a aplicação?\nEste projeto foi desenvolvido em :\n\n- Ruby (2.6.6);\n- Rails (6.1.3.2);\n\nCaso 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:\n\n- yarn install;\n\nCaso o projeto continue apresentando erros rode os seguintes comandos:\n\n- bundle install;\n- rails db:create (caso o banco de dados não esteja criado);\n- rails db:migrante (para implementar as migrações no bando de dados);\n- rails db:seed (para popular a API);\n\nCaso alguma migração ou seed apresente erro você poderá tentar o comando:\n\n- rails db:reset\n\nTudo estando certo, basta rodar o comando\n\n- rails s\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthiagohrcosta%2Frealstate-rails-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthiagohrcosta%2Frealstate-rails-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthiagohrcosta%2Frealstate-rails-api/lists"}