{"id":24866087,"url":"https://github.com/luisrjbr/analise-credito-cpp","last_synced_at":"2025-08-21T07:42:13.953Z","repository":{"id":275219373,"uuid":"867105899","full_name":"luisrjbr/analise-credito-cpp","owner":"luisrjbr","description":"Sistema criado para reforçar meus aprendizados na turma C++ Master Class.","archived":false,"fork":false,"pushed_at":"2025-04-09T23:34:23.000Z","size":4420,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T00:53:36.894Z","etag":null,"topics":["cplusplus","cpp","cpp11","cpp17","cpp20","cpp23"],"latest_commit_sha":null,"homepage":"https://cppmasterclass.com.br/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luisrjbr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-03T13:12:59.000Z","updated_at":"2025-04-09T23:34:27.000Z","dependencies_parsed_at":"2025-02-26T03:21:41.185Z","dependency_job_id":"0c8ea4d6-55ae-4d69-b5a5-d3d161ac212f","html_url":"https://github.com/luisrjbr/analise-credito-cpp","commit_stats":null,"previous_names":["luisrjbr/analise-credito-cpp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luisrjbr%2Fanalise-credito-cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luisrjbr%2Fanalise-credito-cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luisrjbr%2Fanalise-credito-cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luisrjbr%2Fanalise-credito-cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luisrjbr","download_url":"https://codeload.github.com/luisrjbr/analise-credito-cpp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650439,"owners_count":21139672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cplusplus","cpp","cpp11","cpp17","cpp20","cpp23"],"created_at":"2025-02-01T00:47:10.187Z","updated_at":"2025-04-13T00:53:52.431Z","avatar_url":"https://github.com/luisrjbr.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Análise de Crédito\n\n# Contexto:\n\nSerá criado um sistema com a intenção de treinar os conceitos aprendidos no curso C++ MasterClass. O problema que este sistema resolve é conceder, através de uma instituição financeira fictícia, crédito a uma determinada pessoa. Para isso, alguns domínios devem ser utilizados como o de análise de crédito e análise de fraude. Boa parte dos requisitos de negócio aqui utilizados foram criados a partir de interações com o ChatGPT, sendo ele o analista de negócio para esse exemplo. Para criação da análise de crédito deve ser feita validações da pessoa e análise de fraude.\n\nO que é a concessão de crédito?\n\nA concessão de crédito é o procedimento no qual uma instituição libera um valor para uma pessoa física ou jurídica, para isso, são avaliados vários critérios pelas instituições detentoras do crédito antes de liberá-las. Esse case trata da uma concessão de crédito fictícia para uma pessoa física.\n\n\n# Requisitos:\n\nPassos para construção de um módulo de Análise de Crédito:\n\nPasso 1: Coleta e Validação de Dados da Pessoa. Os Dados fornecidos serão CPF, Renda e Idade\n\n- O CPF deve ser válidado seguindo as regras de validação do CPF;\n- A Idade deve ser maior que 18 e menor que 60;\n- A Renda deve ser maior que 2000;\n        \nPasso 2: Consultar Histórico Internos do Usuário na Instituição\n    \n- Identificar pelo cpf da pessoa se esta tem algum produto contratado anteriormente na instituição;\n- A instituição só deseja conceder crédito a usuários que tenha algum produto contratado anteriormente, se tiver um produto, pode seguir no fluxo da contratação do crédito;\n\nPasso 3: Verificar Padrão de Análise de Fraudes (Padrões e Anomalias)\n\n- Diferentes solicitações usando o mesmo CPF, mas informando renda e idade diferentes em diferentes requisições deve ser entendida como uma fraude;\n- Só é possível seguir no fluxo da contratação do crédito se não tiver apontamento de fraude;\n\nPasso 4: Avaliação de Risco de Crédito Para Geração de Score de Risco de Crédito. \n\n- Calcular um score de risco de crédito que considere as regras nos passos 2 e 3, isso quer dizer que se tem produto bancário e não tem fraude pode prosseguir;\n- O Score é um nível de risco com as seguintes definições: “Baixo”, “Médio” ou “Alto”. E deve seguir a seguinte tabela:\n        \t\t\n\t  \tIdade\t\tRenda\t\tScore de Risco\n        \t\u003e=18 \u003c=30\t\u003e2000 \u003c=10000\t\"Alto\"\n        \t\u003e=18 \u003c=30\t\u003e10000\t\t\"Medio\"\n        \t\u003e30 \u003c=60 \t\u003e2000 \u003c=10000\t\"Medio\"\n        \t\u003e30 \u003c=60\t\u003e10000\t\t\"Baixo\"\t\n\nPasso 5: Após o Cálculo do Score Definir o Limite de Crédito\n\n- Com base no score de risco, definir um limite de crédito com base na seguinte tabela: \n\n  \t\tRisco\tLimite de Crédito\t\n  \t\t\"Alto\"\t3000\n  \t\t\"Medio\"\t6000\n  \t\t\"Baixo\"\t9000\n  \t\n- A partir do limite de crédito informar que o pagamento será feito em 4 parcelas;\n- Informar a maior parcela paga corrigida pelo valor de 1% ao mês sobre o valor recebido;\n \n# Casos de Uso:     \n\nCaso de Uso 1: Verificar Risco de Fraude da Pessoa\n\n    Nome do caso de uso: Verificar Risco de Fraude da Pessoa\n    Objetivo: Validar uso do sistema pela pessoa determinando o risco de fraude antes da análise de crédito.\n    Resumo do caso de uso: A aplicação deve verificar se a pessoa está enquadrada no padrão de análise de Fraude de diferentes solicitações usando o mesmo CPF\n    mas informando renda e idade diferentes em diferentes requisições.\n    Atores: Pessoa e Fraude\n    Precondições: A pessoa já forneceu dados pessoais (CPF, renda e idade) que já foram validados anteriormente.\n    Disparador: A pessoa inicia uma solicitação de crédito.\n    Sequência de ações primária:\n\t\tApós a validação do CPF, renda e idade o domínio de Prevenção a Fraudes faz sua validação utilizando como entrada o cpf da pessoa;\n\t\tO domínio de Prevenção a Fraudes verifica o padrão conhecido de fraude em que diferentes requisições com os mesmos dados deve ser entendida como uma fraude;\n\t\tO domínio de Prevenção a Fraudes retorna se é uma fraude ou não;\n    Sequências de ações alternativas:\n\t\tCaso dados inválidos sejam detectados: A aplicação informa a pessoa que não é possível prosseguir com a análise de crédito.\n    Pós-condições: O sistema retorna se tem risco de fraude e a análise de crédito pode prosseguir ou não.\n    Requisitos não funcionais: A verificação de fraude deve ocorrer em tempo real e o tempo de resposta deve ser inferior a 1 segundo.\n    Glossário:\n\t\tRisco de fraude: Probabilidade do usuário estar associado a atividades fraudulentas.\n\t\n\nCaso de Uso 2: Realizar Análise do Limite de Crédito da Pessoa\n\n    Nome do caso de uso: Realizar Análise do Limite de Crédito da Pessoa\n    Objetivo: Definir um limite de crédito após analisar o score de risco da pessoa. Essa análise determinará o valor do limite de crédito.\n    Resumo do caso de uso: A aplicação utiliza os dados pessoais para determinar o score de risco e com isso calcular um limite de crédito.\n    Atores: Pessoa, Crédito e Fraude\n    Precondições: A pessoa passou pela verificação dos dados pessoais, de fraude, e o score de risco de crédito está disponível.\n    Disparador: O crédito é fornecido após ter o score de risco avaliado.\n    Sequência de ações primária:\n\t\tA aplicação inicia o processo de análise de crédito e com base no score de risco é definido um limite de crédito com base na seguinte tabela: \t\n  \t\t\tRisco\tLimite de Crédito\t\n  \t\t\t\"Alto\"\t3000\n  \t\t\t\"Medio\"\t6000\n  \t\t\t\"Baixo\"\t9000\t\n\t\tDeve ser enviada a proposta do limite a pessoa conforme sua análise.\n    Sequências de ações alternativas:\n        \tNesse ponto as validações já foram realizadas e deve ser fornecido a pessoa seu limite conforme a tabela de limites.\n    Pós-condições: A análise de crédito está completa, e o usuário recebe uma resposta de aprovação com o limite disponível.\n    Requisitos não funcionais: A análise de crédito deve ser em tempo real, com tempo de resposta abaixo de 1 segundo.\n    Glossário:\n        \tScore de crédito: Pontuação que indica a probabilidade de o usuário cumprir com as obrigações financeiras.\n        \tLimite de crédito: Valor de crédito aprovado inicialmente para o usuário.\n\n  #Diagrama de Classes:\n  ![image](https://github.com/user-attachments/assets/23fa84f6-5f91-44d4-9760-c1fcd7b22982)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluisrjbr%2Fanalise-credito-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluisrjbr%2Fanalise-credito-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluisrjbr%2Fanalise-credito-cpp/lists"}