Skip to content

tech-pro-bem/saude-da-rua-back-end

Repository files navigation

Tech Pro Bem - Saúde da Rua

Este projeto possui o objetivo principal de construir uma aplicação Back-end, de custo zero, para a ONG Saúde da Rua que tem como missão levar atendimento médico humanizado e recorrente às camadas mais vulneráveis da sociedade.

Inicialização:

Para executar o projeto é necessário ter instalado o Node.js, o Serverless framework e uma conta AWS.
Faça o clone do projeto e configure seu perfil no arquivo Serverless.

⚠️ A autenticação não funciona em desenvolvimento, pois o Serverless Offline não suporta

Ferramentas:

Dependências de desenvolvimento:

Dependências de produção:

Links importantes:

Análise Técnica:

Descrição do ambiente técnico

O fluxo da API é composto por uma API Gateway que atua como uma proxy e processa as requisições. Funções Lambda, onde são feitas as validações e casos de uso. Banco de dados e banco de objetos para armazenamento dados e arquivos. Além de serviço gerenciado de mensageria de arquitetura Pub/Sub.

As funcionalidades principais são:

  • F1 - Create, Delete and Update de administradores com nível de permissão
  • F2 - CRUD de voluntários
  • F3 - Create and Delete de Arquivos do tipo PDF e Imagem

As ferramentas utilizadas para o desenvolvimento incluem Typescript que é uma linguagem de programação utilizada para o Back-end, para front-end foi utilizado React. DynamoDB atuando como banco de dados não relacional e S3 como banco de objetos. SNS como mensageria, Serverless framework para transpilação e deploy além do Yarn como gerenciador de pacotes.

Requisitos funcionais

  • RF1 - Criação de painel para administradores
  • RF3 - Disponibilização de arquivos como PDFs e Imagens no site
  • RF2 - Formulário para cadastro de voluntários
  • RF4 - Confirmação de email de voluntários

Casos de uso:

Mensagens Internas

Rotas utilizadas pela aplicação web para executar metodos de GET, POST, PUT e DELETE no banco de dados. Onde o retorno de cada uma das funções estará contido em uma sessão para renderização de páginas web.

Verbo Rota Funcionalidade
GET /get/volunteers Lista os usuários voluntários do banco de dados
GET /get/one_volunteer Exibe um usuário em particular
GET /verify/volunteer-email Confirma email de um usuário voluntário
GET /file/{fileType} Lista os arquivos de acordo com o tipo passado no path
POST /login Faz login como administrador
POST /create/admin Cria um usuário administrador
POST /create/volunteer Cria um usuário voluntário
POST /create/file/{fileType} Grava um arquivo no S3 e salva a URL no DynamoDB
PUT /update/volunteer/{email} Atualiza um usuário em particular
DELETE /delete/admin Deleta um usuário administrador
DELETE /delete/file/{fileId} Deleta um arquivo de acordo com o Id passado no path

Conceitos básicos:

  • SOLID - SOLID são cinco princípios da programação orientada a objetos que facilitam no desenvolvimento de softwares, tornando-os fáceis de manter e estender. Esses princípios podem ser aplicados a qualquer linguagem de POO.

Futuras implementações:

  • Filtros de consulta no painel de administrador;
  • Documentação de API com Swagger UI com deploy no Github Pages