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

https://github.com/ioott/backend-python_mysql

Sistema de análise de transações com cartão, que faz a leitura de um arquivo CSV contendo dados de transações, processa e armazena-os em um banco de dados MySQL, também permite gerar relatórios com base nos dados armazenados e verificar se um usuário específico é suspeito ou não.
https://github.com/ioott/backend-python_mysql

mysql-database python

Last synced: about 2 months ago
JSON representation

Sistema de análise de transações com cartão, que faz a leitura de um arquivo CSV contendo dados de transações, processa e armazena-os em um banco de dados MySQL, também permite gerar relatórios com base nos dados armazenados e verificar se um usuário específico é suspeito ou não.

Awesome Lists containing this project

README

          

Aplicação para Análise de Transações com Cartão







Sobre
Tecnologias
Instalação
Utilização
Próximos Passos

## Sobre
Este é um sistema de análise de transações com cartão, desenvolvido em Python. A aplicação faz a leitura de um arquivo CSV contendo dados de transações, processa e armazena-os em um banco de dados MySQL. Além disso, a aplicação também permite gerar relatórios com base nos dados armazenados e verificar se um usuário específico é suspeito ou não de realizar transações fraudulentas.

## Tecnologias
O sistema foi desenvolvido utilizando as seguintes tecnologias:

* Python
* MySQL

## Instalação

Para utilizar o sistema, é necessário instalar o Python e o MySQL em sua máquina.

### Python
Para instalar o Python:

* Acesse o site oficial: https://www.python.org/downloads/
* Escolha a versão mais recente do Python 3 e faça o download de acordo com seu sistema operacional.
* Execute o instalador e siga as instruções para concluir a instalação.

### MySQL
Para instalar o MySQL:

* Acesse o site oficial: https://dev.mysql.com/downloads/
* Escolha a versão mais recente do MySQL 8 e faça o download de acordo com seu sistema operacional.
* Execute o instalador e siga as instruções para concluir a instalação.

## Utilização

Para utilizar o sistema

1 - Clone o repositório em sua máquina: git@github.com:ioott/cw.git


2 - Acesse o diretório do sistema: cd cw.git


3 - Crie um ambiente virtual e ative: python3 -m venv .venv && source .venv/bin/activate


4 - Instale as dependências do sistema: python3 -m pip install -r dev-requirements.txt


5 - Crie um arquivo .env na raiz e coloque as variáveis de configuração do banco de dados:

```
DB_HOST=
DB_USER=
DB_PASSWORD=
DB_NAME=
```
6 - Crie o banco de dados no MySQL. Para isso, execute o comando mysql -u username -p < create_database.sql no terminal, substituindo username pelo seu nome de usuário do MySQL e inserindo a senha quando solicitado


7 - Popule o banco: python3 utils/CSVLoader.py


8 - Execute a aplicação com python3 main.py


Funcionalidades

* Consulta de transações por ID de usuário:

O sistema irá verificar se o user_id informado consta em algum dos relatórios, e informará se é suspeito ou não.


* Relatórios:
O sistema gera relatórios com informações relevantes sobre as transações que tiveram chargeback.

Os relatórios disponíveis são:


- Valores altos
- Ocorridas entre 00:00h e 05:59h
- Mesmo usuário em um curto espaço de tempo
- Mesmo cartão em dispositivos diferentes
- Mesmo usuário com muitas transações

Ao escolher uma opção, o relatório correspondente será impresso em tela e exportado em formato CSV para a pasta exported_reports.

## Próximos passos

* Adicionar tratamento de erros
* Refatorar o código para adaptá-lo ao padrão Strategy, melhorando a legibilidade e organização
* Implementar testes automatizados para garantir a integridade da aplicação
* Integrar com outras fontes de dados além do CSV
* Utilizar a biblioteca Pandas para melhorar a apresentação dos dados

#


[Gravação de tela de 17-02-2023 16:19:38.webm](https://user-images.githubusercontent.com/98191041/219767707-288e7bf4-91d5-4789-a62e-1b715149679a.webm)

#

Este sistema foi desenvolvido por Vania Ioott.

Encontrou algum erro? Tem alguma sugestão? Faça contato!

#