Pesquisar
Projeto exclusivo

Aplicação C# para cálculo de amortização habitacional

hoje às 17:05

Descrição do Projeto:

Preciso solucionar um desenvolvimento em C# mas não tenho conhecimento o suficiente. Gostaria de fazer uma chamada de áudio na terça-feira (amanhã, das 19h às 22h) para solucionar o desafio conjuntamente, explicando como criá-lo e gerar os fontes.

Desafio Técnico C# - Worker, API de Cálculo PRICE e Event Hub
1. Objetivo do Desafio
Construir uma solução backend em C# (.NET) composta por um Worker (Background Service) e uma API HTTP responsável por realizar o cálculo de amortização pelo método PRICE. O fluxo deve consumir mensagens de uma fila, calcular a evolução diária do contrato, persistir o resultado no banco (linha a linha por dia) e emitir logs de processamento em um Event Hub.
Este desafio avalia: arquitetura, clareza de código, cálculo financeiro, integração assíncrona, persistência e observabilidade.

2. Visão Geral da Arquitetura
- Acessar a Fila: Origem das mensagens de solicitação (ex.: Azure Service Bus Queue).
- Criar um Worker Service: Consome a fila, orquestra o processamento e integra com API, banco e Event Hub.
- Criar uma API de Cálculo (HTTP): Executa o cálculo PRICE e devolve o resultado estruturado.
- Criar um Banco de Dados: Armazena a evolução diária do contrato (uma linha por dia).
- Acessar o Event Hub: Recebe logs/telemetria do processamento (início, sucesso, erro, métricas).

O Worker Service utiliza o modelo de BackgroundService/IHostedService, padrão recomendado para processamento assíncrono e integração com filas no .NET moderno.

3. Mensagem de Entrada (Fila)
Formato JSON esperado na fila:
{
"valorEmprestimo": 10000,
"taxaJurosMensal": 1.8,
"prazoMeses": 30
}
Regras:
- taxaJurosMensal está em percentual ao mês.
- O prazo em meses deve ser convertido para dias, considerando 30 dias por mês (ex.: 30 meses - 900 dias).

4. Responsabilidades do Worker (Background Service)
1. Ler mensagem da fila.
2. Validar o payload (valores positivos, prazo > 0).
3. Chamar a API de Cálculo via HTTP.
4. Receber o resultado (lista diária do contrato).
5. Persistir no banco (uma linha por dia).
6. Publicar evento no Event Hub com o status do processamento.
7. Finalizar/confirmar a mensagem da fila.

O Worker deve ser resiliente (tratamento de exceções, logs e idempotência quando aplicável).

5. API de Cálculo PRICE
5.1 Endpoint
POST /api/price/calcular
5.2 Entrada
Mesmo JSON recebido da fila.
5.3 Saída (por dia)
A API deve retornar 900 registros (para 30 meses), com os campos:
{
"dia": 30,
"prestacao": 434.31,
"jurosPeriodo": 180.00,
"amortizacao": 254.31,
"saldoAposPagar": 9745.69
}
A prestação é fixa (método PRICE), enquanto juros e amortização variam ao longo do tempo.

5.4 Regras do Cálculo PRICE
- Conversão para cálculo diário:
- Considerar mês de 30 dias
- Capitalização diária equivalente à taxa mensal
- Pagamento ocorre a cada 30 dias.

6. Persistência no Banco de Dados
Tabela sugerida: EvolucaoContrato
Campo - Tipo - Descrição
Id - bigint - PK
Dia - int - Dia do contrato
Prestacao - decimal(18,2) - Valor da prestação
JurosPeriodo - decimal(18,2) - Juros do período
Amortizacao - decimal(18,2) - Amortização
SaldoAposPagar - decimal(18,2) - Saldo devedor
DataProcessamento - datetime - Timestamp

Uma linha por dia deve ser gravada.

7. Envio dos logs para o Event Hub
Após o processamento:
- Enviar evento de log contendo:
- A ação realizada;
- Status (SUCESSO / ERRO);
- A mensagem processada;
- Timestamp;

O Azure Event Hub é indicado para telemetria e eventos de alto volume, desacoplando produtores e consumidores.

8. Conexões:
"ServiceBus": {
"ConnectionString": "Endpoint=sb://sb-credito-************.net/;SharedAccessKeyName=Listen;SharedAccessKey=JZlxkpod03tykjk5Loz4yk/70Nl43qMum+ASbF7L0AQ=;EntityPath=queue-contrato-price",
"QueueName": "queue-contrato-price"
},
"EventHub": {
"ConnectionString": "Endpoint=sb://eh-credito-des-************.net/;SharedAccessKeyName=Send;SharedAccessKey=ZvdRVxb815bnKweu5UwwUkFHPQanx2Yhq+AEhNLXisc=;EntityPath=eh-credito-log",
"EventHubName": "eh-credito-log"
}

9. Avaliação Técnica
A aplicação desenvolvida deverá conter instruções detalhadas para execução em ambiente local, contemplando, no mínimo:
1. Pré-requisitos de software e versões necessárias;
2. Passos para configuração do ambiente;
3. Procedimento de build e execução da aplicação;
4. Orientações para testes e validação do funcionamento.

As instruções deverão ser claras, objetivas e suficientes para permitir a execução da aplicação por terceiros, sem necessidade de conhecimento prévio do código.

10. Conclusão
Este desafio simula um cenário real de processamento assíncrono de contratos, comum em plataformas de crédito, avaliando não apenas código, mas arquitetura, integração e clareza técnica.

Habilidades desejadas:

Programação C#

Atividades do cliente nesse projeto:

Última visualização: hoje às 17:08

Tem dúvidas? Faça uma pergunta.

ou

Enviar proposta

Informações adicionais

Categoria: Web, Mobile & Software
Subcategoria: Outra - Web, Mobile & Software
Orçamento: Aberto
Nível de experiência: Intermediário
Visibilidade: Público
Propostas: 9
Interessados: 11
Tempo restante:
Valor Mínimo: R$ 50,00
Propostas (9)
  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

Nenhuma proposta foi encontrada.

Carregando...
Projetos semelhantes no 99Freelas

Desenvolver site de conteúdo adulto - (+18) - Quero um desenvolvedor para criar um site de conteúdo adulto, semelhante ao Privacy e ao OnlyFans. O projeto envolve a criação de uma plataforma completa, incluindo perfis de ...

Suporte para migração e backup de arquivos - celular e Drive - Troquei de celular e preciso de suporte para: - Transferir dados, documentos, fotos e arquivos entre celular e computador, nos dois sentidos. - Baixar e recuperar arquivos que estavam em conversas...

Sala de sinais no Telegram para Bac Bo (mesas Evolution) - Preciso de uma sala de sinais no Telegram para o jogo Bac Bo que contenha as seguintes mesas: - Bac Bo, Evolution - Bac Bo Brasileiro, Evolution - Emperor Bac Bo, Evolution Preciso conseguir deix...

Coleta de e-mails públicos em sites acadêmicos - Estamos buscando um freelancer para realizar a coleta de e-mails públicos em sites de universidades (secretarias, professores, coordenadores etc.), além de anais de eventos e revistas...

Catalogador Bac Bo com padrões - Objetivo Desenvolver um catalogador em tempo real para Bac Bo, focado em identificar padrões, sequências e gerar insights para tomada de decisão. Funcionalidades principais 1...

Carregando...

Carregando...

Pesquisar

FREELANCERS
PROJETOS
Ocorreu um erro inesperado. Caso o erro persista, entre em contato conosco através do e-mail suporte@99freelas.com.br.