vigilant-waddle

command module
v0.0.0-...-37076da Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 28, 2022 License: Apache-2.0 Imports: 3 Imported by: 0

README

Vigilant Waddle

Este projeto é uma API de autenticação e de gerenciamento de usuários. São dois (2) tipos de usuários:

  • Produtor
  • Aluno

Nesta API será possível registrar cada usuário e autenticar.

📌 Tabela de conteúdo

👣 Primeiros passos

Voltar ao topo

Certifique-se de ter instalado os seguintes recursos:

🏃 Como rodar

Voltar ao topo

Após ter instalado os recursos necessários, você pode executar o seguinte comando:

make

Você terá o seguinte output:

Make usage:
        make run        - run the server
        make docs       - generate swagger documentation
        make rebuild_db - rebuild the database
        make stop       - stop the server
        make mock       - generate application mocks
        make test       - run tests
        make e2e-test   - run e2e tests

Estes acima, são os comandos que você pode rodar.

Para rodar a aplicação: make run

📖 Documentação adicional

Voltar ao topo

Após conseguir rodar a aplicação com sucesso, você terá alguns recursos:

❓ Dicas

Voltar ao topo


Instalação Fácil de Go lang

Para facilitar basta fazer download do gist e executar. Confira a versão e OS antes de executar.


Instalação do Swag

Certifique-se de ter instalado o Go lang antes de prosseguir. Após isso, você pode rodar:

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

Documentação do Swag


Troubleshooting com o Banco de dados

Caso esteja com problemas ao fazer sua aplicação inicializar e se conectar com o banco de dados, siga os passos:

  1. Execute:

    make run
    
  2. Aguarde a aplicação iniciar. Para saber se a aplicação está funcionando:

    curl 'http://localhost:8081/ping'
    

    Se receber {"message": "pong"} a aplicação está rodando.

    Caso o comando anterior não responda. Provavelmente, seu container não conseguiu se conectar à base de dados ainda.

    Não se desespere. Continue seguinto os passos.

  3. Execute com sua senha sudo:

    make rebuild_db
    

    Isso irá reconstruir o container de banco de dados.

  4. Execute:

    docker logs vigilant_waddle_api_db -n 30 | grep "ready for start up."
    

    Se este comando retornar algo, seu banco está funcionando.

  5. Agora dê um CTRL + S em algum arquivo .go para que a aplicação reinicie.

  6. Tente novamente executar o comando de ping:

    curl 'http://localhost:8081/ping'
    

    Se receber {"message": "pong"} a aplicação está rodando.

Pronto!


🍎 Testes

Voltar ao topo

Esta aplicação possui testes unitários e testes de Integração.

Você pode executar os testes com os seguintes comandos:

  • Unit: make test
  • Integração: make e2e-test

🥇 Features

Voltar ao topo

Confira a lista de features da aplicação:

Produtor

  • Cadastro
  • Recuperação de conta - TODO
  • Reset de senha - TODO
  • Gerenciamento de sessão - TODO
    • Ver locais de acesso - TODO
    • Eliminar sessão de lugar remoto - TODO
  • Me (recuperar meus dados)
  • Login
  • Logout
  • Escopos de permissão - TODO Escopos de permissão funciona como uma ACL. Que checa se o usuário pode ou não acessar determinados recursos dentro da aplicação

Aluno

  • Cadastro
  • Recuperação de conta - TODO
  • Reset de senha - TODO
  • Gerenciamento de sessão - TODO
    • Ver locais de acesso - TODO
    • Eliminar sessão de lugar remoto - TODO
  • Me (recuperar meus dados)
  • Login
  • Logout
  • Escopos de permissão - TODO Escopos de permissão funciona como uma ACL. Que checa se o usuário pode ou não acessar determinados recursos dentro da aplicação

💈 Como contribuir

Voltar ao topo

Para contribuir com este projeto crie uma branch com seu nome e sua contribuição. Exemplos:

  • johndoe/fix/acl-bug
  • johndoe/feature/two-factor-login

Certifique-se, também, de adicionar testes para sua contribuição e garanta que nenhuma outra implementação seja prejudicada por sua contribuição.

Abra um Pull request com sua modificação.

🐛 Issues

Voltar ao topo

Encontrou algum bug ou problema de qualquer natureza. Sinta-se a vontade para comentar e abrir uma issue. Entretanto, coloque o label apropriado na sua issue

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package docs GENERATED BY SWAG; DO NOT EDIT This file was generated by swaggo/swag
Package docs GENERATED BY SWAG; DO NOT EDIT This file was generated by swaggo/swag
src
cmd
cmd/httputil
Package httputil represents the http responses documentation.
Package httputil represents the http responses documentation.
core/modules/auth/usecase
Package usecase will implements all student usecases
Package usecase will implements all student usecases
domain/auth
Package auth will contains all the logic related to the authentication of the user.
Package auth will contains all the logic related to the authentication of the user.
domain/base_user
Package baseuser is a domain package wich contains the common users features and behavior.
Package baseuser is a domain package wich contains the common users features and behavior.
domain/producer
Package producer is a domain package wich contains the producer features and behavior.
Package producer is a domain package wich contains the producer features and behavior.
domain/student
Package student is a domain package wich contains the student features and behavior.
Package student is a domain package wich contains the student features and behavior.
infra/http
Package http has the meta data for the http response.
Package http has the meta data for the http response.
pkg/drivers/database
Package database contains the database drivers.
Package database contains the database drivers.
pkg/filters
Package filters will be used to filter the results of a query.
Package filters will be used to filter the results of a query.
pkg/paginator
Package paginator is a helper package for paginating results.
Package paginator is a helper package for paginating results.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL