Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ciochetta/woovi-challange

repo for solving the woovi challange
https://github.com/ciochetta/woovi-challange

Last synced: 3 months ago
JSON representation

repo for solving the woovi challange

Awesome Lists containing this project

README

        

# Woovi Challange

Repositório para resolver o desafio da Woovi.

## Sobre esse repositório

O desafio é criar um sistema de crédito em cima do pix.

Eu tentei assumir o ponto de vista de um arquiteto de software/gerente de produto, dada a natureza do desafio, eu acho difícil desassociar a parte de definição de produto com a solução tecnica.

Esse design de sistema foi feito supondo que já existe um sistema de pagamentos por pix e que os dados dessas movimentações são guardados.

A ideia é que este seja a descrição de um MVP/Arquitetura mínima viável para esse sistema.

Eu tentei balancear um design/documentação com as seguintes características:

Funcional: Seria possível entregar essa documentação para uma equipe de desenvolvimento e ela deve conseguir criar o sistema. Existem, entretanto algumas partes do sistema que eu deliberadamente escolhi não especificar, em cada um dos casos eu espero ter deixado clara a razão pela qual eu fiz isso.

Descritivo: Minimizando as dúvidas a respeito de como as decisões devem ser tomadas.

Minimalista: Evitando big upfront design.

## Índice

Guidelines descreve o objetivo e os princípios usados para projetar esse sistema.

System descreve o lado mais tecnico do sistema, assim como cada uma das atividades previstas.

Personas é uma lista das personas que eu usei para projetar o sistema.

Formula Score Fala a respeito de como eu acho que podemos fazer um sistema de score, sem definir uma formula específica.

Autorização é um documento que eu uso como lembrete de que essa é uma parte do sistema que não foi coberta.

A pasta Atividades contém o detalhamento de algumas atividades específicas que eu considerei que seriam grandes de mais para descrever no documento de sistema, sendo elas:

Atualização de transação.

Consulta de score.

Pagar uma cobrança.

Solicitar crédito.

Verificar identidade.

A pasta Models tem uma lista de modelos relevantes para o domínio. Essa não é uma lista compreensiva de todos os modelos que vão ser usados, mas a base que deve ser usada:

Modelo de cobrança.

Modelo de conta de crédito.

Modelo de pagamento de cobrança.

Modelo de solicitação de crédito.

Modelo de verificação de conta.

Modelo de transação.

(sub)Modelo de movimentação.

A pasta exemplos foi criada para colocar exemplos de heurísticas. No fim das contas, acabou que eu criei somente um exemplo, de como criar as movimentações a partir de uma transação.