Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge: develop in main #56

Merged
merged 31 commits into from
May 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
86768c9
feat(shelter-supply): add quantity property
jotahdavid May 10, 2024
b2550ee
feat(shelter-supply): show quantity property at query results
jotahdavid May 10, 2024
6a2694c
fix: removed unintended filter
MatheusDubin May 10, 2024
c117ab0
feat: improve readme file
filipepacheco May 10, 2024
7185fc8
feat: improve readme file
filipepacheco May 10, 2024
79f27fd
Bug fix: added verified field to the query
gustavocs May 10, 2024
4268e47
fix: verified was required on create shelter controller
kelvinsb May 10, 2024
dff6aad
feat: improve readme file
filipepacheco May 10, 2024
f61f86a
Fix linter issues
coelhotatiane May 10, 2024
3f787a5
feat(shelter-supply): set quantity to null if priority is UnderControl
jotahdavid May 10, 2024
8ac3e12
Merge branch 'develop' into feat/improve-readme-file
filipepacheco May 10, 2024
890b826
Merge pull request #29 from jotahdavid/feat/supply-quantity
AlbuquerqueRafael May 10, 2024
a88ed0a
Merge pull request #39 from SOS-RS/feat/improve-readme-file
filipepacheco May 10, 2024
8d050ac
Merge pull request #41 from coelhotatiane/quality-of-life-linter
AlbuquerqueRafael May 10, 2024
847252c
wip: search
fagundesjg May 10, 2024
520cdc5
refact: index search
fagundesjg May 10, 2024
ed08016
fix: fixed shelter OR and AND conditions
fagundesjg May 10, 2024
d9e6ed9
wip: donation tags
fagundesjg May 10, 2024
38c41ac
wip
fagundesjg May 10, 2024
0501b61
fix: parse tag response in shelter index
fagundesjg May 10, 2024
d0532d7
fix: qtd of shelter supplies tagged
fagundesjg May 10, 2024
794c7b8
fix: migration issue
fagundesjg May 10, 2024
2ccf427
wip
fagundesjg May 11, 2024
0248869
feat: update many supplies
fagundesjg May 11, 2024
caf62ea
wip
fagundesjg May 11, 2024
f2f112f
feat: created admin user role
fagundesjg May 11, 2024
cd27183
Fix/develop bugs (#54)
fagundesjg May 11, 2024
15a99b2
README.md 2.0 (#52)
4rthuurr May 11, 2024
057dde0
Add license (#50)
giggio May 11, 2024
0879745
Merge branch 'fix/develop-bugs' into develop
fagundesjg May 11, 2024
e4e9de2
Merge branch 'main' into develop
fagundesjg May 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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