Skip to content

boubeejul/user-review-form

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Formulário de Avaliação

Este projeto consiste em um formulário para o envio de avaliações feito em Python + Flask com uso de DynamoDB e API Gateway na AWS com objetivo de praticar a criação de infraestrutura via IaC e integrá-la a uma aplicação.

Screenshot

Screenshot da aplicação

Tecnologias utilizadas

  • AWS (Lambda, DynamoDB, API Gateway)
  • Python
  • Flask + HTML + CSS
  • Terraform
  • Boto3

Arquitetura

Screenshot da arquitetura

Estrutura do repositório

  • /api: funções utilizadas pelas Lambdas
  • /app: aplicação com o formulário
  • /terraform: arquivos .tf necessários para a criação da infraestrutura na nuvem

API

  • Rotas:
    • GET /reviews
    • POST /reviews
  • Body da requisição POST:
    {
        "username": "string",
        "title": "string",
        "message": "string",
        "date": "string"
    }
  • Body retornado pelo GET:
    {
        "reviews": [
            {
                "username": "string",
                "title": "string",
                "message": "string",
                "date": "string"
            }
        ]
    }

Rodando o projeto

Variáveis de ambiente

Utilizadas pela aplicação:

  • FLASK_SECRET_KEY: utilizada pelo Flask para criptografar a session
  • AWS_API_URL: URL fornecida pela AWS ao criar uma API Gateway

Utilizadas pelo Terraform e Boto3 (se for rodar as funções localmente):

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_REGION

Aplicação e infraestrutura

# Criar ambiente virtual (em Linux)
python3 -m venv .venv

# Ativar ambiente (em Linux)
source .venv/bin/activate

# Atualizar pip
python3 -m pip install --upgrade pip

# Instalar dependências
pip install -r requirements.txt

# Subir infraestrutura pelo Terraform
cd terraform/ && terraform apply

# Rodar a aplicação
cd .. && python3 app/app.py

About

Formulário de avaliação para usuários usando API Gateway e DynamoDB com Terraform e Flask

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors