/desafio_voluntarios_gama_lacrei_backend

Voluntários digitais desafio vamos ajudar uma ONG a construir uma plataforma digital com os pilares em tecnologia, segurança e privacidade.

Primary LanguageTypeScript

🏳️‍🌈 Protótipo Back-End Lacrei


📌 O Desafio

A ideia é desenvolver uma API de cadastro de pessoas profissionais da área da saúde com as funcionalidades de login e cadastro (em três etapas: pré-cadastro, cadastro e pós-cadastro), visando automatizar o processo atual para assim proporcionar uma melhor experiência para os profissionais, fazendo com que eles se cadastrem e se tornem parceiros.


🔧 Instalação

Para a Implantação dessa aplicação, é necessário seguir o seguinte passo-a-passo:

1 - clonar o repositório

git clone https://github.com/EduardoABG/desafio_voluntarios_gama_lacrei_backend

2 - Instalar pacotes e dependências

npm install

3 - Compilar o códio TS para JS

tsc

4 - Criar um banco de dados local de acordo com a arquitetura do projeto (Diagrama Entidade-Relacionamento):

  • Criar um arquivo .env na raiz do projeto de acordo com .env.exemplo;

  • Criar o banco de dados

npx sequelize db:create
  • Criar as tabelas do banco de dados
npx sequelize db:migrate
  • Preencher o banco de dados com as informações pré-definidas
node dist/database/carga_inicial

5 - Inicializar a API localmente

npm run dev

📋 Funcionalidades

A aplicação foi desenvolvida com base nos padrões de arquitetura de projeto com o intuito de tornar a aplicação mais simples e flexível para possíveis implementações futuras.

As pastas estão organizadas da seguinte forma:

  • database: armazena os arquivos de configuração e inicialização do Banco de dados.
  • infra: armazena estruturas de configuração da aplicação e middlewares.
  • models: armazena a modelagem dos dados e define como eles se relacionam.
  • modules: armazena controllers, routes e usecases das requisições.
  • repositories: armazena as conexões entre banco de dados e controllers.

🔧 Ferramentas Utilizadas

Foram utilizados as seguintes ferramentas:

  • Typescript - Linguagem de programação
  • Node.JS - Framework para executar JS fora do navegador
  • Express - Framework Node.js para criação de APIs
  • Sequelize - Mapeador de objetos relacionais para Node.JS
  • bcryptjs - Biblioteca JS para encriptação de dados
  • crypto-js - Biblioteca JS de padrões de criptografia
  • dotenv - Biblioteca JS para carregar variáveis de ambiente
  • jsonwebtoken - Biblioteca de implementação para JWT
  • multer - Middleware Node.js para upload de arquivos
  • mysql2 - Cliente MySQL para Node.JS
  • winston - Biblioteca para cração de loggs
  • xlsx - Biblioteca JS para trabalhar com planilhas

✒️ Autores