Git Product home page Git Product logo

backend's Introduction

README para o Backend do 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.

Tecnologias Utilizadas

  • Node.js: Ambiente de execução para JavaScript.
  • Prisma: ORM para Node.js e TypeScript.
  • Docker: Plataforma para desenvolvimento, envio e execução de aplicativos em contêineres.
  • Nest: Framework para aplicação web para Node.js.
  • PostgreSQL: Banco de dados NoSQL para armazenar dados de forma eficiente.

Dump do banco de dados

Após toda a configuração feita, seja local ou via docker, você pode subir um dump do servidor para ter dados iniciais para testar a aplicação. O dump está disponível no arquivo prisma/migration/dev_dump.sql. Para subir o dump, basta executar ele. Lembrando que a migrations já deve ter sido rodada para ele funcionar.

Configuração com Docker

Caso você esteja desenvolvendo frontend e não precise rodar uma instancia da API e do banco localmente, siga essas instruções:

  1. Clone o .env de exemplo:

    cp .env.local .env
  2. Criar e iniciar o banco via docker. Esse comando irá subir um container com a API e outro container com o banco Postgresql. Além disso, ele também irá rodar as migrations do Prisma e terá um banco com o schema já configurado.

    docker-compose -f docker-compose.dev.yml up

Se você estiver tendo problemas para acessar o banco via um gerenciador (dbeaver, etc), pode ser preciso adicionar o port do serviço db no docker-compose.dev.yml

ports:
  - '5432:5432'
  - '4000:4000'

Se você estiver recebendo algum erro relacionado a PORT da DATABASE_URL, tem uma linha comentada no .env que pode ser descomentada para resolver o problema.

Configuração inicial para rodar localmente

  1. Clone o repositório:
    git clone https://github.com/seuusuario/projeto-enchentes-backend.git
  2. Entre no diretório do projeto:
    cd projeto-enchentes-backend
  3. Instale as dependências:
    npm install 
    npx prisma generate 
    npx prisma migrate dev 
    npm run start:dev
  4. Inicie o servidor:
    npm start
    A API estará acessível via http://localhost:4000.

API Endpoints

Usuários

  • POST /users - Cadastrar um novo usuário.
  • PUT /users - Atualizar um usuário existente.

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.

Abrigos

  • POST /shelters - Cadastrar um novo abrigo.
  • PUT /shelters/:shelterId - Atualizar um abrigo existente.
  • GET /shelters - Listar abrigos.

Suprimentos

  • POST /supply - Cadastrar um novo item de suprimento.
  • PUT /supplies/:supplyId - Atualizar um suprimento.
  • GET /supplies - Listar suprimentos.

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.

Contribuição

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.

Sua participação é essencial para ajudarmos a comunidade afetada pelas enchentes no Rio Grande do Sul!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.