Skip to content

Commit b3b6544

Browse files
fagundesjgjotahdavidMatheusDubinfilipepachecogustavocs
authored
merge: develop in main (#56)
* 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 (#54) * feat: update many supplies * feat: created admin user role * README.md 2.0 (#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 (#50) Closes #44. --------- Co-authored-by: Jhonatan David <[email protected]> Co-authored-by: MatheusDubin <[email protected]> Co-authored-by: Lipe <[email protected]> Co-authored-by: Gustavo Clemente <[email protected]> Co-authored-by: kelvinsb <[email protected]> Co-authored-by: Tatiane <[email protected]> Co-authored-by: AlbuquerqueRafael <[email protected]> Co-authored-by: Arthur <[email protected]> Co-authored-by: Giovanni Bassi <[email protected]>
1 parent 032a7ce commit b3b6544

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1112
-605
lines changed

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ DB_PORT=
55
DB_USER=
66
DB_PASSWORD=
77
DB_DATABASE_NAME=
8-
DATABASE_URL="postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_DATABASE_NAME}?schema=public&sslmode=require"
8+
DATABASE_URL="postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_DATABASE_NAME}?schema=public"
99
SECRET_KEY=
1010

1111
HOST=::0.0.0.0

.env.local

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ DB_DATABASE_NAME=sos_rs
66
DB_USER=root
77
DB_PASSWORD=root
88
DATABASE_URL="postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_DATABASE_NAME}?schema=public"
9+
910
SECRET_KEY=batata
1011

1112
HOST=::0.0.0.0

.eslintrc.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,11 @@ module.exports = {
2121
'@typescript-eslint/explicit-function-return-type': 'off',
2222
'@typescript-eslint/explicit-module-boundary-types': 'off',
2323
'@typescript-eslint/no-explicit-any': 'off',
24+
"prettier/prettier": [
25+
"error",
26+
{
27+
"endOfLine": "auto"
28+
}
29+
]
2430
},
2531
};

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2024 SOS-RS
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 73 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,101 @@
1-
# README para o Backend do App de Ajuda em Enchentes
1+
# 🌊 Backend para App de Ajuda em Enchentes 🌊
22

3-
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.
3+
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.
44

5-
## Sobre o Projeto
5+
## 🛠 Tecnologias Utilizadas
66

7-
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.
7+
- **🟢 Node.js**: Ambiente de execução para JavaScript.
8+
- **🔗 Prisma**: ORM para Node.js e TypeScript, facilitando o gerenciamento do banco de dados.
9+
- **🐳 Docker**: Solução para desenvolvimento e execução de aplicativos em contêineres.
10+
- **🐦 Nest**: Framework de alto desempenho para aplicações web em Node.js.
11+
- **📦 PostgreSQL**: Banco de dados relacional robusto e eficiente.
812

9-
## Tecnologias Utilizadas
13+
## 🗂 Dump do Banco de Dados
1014

11-
- **Node.js**: Ambiente de execução para JavaScript.
12-
- **Express**: Framework para aplicação web para Node.js.
13-
- **MongoDB**: Banco de dados NoSQL para armazenar dados de forma eficiente.
14-
- **JWT**: Para autenticação segura via tokens.
15+
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.
1516

16-
## Backlog
17+
Se estiver usando Docker, os comandos para carregar o dump são:
1718

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

21-
## API Endpoints
26+
## 🐳 Configuração com Docker
2227

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

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

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

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

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

47-
## Configuração Inicial
48+
## 🚀 Configuração Inicial Local
4849

4950
1. Clone o repositório:
5051
```bash
5152
git clone https://github.com/seuusuario/projeto-enchentes-backend.git
5253
```
53-
2. Entre no diretório do projeto:
54-
```bash
55-
cd projeto-enchentes-backend
56-
```
57-
3. Instale as dependências:
54+
2. Instale as dependências:
5855
```bash
59-
npm install
56+
npm install
57+
npx prisma generate
58+
npx prisma migrate dev
59+
npm run start:dev
6060
```
61-
4. Inicie o servidor:
61+
3. Inicie o servidor:
6262
```bash
6363
npm start
6464
```
65-
A API estará acessível via `http://localhost:4000`.
65+
A API estará disponível em `http://localhost:4000`.
66+
67+
## 📡 API Endpoints
68+
69+
### 🧑‍💻 Usuários
70+
71+
- **📝 POST /users** - Registra um novo usuário.
72+
- **🔧 PUT /users** - Atualiza um usuário existente.
73+
74+
### 🚪 Sessões
75+
76+
- **📝 POST /sessions** - Inicia uma nova sessão de usuário.
77+
- **👀 GET /sessions/:sessionId** - Retorna detalhes de uma sessão.
78+
- **🔧 PUT /sessions/:sessionId** - Atualiza uma sessão.
79+
80+
### 🏠 Abrigos
81+
82+
- **📝 POST /shelters** - Registra um novo abrigo.
83+
- **🔧 PUT /shelters/:shelterId** - Atualiza um abrigo.
84+
- **👀 GET /shelters** - Lista abrigos.
85+
86+
### 📦 Suprimentos
87+
88+
- **📝 POST /supply** - Registra um novo item de suprimento.
89+
- **🔧 PUT /supplies/:supplyId** - Atualiza um suprimento.
90+
- **👀 GET /supplies** - Lista suprimentos.
91+
92+
### 🏷️ Categorias de Suprimentos
6693

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

69-
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.
97+
## 🤝 Contribuição
7098

99+
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.
71100

72-
Sua participação é essencial para ajudarmos a comunidade afetada pelas enchentes no Rio Grande do Sul!
101+
Sua ajuda é crucial para apoiar a comunidade afetada pelas enchentes no Rio Grande do Sul!

docker-compose.dev.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ services:
2424
sh -c "npm install &&
2525
npx prisma generate &&
2626
npx prisma migrate dev &&
27-
npm run start"
27+
npm run start:dev"
2828
db:
2929
container_name: sos-rs-db
3030
image: postgres

docs/sos-rs.insomnia.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)