Skip to content

The project aims to simulate a digital wallet, where the important thing is the transaction and not the CRUD, using a simple architecture, easy to implement and change packages if necessary.

Notifications You must be signed in to change notification settings

piovani/digital_wallet_2

Repository files navigation

Digital Wallet 2

Technologies Used

  • Echo
  • Gorm
  • Mysql
  • Docker
    • Redis
    • Golang
    • Mysql
  • Testify
  • Swag
  • Echo Swagger

Requirements

  • Docker 20.10.17 or superior
  • Docker Compose 1.29.2 or superior

How Star The Project

  1. Start containers Docker
docker-compose up -d
  1. Run migrate
make migrate
  1. Run seed
make seed

How to Test

Unit testing

To run unit tests, execute this command:

make cover

With Swagger

  1. Start API
make api
  1. Open your Brozer at: http://localhost:8080/swagger/index.html#/coin/get_coin_price

With Postman or Insomnia

  1. Install Postman or Insomnia

  2. import File Collections

./docs/Digital Wallet 2.postman_collection.jsondocs/Digital Wallet 2.postman_collection.json
  1. Use the endpoints

Checklist TODO

  • Conexao com banco de dados MySQL
  • Rota de Valores de moedas atual
  • Remover container de consulta de valores no redis
  • Criar Wallet do usuário
  • Ao depositar alterar a wallet tbm
  • Ao debitar consultar a wallet se é possivel
  • Validação de dados -> Rota de Deposito
  • Validação de dados -> Rota de Saque
  • Rota Historico
  • Rota Balanço - Apresentar valor em carteira, valor em moeda atual, valor em dolares e valore em euros e a somatoraria dessas duas moedas principais
  • Testes unitários
  • Swagger com as rotas mapeadas
  • Seed com alguns dados iniciais
  • Centralizar os Log's
  • Colocar Prometheus
  • Colocar Grapfana
  • Arrumar os containers para API rodar corretamente
  • Colocar Cobra para gerenciar o CMD
  • Melhorar o Migrate
  • Melhorar o Seed
  • Melhorar a Coleta de values dos coins
  • Melhorar a leitura dos values dos coins
  • Colocar o Sleep de Collect como variavel de Ambiente
  • CI com job para SonarCloud
  • Teste de Integração
  • Testes no Domain, já que o mesmo possui regras de criação
  • Colocar o Valor na Wallet em Dolares e Euros na hora do Balanço
  • Criar Server gRPC
  • Add Kafka
    • Na operação de Deposit, publicar uma mensagem no topic do kafka
    • Na operação de Withdraw, publicar uma mensagem no topic do kafka
    • Novo container para receber e printar as mensagens recebidas pelo kafka
  • No Database criar: Transaction, Commit e Rollback
  • Criar rotas que usem graphQL

About

The project aims to simulate a digital wallet, where the important thing is the transaction and not the CRUD, using a simple architecture, easy to implement and change packages if necessary.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages