forked from SOS-RS/backend
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 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
1 parent
032a7ce
commit b3b6544
Showing
43 changed files
with
1,112 additions
and
605 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
Oops, something went wrong.