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.
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.
- Node
- Typescript
- Serverless Framework
- AWS Lambda
- Amazon DynamoDB
- Amazon S3
- Amazon API Gateway
- Amazon SNS
- Eslint (eslint-config-airbnb-base)
- Prettier
- Plugin do Typescript para o Serverless (serverless-plugin-typescript)
- AWS Software Dev. Kit (aws-sdk)
- AWS Lambda Functions (aws-lambda)
- Jest
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.
- 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
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 |
-
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.
- Filtros de consulta no painel de administrador;
- Documentação de API com Swagger UI com deploy no Github Pages