Skip to content

PhilipeeX/kobana_project

Repository files navigation

Kobana project

Ruby on Rails CI GitHub Tag Static Badge Static Badge GitHub repo size GitHub issues GitHub closed issues GitHub closed pull requests

Screenshots ou GIFs

Image

O projeto consiste em uma aplicação Ruby on Rails que realiza a integração direta com rotas de API da Kobana em um ambiente de Sandbox, para a gestão de boletos, abrangendo funcionalidades como criação, listagem atualização e cancelamento.

Stack utilizada

Front-end: TailwindCSS

Back-end: Ruby 3.2.2, Rails 7.1.3.2

Database: Não utilizado

Rodando localmente

  1. Clone o projeto
  git clone https://github.com/PhilipeeX/kobana_project
  1. Entre no diretório do projeto
  cd kobana_project
  1. Instale as dependencias
  bundle install
  npm install flowbite
  1. Configure sua credencial em um arquivo .env na raiz do projeto:
  KOBANA_ACCESS_TOKEN=
  1. Execute a aplicação através do foreman
  ./bin/dev

Acesse a aplicação em localhost porta 3000

Rodando os testes

image

Pipeline de ci/cd no link abaixo

GithubActions

Setups e deploys

Rubyonrails.yml

  • Verifica a qualidade do código usando linters como rubocop.

Atribuições

Tip

  • Não é necessário ter sistema de login/autenticação.
  • O form de criação poderá ter somente os campos obrigatórios da API
  • A integração entre o projeto e a API pode ser feita tanto usando a gem oficial publicada, quanto códigos novos feitos por você.
    > Pull Request

Tip

  • Deverá ter algum CSS/JavaScript deixando as telas bonitinhas.
    > Pull Request

Tip

Essas seriam as próximas tarefas:

  • Responder ao webhook da rota de atualização de boleto com status referente.
  • Implementar as requisições da API via gem boleto_simples.
  • Configurar cache para não atingir limite das requisições.
  • Implementar funcionalidade que permite exibir o boleto para o usuário.
  • Implementar os teste no pipeline de CI/CD.
  • Executar a aplicação em um contêiner Docker com docker-compose.
  • Board das tarefas

Observações e destaques

  • Minha principal dificuldade tem sido ajustar a resposta ao webhook de atualização de boleto. Num primeiro momento, consegui receber o webhook com o "ping", mas, por alguma razão, não estou mais recebendo. Idealmente, se houvesse mais tempo, me dedicaria mais pra melhorar meu entendimento na documentação da API.
  • Acredito que seja importante informar que tentei utilizar a gem boleto_simples, porém enfrentei alguns erros e na documentação da API versão 1 a requisição exemplo é: BoletoSimples::Extra.userinfo ao tentar realizar a requisição recebo uninitialized constant BoletoSimples::Extra então pra não perder mt tempo decidi não seguir por esse caminho, com certeza com mais tempo iria tentar implementar a gem e também configurar o cache para não atingir o limite de requisições.

Github Workflow

O fluxo de trabalho e como as tarefas foram desenvolvidas pode ser acessado em:
Board das tarefas

Apêndice

Author: Philipe Rodrigues ([email protected])

Voltar ao topo