Skip to content

Commit

Permalink
merge: develop in main (SOS-RS#56)
Browse files Browse the repository at this point in the history
* feat(shelter-supply): add quantity property

* feat(shelter-supply): show quantity property at query results

* fix: removed unintended filter

* feat: improve readme file

* Bug fix: added verified field to the query

* fix: verified was required on create shelter controller

* Fix linter issues

* feat(shelter-supply): set quantity to null if priority is UnderControl

* refact: index search

* fix: fixed shelter OR and AND conditions

* fix: donation tags

* fix: parse tag response in shelter index

* fix: qtd of shelter supplies tagged

* fix: migration issue

* feat: update many supplies

* feat: created admin user role

* Fix/develop bugs (SOS-RS#54)

* feat: update many supplies

* feat: created admin user role

* README.md 2.0 (SOS-RS#52)

Melhorias incluem a adição de emojis para destacar tecnologias e endpoints, reorganização do texto para melhor legibilidade e clareza, além de ajustes na formatação para uma apresentação visual mais atrativa.

* Add license (SOS-RS#50)

Closes SOS-RS#44.

---------

Co-authored-by: Jhonatan David <82552187+jotahdavid@users.noreply.github.com>
Co-authored-by: MatheusDubin <matheusdsilveira@gmail.com>
Co-authored-by: Lipe <lip3pacheco@gmail.com>
Co-authored-by: Gustavo Clemente <gusclms@gmail.com>
Co-authored-by: kelvinsb <kelvinbr11@gmail.com>
Co-authored-by: Tatiane <coelhotatiane2@gmail.com>
Co-authored-by: AlbuquerqueRafael <AlbuquerqueRafael@users.noreply.github.com>
Co-authored-by: Arthur <40851238+4rthuurr@users.noreply.github.com>
Co-authored-by: Giovanni Bassi <334958+giggio@users.noreply.github.com>
  • Loading branch information
10 people authored May 11, 2024
1 parent 032a7ce commit b3b6544
Show file tree
Hide file tree
Showing 43 changed files with 1,112 additions and 605 deletions.
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ DB_PORT=
DB_USER=
DB_PASSWORD=
DB_DATABASE_NAME=
DATABASE_URL="postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_DATABASE_NAME}?schema=public&sslmode=require"
DATABASE_URL="postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_DATABASE_NAME}?schema=public"
SECRET_KEY=

HOST=::0.0.0.0
Expand Down
1 change: 1 addition & 0 deletions .env.local
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ DB_DATABASE_NAME=sos_rs
DB_USER=root
DB_PASSWORD=root
DATABASE_URL="postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_DATABASE_NAME}?schema=public"

SECRET_KEY=batata

HOST=::0.0.0.0
Expand Down
6 changes: 6 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,11 @@ module.exports = {
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
"prettier/prettier": [
"error",
{
"endOfLine": "auto"
}
]
},
};
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 SOS-RS

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
117 changes: 73 additions & 44 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,72 +1,101 @@
# README para o Backend do App de Ajuda em Enchentes
# 🌊 Backend para App de Ajuda em Enchentes 🌊

Este repositório contém o backend de um aplicativo desenvolvido para organizar e distribuir suprimentos, bem como coordenar voluntários durante os alagamentos no Rio Grande do Sul. O backend fornece APIs para autenticação de usuários, gerenciamento de abrigos e suprimentos, entre outros.
Este repositório contém o backend de um aplicativo projetado para ajudar na organização e distribuição de suprimentos, bem como na coordenação de voluntários durante enchentes no Rio Grande do Sul. Ele fornece APIs essenciais para a autenticação de usuários, gerenciamento de abrigos e suprimentos, e muito mais.

## Sobre o Projeto
## 🛠 Tecnologias Utilizadas

O sistema backend é projetado para ser robusto e escalável, garantindo que possa lidar com o alto volume de acessos durante emergências. Ele opera com diversas APIs que permitem a interação com o frontend e outros serviços potenciais.
- **🟢 Node.js**: Ambiente de execução para JavaScript.
- **🔗 Prisma**: ORM para Node.js e TypeScript, facilitando o gerenciamento do banco de dados.
- **🐳 Docker**: Solução para desenvolvimento e execução de aplicativos em contêineres.
- **🐦 Nest**: Framework de alto desempenho para aplicações web em Node.js.
- **📦 PostgreSQL**: Banco de dados relacional robusto e eficiente.

## Tecnologias Utilizadas
## 🗂 Dump do Banco de Dados

- **Node.js**: Ambiente de execução para JavaScript.
- **Express**: Framework para aplicação web para Node.js.
- **MongoDB**: Banco de dados NoSQL para armazenar dados de forma eficiente.
- **JWT**: Para autenticação segura via tokens.
Para iniciar com dados de exemplo, utilize o dump do banco disponível em `prisma/migration/dev_dump.sql`. Este arquivo pode ser executado após as migrations estarem aplicadas.

## Backlog
Se estiver usando Docker, os comandos para carregar o dump são:

- [ ] **Importar abrigos**: Importar a lista de abrigos e suas necessidades em csv para facilitar integração com outros sistemas.
- [ ] **Criar sistema de notificação**: Notificar em algum canal (whatsapp, discord, telegram) sobre atualizações.
```bash
# Copiar o dump para a pasta temporária do Docker
docker exec -it cp backup.sql POSTGRES_CONTAINER_ID:/tmp/backup.sql
# Importar o dump para o banco
docker exec -i POSTGRES_CONTAINER_ID psql -U root -d DATABASE_NAME -f /tmp/backup.sql
```

## API Endpoints
## 🐳 Configuração com Docker

### Usuários
- **POST /users** - Cadastrar um novo usuário.
- **PUT /users** - Atualizar um usuário existente.
Para desenvolvedores de frontend que não precisam executar localmente a API e o banco, siga estes passos:

### Sessões
- **POST /sessions** - Criar uma nova sessão de usuário (login).
- **GET /sessions/:sessionId** - Obter detalhes de uma sessão.
- **PUT /sessions/:sessionId** - Atualizar uma sessão específica.
1. Clone o arquivo `.env` de exemplo:
```bash
cp .env.local .env
```

### Abrigos
- **POST /shelters** - Cadastrar um novo abrigo.
- **PUT /shelters/:shelterId** - Atualizar um abrigo existente.
- **GET /shelters** - Listar abrigos.
2. Use o seguinte comando para criar e iniciar o banco via Docker:
```bash
docker-compose -f docker-compose.dev.yml up
```

### Suprimentos
- **POST /supply** - Cadastrar um novo item de suprimento.
- **PUT /supplies/:supplyId** - Atualizar um suprimento.
- **GET /supplies** - Listar suprimentos.
Adicione a porta do serviço de banco no `docker-compose.dev.yml` para acessos externos:

### Categorias de Suprimentos
- **POST /supply-categories** - Cadastrar uma nova categoria de suprimentos.
- **PUT /supply-categories/:categoryId** - Atualizar uma categoria de suprimentos.
- **GET /supply-categories** - Listar categorias de suprimentos.
```yaml
ports:
- '5432:5432'
- '4000:4000'
```

## Configuração Inicial
## 🚀 Configuração Inicial Local

1. Clone o repositório:
```bash
git clone https://github.com/seuusuario/projeto-enchentes-backend.git
```
2. Entre no diretório do projeto:
```bash
cd projeto-enchentes-backend
```
3. Instale as dependências:
2. Instale as dependências:
```bash
npm install
npm install
npx prisma generate
npx prisma migrate dev
npm run start:dev
```
4. Inicie o servidor:
3. Inicie o servidor:
```bash
npm start
```
A API estará acessível via `http://localhost:4000`.
A API estará disponível em `http://localhost:4000`.

## 📡 API Endpoints

### 🧑‍💻 Usuários

- **📝 POST /users** - Registra um novo usuário.
- **🔧 PUT /users** - Atualiza um usuário existente.

### 🚪 Sessões

- **📝 POST /sessions** - Inicia uma nova sessão de usuário.
- **👀 GET /sessions/:sessionId** - Retorna detalhes de uma sessão.
- **🔧 PUT /sessions/:sessionId** - Atualiza uma sessão.

### 🏠 Abrigos

- **📝 POST /shelters** - Registra um novo abrigo.
- **🔧 PUT /shelters/:shelterId** - Atualiza um abrigo.
- **👀 GET /shelters** - Lista abrigos.

### 📦 Suprimentos

- **📝 POST /supply** - Registra um novo item de suprimento.
- **🔧 PUT /supplies/:supplyId** - Atualiza um suprimento.
- **👀 GET /supplies** - Lista suprimentos.

### 🏷️ Categorias de Suprimentos

## Contribuição
- **📝 POST /supply-categories** - Registra uma nova categoria de suprimentos.
- **🔧 PUT /supply-categories/:categoryId** - Atualiza uma categoria.

Contribuições são bem-vindas! Se quiser contribuir, por favor faça um fork do repositório, crie uma branch para suas modificações e depois envie um pull request.
## 🤝 Contribuição

Contribuições são muito bem-vindas! Se deseja ajudar, faça um fork do repositório, crie uma branch com suas modificações, e envie um pull request.

Sua participação é essencial para ajudarmos a comunidade afetada pelas enchentes no Rio Grande do Sul!
Sua ajuda é crucial para apoiar a comunidade afetada pelas enchentes no Rio Grande do Sul!
2 changes: 1 addition & 1 deletion docker-compose.dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ services:
sh -c "npm install &&
npx prisma generate &&
npx prisma migrate dev &&
npm run start"
npm run start:dev"
db:
container_name: sos-rs-db
image: postgres
Expand Down
1 change: 1 addition & 0 deletions docs/sos-rs.insomnia.json

Large diffs are not rendered by default.

Loading

0 comments on commit b3b6544

Please sign in to comment.