Skip to content

Commit

Permalink
Resolve conflito com a main
Browse files Browse the repository at this point in the history
Co-authored-by: Lucas Oliveira <[email protected]>
  • Loading branch information
Vinigperuzzi and lucasobx committed Jul 22, 2024
2 parents 4911feb + 37711bd commit 13e0d24
Show file tree
Hide file tree
Showing 70 changed files with 1,137 additions and 247 deletions.
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ gem 'faraday'
gem 'image_processing', '>= 1.2'
gem 'jbuilder'
gem 'jsbundling-rails'
gem 'money-rails', '~> 1.12'
gem 'puma', '~> 6.0'
gem 'simple_calendar'
gem 'sprockets-rails'
Expand Down
10 changes: 10 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,15 @@ GEM
mini_magick (4.13.2)
mini_mime (1.1.5)
minitest (5.24.1)
monetize (1.13.0)
money (~> 6.12)
money (6.19.0)
i18n (>= 0.6.4, <= 2)
money-rails (1.15.0)
activesupport (>= 3.0)
monetize (~> 1.9)
money (~> 6.13)
railties (>= 3.0)
msgpack (1.7.2)
mutex_m (0.2.0)
net-http (0.4.1)
Expand Down Expand Up @@ -342,6 +351,7 @@ DEPENDENCIES
image_processing (>= 1.2)
jbuilder
jsbundling-rails
money-rails (~> 1.12)
puma (~> 6.0)
rails (~> 7.1.3.1)
rspec-rails
Expand Down
120 changes: 78 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
<a id="readme-top"></a>

<div align="center">

[![Contributors][contributors-shield]][contributors-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
[![Status][status-shield]][status-url]
<img src="http://img.shields.io/static/v1?label=Test%20Coverage&message=97.77%&color=green&style=for-the-badge"/>
<img src="http://img.shields.io/static/v1?label=Tests&message=450&color=green&style=for-the-badge"/>

</div>

Expand All @@ -27,9 +29,9 @@
<summary>Sumário</summary>
<ol>
<li>
<a href="#sobre-o-projeto">Sobre o projeto</a>
<a href="#sobre-o-projeto">Sobre o Projeto</a>
<ul>
<li><a href="#Tecnologias">Tecnologias</a></li>
<li><a href="#tecnologias">Tecnologias</a></li>
<li><a href="#funcionalidade">Funcionalidade</a></li>
<li><a href="#endpoints-da-api">Endpoints da API</a></li>
</ul>
Expand All @@ -39,10 +41,10 @@
<ul>
<li><a href="#pre-requisitos">Pré-Requisitos</a></li>
<li><a href="#instalacao">Instalação</a></li>
<li><a href="#execucao-de-testes">Execução de testes</a></li>
<li><a href="#execucao-da-aplicacao">Execução da aplicação</a></li>
<li><a href="#estrutura-banco-de-dados">Estrutura banco de dados</a></li>
<li><a href="#banco-de-dados">Banco de dados</a></li>
<li><a href="#execucao-de-testes">Execução de Testes</a></li>
<li><a href="#execucao-da-aplicacao">Execução da Aplicação</a></li>
<li><a href="#estrutura-banco-de-dados">Estrutura do Banco de Dados</a></li>
<li><a href="#seeds-de-usuarios">Seeds de Usuários</a></li>
<li><a href="#desenvolvedores">Desenvolvedores</a></li>
</ul>
</li>
Expand Down Expand Up @@ -73,19 +75,30 @@

## Funcionalidades

<p align="justify">Usuários administrativos podem ser cadastrados no sistema e usuários proprietários e moradores podem ser convidados por e-mail a se registrar.</p>
<p align="justify">:trophy:Usuários administrativos podem ser cadastrados no sistema e usuários proprietários e moradores podem ser convidados por e-mail a se registrar;</p>

<p align="justify">:trophy:Apenas usuários administrativos categorizados como super no momento da criação podem cadastrar outros usuários administrativos, cadastrar um condomínio com endereço e associar um usuário ou mais usuários administrativos àquele condomínio;</p>

<p align="justify">:trophy:Usuários administrativos regulares podem cadastrar torres, tipos de unidade, unidade de um condomínio, andares, áreas comuns e moradores;</p>

<p align="justify">:trophy:A fração ideal de cada unidade é gerada automaticamente com base no tamanho de cada uma e a quantidade de unidades em um condomínio;</p>

<p align="justify">:trophy:Tanto administradores quanto moradores podem ver a página de listatrophy e detalhes de condomínio. Tendo sua exibição alterada para cada tipo de usuário;</p>

<p align="justify">:trophy:Moradores podem fazer uma reserva de área comum a partir de um calendário de reservas, bem como cancelar essa reserva. Gerando ou cancelando cobrança de taxa de uso dessa reserva na aplicação PagueAluguel;</p>

<p align="justify">:trophy:Moradores podem consultar suas faturas e enviar comprovantes de pagamento que serão comunicados através da aplicação PagueAluguel;</p>

<p align="justify">Apenas usuários administrativos categorizados como super no momento da criação podem cadastrar outros usuários administrativos, cadastrar um condomínio com endereço e associar um usuário ou mais usuários administrativos àquele condomínio.</p>
<p align="justify">:trophy:Administradores podem registrar entrada de visitantes no condomínio e visualizar uma lista com o histórico de visitas;</p>

<p align="justify">:trophy:Administradores podem criar avisos para serem mostrados em um mural na tela de detalhes de um condomínio.</p>

<p align="justify">Usuários administrativos regulares podem cadastrar torres, tipos de unidade, unidade de um condomínio, andares, áreas comuns e moradores.</p>

<p align="justify">Tanto administradores quanto moradores podem ver a página de listagem e detalhes de condomínio. Tendo sua exibição alterada para cada tipo de usuário.</p>

<p align="justify">Moradores podem fazer uma reserva de área comum, bem como cancelar essa reserva.</p>

<p align="right">(<a href="#readme-top">voltar ao topo</a>)</p>

<div id='instalacao-e-execucao'/>
<div id='endpoints-da-api'/>

## Endpoints da API

Expand Down Expand Up @@ -124,7 +137,7 @@ Retorna erro 404 caso não exista um condomínio cadastrado com esse id.</p>
Exemplo de resposta:
```json
{
"name": "Condominio Residencial Paineiras",
"name": "Condomínio Residencial Paineiras",
"registration_number": "62.810.952/2718-22",
"address": {
"public_place": "Travessa João Edimar",
Expand Down Expand Up @@ -290,7 +303,7 @@ Possíveis respostas
```
Retorna 404 se não existe um proprietário com o CPF informado na aplicação CondoMínios, ou se existe, mas não possui nenhuma unidade como propriedade;
Retorna 412 se o CPF não for válido para consulta.
Retorna 200 se o CPF é de um proprietário de alguma unidade e o seguinte JSON
Retorna 200 se o CPF é de um proprietário de alguma unidade e o seguinte JSON.
```

```json
Expand Down Expand Up @@ -371,7 +384,7 @@ Exemplo de Resposta:

```

<p align="justify">caso não existam áreas comuns cadastradas para o condomínio informado retorna o `id` do condomínio e um array vazio.</p>
<p align="justify">Caso não existam áreas comuns cadastradas para o condomínio informado retorna o `id` do condomínio e um array vazio.</p>

<p align="justify">Retorna erro `404` caso o condomínio informado não esteja cadastrado.</p>

Expand All @@ -384,17 +397,20 @@ Exemplo de Resposta:
Exemplo de Resposta:
```json
{
"name": "Piscina",
"description": "Para adultos e crianças",
"max_occupancy": 20,
"rules": "Só pode ser usada até 22h",
"condo_id": 1
"name": "Piscina",
"description": "Para adultos e crianças",
"max_occupancy": 20,
"rules": "Só pode ser usada até 22h",
"condo_id": 1
}
```

<p align="justify">Retorna erro `404` caso a área comum informada não esteja cadastrada para o condomínio informado.</p>

<!-- GETTING STARTED -->

<div id='instalacao-e-execucao'/>

## Instalação e Execução

<div id='pre-requisitos'/>
Expand All @@ -403,10 +419,14 @@ Exemplo de Resposta:

<p align="justify">Você vai precisar da versão 3.2.2 do Ruby, libvips e uma versão atual de NodeJS com Yarn instalado. Recomendamos sempre a instalação das versões LTS (Long Term Support).</p>

#### Instalação do [libvips](https://github.com/libvips/libvips/wiki/Build-for-Ubuntu) no ubuntu:
Instalação do [libvips](https://github.com/libvips/libvips/wiki/Build-for-Ubuntu) com o apt-get:
```sh
sudo apt install libvips
```
Instalação do rails
```
gem install rails
```

<div id='instalacao'/>

Expand All @@ -420,6 +440,10 @@ Entre na pasta do projeto:
```sh
cd condominions
```
Instale Bundle:
```sh
bundle install
```
Instale as dependências:
```sh
bin/setup
Expand All @@ -429,14 +453,27 @@ Para popular o banco de dados:
rails db:seed
```

<div id='execucao-de-testes'/>

<div id='execucao-de-testes'/>
### Execução de Testes

Para rodar os testes, execute:
```sh
rake spec
```

### Testando E-mails

Caso queria testar emails, você pode fazê-lo instalando a gem [MailCatcher](https://mailcatcher.me/):
```sh
gem install mailcatcher
```
Para executar o MailCatcher:
```sh
mailcatcher
```
Agora você pode acessá-lo através da rota http://localhost:1080/

<div id='execucao-da-aplicacao'/>

### Execução da Aplicação
Expand All @@ -446,40 +483,39 @@ bin/dev
```
Agora é possível acessar a aplicação a partir da rota http://localhost:3000/

**Integração com o PagueAluguel**: Essa aplicação foi construída para ser integrada com o [PagueAluguel](https://github.com/TreinaDev/pague-aluguel). Com ambas as aplicações rodando, você poderá utilizá-la com todas as suas funcionalidades!

<p align="right">(<a href="#readme-top">voltar ao topo</a>)</p>

<div id='estrutura-banco-de-dados'/>

## Estrutura do Banco de Dados

![Estrutura do banco de dados](https://i.imgur.com/emiKwf5.png)
![Estrutura do banco de dados](https://github.com/user-attachments/assets/ee40045d-5e22-4404-96c8-be0c573b4fd6)

<p align="right">(<a href="#readme-top">voltar ao topo</a>)</p>

<div id='banco-de-dados'/>
<div id='seeds-de-usuarios'/>

## Banco de Dados Iniciais
## Seeds de Usuários

Dados inseridos no seeds
Esses usuários são gerados nas seeds e você pode utilizá-los para testar a aplicação.

>Administradores
>>|Nome Completo|CPF|E-mail|Senha|
>>| :--------: | :--------: |:--------: | :--------: |
>>|Murilo Pereira Rocha|745.808.535-55|[email protected]|teste123|
>Endereços
>>|Rua|Número|Bairro|Cidade|Estado|CEP|ID|
>>| :--------: | :--------: | :--------: | :--------: | :--------: | :--------: | :--------: |
>>|Travessa João Edimar|29|João Eduardo II|Rio Branco|AC|69911-520| 1 |
>>|Nome Completo|E-mail|Senha|
>>| :--------: | :--------: |:--------: |
>>|Ednaldo Pereira|[email protected]|teste123|
>>|Adroaldo Silva Santos|[email protected]|teste123|
>Condominions
>>|Nome do condomínio|CNPJ|ID do endereço|
>>| :--------: | :--------: | :--------: |
>>|Condominio Residencial Paineiras|62.810.952/2718-22| 1 |
>Residentes
>>|Nome Completo|E-mail|Senha|
>>| :--------: | :--------: |:--------: |
>>|Marina Santos Oliveira|[email protected]|teste123|
>>|Rafael Souza Lima|[email protected]|teste123|
<p align="right">(<a href="#readme-top">voltar ao topo</a>)</p>

<div id='desenvolvedores'/>
<div id='desenvolvedores'/>

## Desenvolvedores

Expand Down Expand Up @@ -508,4 +544,4 @@ Dados inseridos no seeds
[Ruby-url]: https://www.ruby-lang.org/en/news/2023/03/30/ruby-3-2-2-released/
[RubyOnRails.com]: https://img.shields.io/static/v1?label=Ruby%20On%20Rails&message=7.1.3.1&color=red&style=for-the-badge&logo=rubyonrails
[RubyOnRails-url]: https://rubyonrails.org/2023/11/10/Rails-7-1-2-has-been-released
[EstruturaDoBancoDeDados-URL]: https://i.imgur.com/emiKwf5.png
[EstruturaDoBancoDeDados-URL]: https://i.imgur.com/emiKwf5.png
12 changes: 8 additions & 4 deletions app/assets/stylesheets/style.scss
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
body {
margin-bottom: 4rem;
}

// Colors

.bg-light-gray {
Expand All @@ -12,6 +8,10 @@ body {
background-color: #FDE879;
}

.bg-blue-cyan {
background-color: #1985A1
}

.bg-medium-blue-lighter {
background-color: #577998;
}
Expand All @@ -20,6 +20,10 @@ body {
background-color: #4c677f;
}

.bg-medium-blue-dark {
background-color: #3f556f;
}

// Images
.user-image-200 {
width: 200px;
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/announcements_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def set_breadcrumbs_for_action

def set_breadcrumbs_for_details
add_breadcrumb @announcement.condo.name, condo_path(@announcement.condo)
add_breadcrumb @announcement.title, common_area_path(@announcement)
add_breadcrumb @announcement.title, @announcement
end

def set_announcement
Expand Down
8 changes: 7 additions & 1 deletion app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,12 @@ def authorize_super_manager
not_authorized_redirect unless current_manager.is_super
end

def authorize_condo_manager_superintendent(condo)
return if authorize_manager(condo) || (authorize_resident(condo) && current_resident&.superintendent)

not_authorized_redirect
end

def authorize_condo_manager(condo)
not_authorized_redirect unless authorize_manager(condo)
end
Expand All @@ -44,7 +50,7 @@ def authorize_manager(condo)
end

def authorize_resident(condo)
resident_signed_in? && condo.residents.include?(current_resident)
resident_signed_in? && condo && condo.residents.include?(current_resident)
end

def not_authorized_redirect
Expand Down
Loading

0 comments on commit 13e0d24

Please sign in to comment.