Giter Club home page Giter Club 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!

backend's People

Contributors

albuquerquerafaelbruno avatar andersoncrocha avatar fagundesjg avatar filipepacheco avatar gustavocs avatar jotahdavid avatar kelvinsb avatar matheusdubin avatar rhuam avatar

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.