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.
- 🟢 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.
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.
Se estiver usando Docker, os comandos para carregar o dump são:
# 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
Para desenvolvedores de frontend que não precisam executar localmente a API e o banco, siga estes passos:
-
Clone o arquivo
.env
de exemplo:cp .env.local .env
-
Use o seguinte comando para criar e iniciar o banco via Docker:
docker-compose -f docker-compose.dev.yml up
Adicione a porta do serviço de banco no docker-compose.dev.yml
para acessos externos:
ports:
- '5432:5432'
- '4000:4000'
- Clone o repositório:
git clone https://github.com/seuusuario/projeto-enchentes-backend.git
- Instale as dependências:
npm install npx prisma generate npx prisma migrate dev npm run start:dev
- Inicie o servidor:
A API estará disponível em
npm start
http://localhost:4000
.
- 📝 POST /users - Registra um novo usuário.
- 🔧 PUT /users - Atualiza um usuário existente.
- 📝 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.
- 📝 POST /shelters - Registra um novo abrigo.
- 🔧 PUT /shelters/:shelterId - Atualiza um abrigo.
- 👀 GET /shelters - Lista abrigos.
- 📝 POST /supply - Registra um novo item de suprimento.
- 🔧 PUT /supplies/:supplyId - Atualiza um suprimento.
- 👀 GET /supplies - Lista suprimentos.
- 📝 POST /supply-categories - Registra uma nova categoria de suprimentos.
- 🔧 PUT /supply-categories/:categoryId - Atualiza uma categoria.
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 ajuda é crucial para apoiar a comunidade afetada pelas enchentes no Rio Grande do Sul!