|
1 | 1 | # README para o Backend do App de Ajuda em Enchentes
|
2 | 2 |
|
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. |
4 |
| - |
5 |
| -## Sobre o Projeto |
6 |
| - |
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. |
| 3 | +Este repositório contém o backend de um aplicativo desenvolvido para organizar e distribuir suprimentos, bem como |
| 4 | +coordenar voluntários durante os alagamentos no Rio Grande do Sul. O backend fornece APIs para autenticação de usuários, |
| 5 | +gerenciamento de abrigos e suprimentos, entre outros. |
8 | 6 |
|
9 | 7 | ## Tecnologias Utilizadas
|
10 | 8 |
|
11 | 9 | - **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. |
| 10 | +- **Prisma**: ORM para Node.js e TypeScript. |
| 11 | +- **Docker**: Plataforma para desenvolvimento, envio e execução de aplicativos em contêineres. |
| 12 | +- **Nest**: Framework para aplicação web para Node.js. |
| 13 | +- **PostgreSQL**: Banco de dados NoSQL para armazenar dados de forma eficiente. |
| 14 | + |
| 15 | +## Dump do banco de dados |
| 16 | + |
| 17 | +Após toda a configuração feita, seja local ou via docker, você pode subir um dump do servidor para ter dados iniciais |
| 18 | +para testar a aplicação. |
| 19 | +O dump está disponível no arquivo `prisma/migration/dev_dump.sql`. Para subir o dump, basta executar ele. |
| 20 | +Lembrando que a migrations já deve ter sido rodada para ele funcionar. |
| 21 | + |
| 22 | +## Configuração com Docker |
| 23 | + |
| 24 | +Caso você esteja desenvolvendo frontend e não precise rodar uma instancia da API e do banco localmente, siga essas |
| 25 | +instruções: |
| 26 | + |
| 27 | +1. Clone o .env de exemplo: |
| 28 | + ```bash |
| 29 | + cp .env.local .env |
| 30 | + ``` |
| 31 | + |
| 32 | +2. Criar e iniciar o banco via docker. Esse comando irá subir um container com a API e outro container com o banco |
| 33 | + Postgresql. |
| 34 | + Além disso, ele também irá rodar as migrations do Prisma e terá um banco com o schema já configurado. |
| 35 | + |
| 36 | + ```bash |
| 37 | + docker-compose -f docker-compose.dev.yml up |
| 38 | + ``` |
| 39 | + |
| 40 | +Se você estiver tendo problemas para acessar o banco via um gerenciador (dbeaver, etc), pode ser preciso adicionar o |
| 41 | +port do serviço db no docker-compose.dev.yml |
| 42 | + |
| 43 | +```yaml |
| 44 | +ports: |
| 45 | + - '5432:5432' |
| 46 | + - '4000:4000' |
| 47 | +``` |
| 48 | + |
| 49 | +Se você estiver recebendo algum erro relacionado a PORT da DATABASE_URL, tem uma linha comentada no .env que pode ser |
| 50 | +descomentada para resolver o problema. |
15 | 51 |
|
16 |
| -## Backlog |
| 52 | +## Configuração inicial para rodar localmente |
17 | 53 |
|
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. |
| 54 | +1. Clone o repositório: |
| 55 | + ```bash |
| 56 | + git clone https://github.com/seuusuario/projeto-enchentes-backend.git |
| 57 | + ``` |
| 58 | +2. Entre no diretório do projeto: |
| 59 | + ```bash |
| 60 | + cd projeto-enchentes-backend |
| 61 | + ``` |
| 62 | +3. Instale as dependências: |
| 63 | + ```bash |
| 64 | + npm install |
| 65 | + npx prisma generate |
| 66 | + npx prisma migrate dev |
| 67 | + npm run start:dev |
| 68 | + ``` |
| 69 | +4. Inicie o servidor: |
| 70 | + ```bash |
| 71 | + npm start |
| 72 | + ``` |
| 73 | + A API estará acessível via `http://localhost:4000`. |
20 | 74 |
|
21 | 75 | ## API Endpoints
|
22 | 76 |
|
23 | 77 | ### Usuários
|
| 78 | + |
24 | 79 | - **POST /users** - Cadastrar um novo usuário.
|
25 | 80 | - **PUT /users** - Atualizar um usuário existente.
|
26 | 81 |
|
27 | 82 | ### Sessões
|
| 83 | + |
28 | 84 | - **POST /sessions** - Criar uma nova sessão de usuário (login).
|
29 | 85 | - **GET /sessions/:sessionId** - Obter detalhes de uma sessão.
|
30 | 86 | - **PUT /sessions/:sessionId** - Atualizar uma sessão específica.
|
31 | 87 |
|
32 | 88 | ### Abrigos
|
| 89 | + |
33 | 90 | - **POST /shelters** - Cadastrar um novo abrigo.
|
34 | 91 | - **PUT /shelters/:shelterId** - Atualizar um abrigo existente.
|
35 | 92 | - **GET /shelters** - Listar abrigos.
|
36 | 93 |
|
37 | 94 | ### Suprimentos
|
| 95 | + |
38 | 96 | - **POST /supply** - Cadastrar um novo item de suprimento.
|
39 | 97 | - **PUT /supplies/:supplyId** - Atualizar um suprimento.
|
40 | 98 | - **GET /supplies** - Listar suprimentos.
|
41 | 99 |
|
42 | 100 | ### Categorias de Suprimentos
|
| 101 | + |
43 | 102 | - **POST /supply-categories** - Cadastrar uma nova categoria de suprimentos.
|
44 | 103 | - **PUT /supply-categories/:categoryId** - Atualizar uma categoria de suprimentos.
|
45 | 104 | - **GET /supply-categories** - Listar categorias de suprimentos.
|
46 | 105 |
|
47 |
| -## Configuração Inicial |
48 |
| - |
49 |
| -1. Clone o repositório: |
50 |
| - ```bash |
51 |
| - git clone https://github.com/seuusuario/projeto-enchentes-backend.git |
52 |
| - ``` |
53 |
| -2. Entre no diretório do projeto: |
54 |
| - ```bash |
55 |
| - cd projeto-enchentes-backend |
56 |
| - ``` |
57 |
| -3. Instale as dependências: |
58 |
| - ```bash |
59 |
| - npm install |
60 |
| - ``` |
61 |
| -4. Inicie o servidor: |
62 |
| - ```bash |
63 |
| - npm start |
64 |
| - ``` |
65 |
| - A API estará acessível via `http://localhost:4000`. |
66 |
| - |
67 | 106 | ## Contribuição
|
68 | 107 |
|
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. |
70 |
| - |
| 108 | +Contribuições são bem-vindas! Se quiser contribuir, por favor faça um fork do repositório, crie uma branch para suas |
| 109 | +modificações e depois envie um pull request. |
71 | 110 |
|
72 | 111 | Sua participação é essencial para ajudarmos a comunidade afetada pelas enchentes no Rio Grande do Sul!
|
0 commit comments