Categorygithub.com/robsondevgo/quicknotes
module
0.0.0-20241104105821-b8df81dcaa98
Repository: https://github.com/robsondevgo/quicknotes.git
Documentation: pkg.go.dev

# README

Desenvolvimento Web com Go - Do Zero ao Deploy

Quicknotes

Aplicação web desenvolvida durante o curso. Trata-se de uma aplicação de gerenciamento de anotações e lembretes, similar ao Google Keep.

Configuração

A aplicação pode ser configurada através de variáveis de ambiente. As variáveis disponíveis podem ser vistas no arquivo .env ou na struct Config do pacote main.

A struct Config possui uma tag (env) que define o nome da variável de ambiente e um valor default ou a palavra required, para os casos em que o valor precisa obrigatoriamente vir de uma variável de ambiente (por exemplo, valores confidenciais são exemplos de valores que devem ser configurados em variáveis de ambiente).

Abaixo podemos ver um exemplo de como configurar uma propriedade na struct Config.

type Config struct {
    NomePropriedade string `env:"NOME_ENV_VAR,valor_default"`
    SecretValue string `env:"SECRET_VALUE,required"`
}
  • NomePropriedade: nome da propriedade de configuração
  • NOME_ENV_VAR: nome da variável de ambiente de onde o valor será lido

Rotas da aplicação

MétodoRotaHandlerDescrição
GET/HomeHandlerHome Page
GET/noteNoteListHome Page
GET/note/{id}NoteViewVisualiza uma anotação
GET/note/newNoteNewForm de Criação de uma anotação
POST/note/NoteSaveCria uma anotação
DELETE/note/{id}NoteDeleteRemove uma anotação
GET/note/{id}/editNoteEditForm de alteração de uma anotação
GET/user/signupSignupFormForm de registro de usuários
POST/user/signupSignupAdiciona o usuário no banco
GET/user/signinSigninFormForm de login de usuários
POST/user/signinSigninProcessa o login do usuário
GET/user/signoutSignoutProcessa o logout do usuário
GET/user/passwordResetPasswordForm para alteração de senha
POST/user/password/{token}ResetPasswordFormProcessa alteração de senha
GET/user/forgetpasswordForgetPasswordFormForm para alteração de senha
POST/user/forgetpasswordForgetPasswordProcessa alteração de senha
GET/confirmation/{token}ConfirmConfirmação de email do cadastro

Modelo do Banco de Dados

NOTES

CAMPOTIPOCONSTRAINT
IDBIGSERIALPK, NOT NULL
TITLETEXTNOT NULL
CONTENTTEXT
COLORTEXTNOT NULL
CREATED_ATTIMESTAMP
UPDATED_ATTIMESTAMP
USER_IDBIGINTNOT NULL

USERS

CAMPOTIPOCONSTRAINT
IDBIGSERIALPK, NOT NULL
EMAILTEXTNOT NULL UNIQUE
PASSWORDTEXTNOT NULL
ACTIVETEXTNOT NULL DEFAULT false
CREATED_ATTIMESTAMP
UPDATED_ATTIMESTAMP

USERS_CONFIRMATION_TOKENS

CAMPOTIPOCONSTRAINT
IDBIGSERIALPK, NOT NULL
USER_IDBIGINTNOT NULL
TOKENTEXTNOT NULL
CONFIRMEDBOOLEANNOT NULL DEFAULT false
CREATED_ATTIMESTAMP
UPDATED_ATTIMESTAMP

SESSIONS

CAMPOTIPOCONSTRAINT
TOKENTEXTPK, NOT NULL
DATABYTEANOT NULL
EXPIRYTIMESTAMPTZNOT NULL

Execução

Para executar a aplicação com Docker localmente, execute o comando abaixo:

docker compose -f ./docker-compose.local.yml up -d

Para executar a aplicação com Docker em produção (cloud), execute o comando abaixo:

docker compose up -d

# Packages

No description provided by the author
No description provided by the author
No description provided by the author