Skip to content

vitorAzevedo09/faladev

 
 

Repository files navigation

Faladev - Integração com Google Calendar e Envio de Emails

Este projeto é uma aplicação Go que integra com o Google Calendar e tem permissão para enviar emails.

Pré-requisitos

  • Go versão 1.21 ou superior
  • Conta no Google Console para criar credenciais de API

Instalação

  1. Clone o Repositório:

    git clone https://github.com/dedevpradev/faladev.git
    cd faladev
  2. Instale o Go:

    Certifique-se de ter o Go instalado na versão 1.21 ou superior. Você pode verificar sua versão do Go com o comando:

    go version

    Para instalar ou atualizar o Go, siga as instruções oficiais: Instalação do Go

  3. Configurar Credenciais do Google Console:

    Para que a aplicação possa acessar o Google Calendar e enviar emails, você precisa configurar as credenciais no Google Console:

    Acesse o Google Cloud Console: Google Cloud Console

    Crie um Novo Projeto:

    • Vá para o painel do Google Cloud Console.
    • Clique em "Select a Project" e depois em "New Project".
    • Dê um nome ao seu projeto e clique em "Create".

    Habilite as APIs Necessárias:

    • Vá para "API & Services" > "Library".
    • Pesquise e habilite a API do Google Calendar.
    • Pesquise e habilite a API do Gmail.

    Configure a Tela de Consentimento OAuth:

    • Vá para "API & Services" > "OAuth consent screen".
    • Escolha "External" e clique em "Create".
    • Preencha as informações necessárias, como nome do aplicativo e email de suporte.
    • Adicione o escopo .../auth/calendar para acesso ao Google Calendar e .../auth/gmail.send para enviar emails.
    • Salve as alterações.

    Crie Credenciais OAuth 2.0:

    • Vá para "API & Services" > "Credentials".
    • Clique em "Create Credentials" e selecione "OAuth 2.0 Client IDs".
    • Escolha "Web application".
    • Adicione os URIs de redirecionamento autorizados. Exemplo: http://localhost:8080/callback
    • Salve as credenciais e anote o Client ID e Client Secret.
  4. Configurar Variáveis de Ambiente:

    Crie um arquivo .env no diretório ./backend e adicione as seguintes variáveis, incluindo suas credenciais do Google:

    GOOGLE_MEET_EVENT=https://meet.google.com/link-do-meet-do-evento
    GOOGLE_REDIRECT_URL=http://localhost:8080/callback
    GOOGLE_CLIENT_ID=seu-client-id
    GOOGLE_CLIENT_SECRET=seu-client-secret
    DATABASE_URL=sua-string-de-conexao-postgresql
  5. Instalar Dependências:

    Execute o comando abaixo para instalar as dependências do projeto:

    go mod tidy
  6. Rodar o Projeto:

    Para iniciar a aplicação, execute o comando:

    go run cmd/api/main.go

    Na primeira vez que você rodar o projeto, você deverá acessar o link será gerado no console para autorizar o seu aplicativo na sua conta Google.

Instruções para com Docker

Para iniciar a aplicação, execute o comando:

docker-compose up -d

Para parar e remover contêineres, redes, volumes e imagens usadas pelo docker compose, execute o comando:

docker-compose down --rmi all

Para limpar caches e configurações locais, você pode remover os arquivos de configuração e imagens desnecessárias:

docker system prune -a --volumes

Como usar o Debugger do VScode com Docker?

Tendo iniciado a aplicação com o comando do docker compose basta navegar até a aba Run and Debug do VSCode.

O comando padrão para acessar essa aba é Ctrl+Shift+D ou no Mac Cmd+Shift+D. Caso não seja o seu comando padrão você pode se basear nessa documentação oficial.

Selecione a opção Connect to server e clique no botão de Play. Run and debug tutorial

Como atualizar a documentação Swagger?

Instale o pacote golang swag:

go install github.com/swaggo/swag/cmd/swag@latest 

Vá para a pasta backend e rode o seguinte comando:

swag init -g ./cmd/api/main.go -o cmd/docs

Run and debug tutorial

Como Usar

Para acessar a aplicação:

http://localhost:3000

URL da API:

http://localhost:8080

Para acessar o Jaeger:

http://localhost:16686/

Para acessar o pgAdmin:

http://localhost:5050/

Para acessar a documentação swagger:

http://localhost:8080/swagger/index.html

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 69.0%
  • TypeScript 14.5%
  • HTML 13.8%
  • Dockerfile 1.2%
  • Shell 0.7%
  • JavaScript 0.6%
  • Other 0.2%