Não vou me oferecer para a consultoria, mas acabei abrindo o projeto por curiosidade e consegui capturar algumas percepções gerais em uma análise rápida:
- A aplicação pode não ser em Rails diretamente, mas usa bastante os recursos como a ActiveRecord e ActionMailer replicando alguns comportamentos do Rails em códigos como o que se encontra no arquivo environment.rb (e os arquivos dali requeridos, como os initializers, etc)
- Essa gem Grape é central para a organização da API, não dá para não conhecer ela bem
- Os testes que existem na pasta "spec" podem te ajudar a ter uma visão mais específica dos comportamentos esperados (por exemplo, na pasta spec/api tem descrições de cada endpoint); não me parece haver algo equivalente a um teste de integração do Rails que teste uma sequência que passe por N endpoints e simule um fluxo de uso, mas isoladamente dá para ter alguma noção da interface de cada endpoint
Eu vi que tu colocou uma issue lá no projeto questionando esse mesmo ponto sobre uma visão geral, mas lá tu deu um exemplo sobre os relatórios e entre as coisas lá comentadas tu falou sobre rotas.. essa abordagem do Grape é um pouco diferente do Rails, onde tu tens as rotas todas agrupadas num arquivo só, e também não sei se existe algo parecido com o rake routes do Rails, mas na documentação do Grape eles comentam que tu tem acesso mais "programático" as informações sobre a API:
>
https://github.com/ruby-grape/grape#describing-and-inspecting-an-apimas nessa entrada aqui do StackOverflow eles comentam sobre haver uma gem para prover rake tasks para o grape:
>
https://stackoverflow.com/questions/44656878/how-to-get-routes-by-grape-apiEnfim, estou com tempo limitado, mas essa foi a análise preliminar, sugiro que quem for se debruçar nesse projeto comece se familiarizando tanto com o Grape quanto com a estrutura da API, se tiver algum recurso pra inspecionar melhor essa estrutura de recursos/rotas parece ser um ponto de partida para melhor entendimento.
Sobre o cubes, eu sugiro que a pessoa que for pegar esse projeto se debruce sobre esse ponto com atenção, parece que ele é usado para uma parte mais específica da aplicação, mas não fui afundo, mas seja como for o uso dele, ele é usado para interface com base de dados multi-dimensional, então se você não sabe bem como isso funciona, vale dar uma estudada antes de começar nessa parte.
Obrigado por compartilhar suas dúvidas, mesmo em estágio mais inicial, serve para pessoas curiosas se debruçarem sobre o projeto.
Uma questão que me saltou aos olhos ao ver esse projeto é: vale mesmo a pena, não adotar o Rails e acabar fazendo tantos esforços para usar partes do mesmo e organizar tudo por sí próprio? Eu compreendo a coisa pelo lado de testar e aprender sobre uma abordagem diferente e também compreendo quando alguém não usa o Rails mesmo, refaz ORM ou o que achar necessário para ter um mínimo de "sobrecarga" (de conceitos e de memória mesmo) acima da sua aplicação, mas num cenário desses onde acaba adotando metade do Rails, me parece tão estranho essa decisão.