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.
Front-end: TailwindCSS
Back-end: Ruby 3.2.2, Rails 7.1.3.2
Database: Não utilizado
- Clone o projeto
git clone https://github.com/PhilipeeX/kobana_project
- Entre no diretório do projeto
cd kobana_project
- Instale as dependencias
bundle install
npm install flowbite
- Configure sua credencial em um arquivo .env na raiz do projeto:
KOBANA_ACCESS_TOKEN=
- Execute a aplicação através do foreman
./bin/dev
Acesse a aplicação em localhost porta 3000
- Verifica a qualidade do código usando linters como rubocop.
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
- 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
- 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 recebouninitialized 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.
O fluxo de trabalho e como as tarefas foram desenvolvidas pode ser acessado em:
Board das tarefas
Author: Philipe Rodrigues ([email protected])