Giter VIP home page Giter VIP logo

guibranco / bancosbrasileiros-mergetool Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 1.0 243 KB

๐Ÿ‡ง๐Ÿ‡ท ๐Ÿฆ ๐Ÿ“‹ Brazilian banks: MergeTool - The C# .NET tool used to merge and keep data from the Bancos Brasileiros repository updated

Home Page: https://guibranco.github.io/BancosBrasileiros-MergeTool/

License: MIT License

C# 99.53% Shell 0.47%
bancos bancos-brasileiros bancosbrasileiros bank dotnet hacktoberfest list-of-banks merge merge-tool tool

bancosbrasileiros-mergetool's Introduction

๐Ÿ‘‹ Hi there! I'm Guilherme

wakatime Guilherme Branco Badge Linkedin Badge Blog Badge

Instagram Badge Stack Overflow CodersRank Badge ProfileViews

๐Ÿ’ My name is Guilherme Branco Stracini, I'm from Sรฃo Paulo, Brazil Brazil flag, living in Dublin, Ireland Ireland flag.

Important

๐Ÿ—ฃ๏ธ The correct pronunciation of my name is [ษกiหˆสŽษ›ษพmi], that's a Portuguese name.


๐Ÿ”ญ Now working in OUTsurance Ireland Ireland flag an online insurance company from OUTsurance South Africa South Africa flag and Youi Australia Australia flag. Based in Dublin, Ireland Ireland flag as a senior software engineer, working with C# (.NET versions 6, 7, and 8), Docker, Azure DevOps, Azure CosmosDB, Terraform, Azure Service Bus, RabbitMQ, Microsoft SQL Server and other tools, building the billing and financial services.

๐Ÿ”ญ Two years working in Talabat UAE flag (part of Delivery Hero Germany flag), which is a Q-commerce delivery company in GCC and MENA. Based in Dubai, UAE UAE flag, as a backend engineer, working with C# (.NET versions 5, 6, and 7), Docker, AWS (SQS, SNS, Lambda, S3, SSM, EC2), Microsoft SQL Server, PostgreSQL, Terraform, ArgoCD, CircleCI and other tools on QCommerce tribe (formerly Grocery tribe) in Grocery Fulfillment and later on Shopping Experience (SHOPX) squad (once Finding and Shopping Team - FAST).

๐Ÿ”ญ Over one year and a half, working in Banco BS2 Brazil flag, as a backend engineer, using C# (.NET Core versions 2.2, 3.0, and 3.1), Docker, RabbitMQ, Azure DevOps, and Microsoft SQL Server to develop the SPI/PIX solution (Brazilian Instant Payments system). I've also worked on Open Banking and API Banking (BaaS - Banking as a Service) projects.

๐Ÿ”ญ In the past, I worked with e-commerce for about eight years. Significant time using VTEX PaaS (Platform as a Service).

๐Ÿข Companies: OUTsurance Ireland flag | Talabat UAE flag | Syndigo USA flag | FCamara Brazil flag | The Bridge Social Chile flag | Grace Kennedy Group Jamaica flag | Farfetch Portugal flag | Multivision Portugal flag | Banco BS2 Brazil flag | K2 Partnering Solutions Brazil flag | C&A Brazil flag | Inovaรงรฃo Media Brasil Brazil flag.

๐Ÿ—๏ธ Industries: Financial ๐Ÿ’ต | Insurance ๐Ÿ’ฐ | Delivery ๐Ÿ›ต | Logistics ๐Ÿšš | Integrations โš™๏ธ | QCommerce ๐Ÿ›’ | e-Commerce ๐Ÿงบ.


๐Ÿ—ฃ๏ธ Latest blog posts


๐ŸŽก Hobbies

๐ŸŒฑ Using Go, Rust, and Python for personal projects or just for a hobby. Meantime, playing with Flutter, React, and Kafka.

๐Ÿ‘ฏ Looking to collaborate on open-source projects with payment gateways, courier platforms, and e-commerce/q-commerce platforms.

๐Ÿ’ฌ Ask me about C#, JS/TS (frontend and backend), NodeJS, PHP, DDD, SOLID, software architecture, system design, and design patterns.

โšก Fun fact: LEGO lover.

Lego Creator collection
๐Ÿ’ป Organizations
AccountDescription
GuiBranco:octocat: Main account with stable projects.
GuilhermeStracini๐Ÿงช POCs, Hello Worlds and learning stuff.
ApiBRโš™๏ธ API BR project (free APIs with Brazilian data).
DotNetDevBRBrazil flag Job opportunities for .NET developers in Brazil.
NodeJSDevBRBrazil flag Job opportunities for Node.JS developers in Brazil.
PyDevBRBrazil flag Job opportunities for Python developers in Brazil.
RubyDevBRBrazil flag Job opportunities for Ruby developers in Brazil.
RustDevBRBrazil flag Job opportunities for Rust developers in Brazil.
backend-aoAngola flag Job opportunities for backend developers in Angola.
frontend-aoAngola flag Job opportunities for frontend developers in Angola.
backend-ptPortugal flag Job opportunities for backend developers in Portugal.
frontend-ptPortugal flag Job opportunities for frontend developers in Portugal.

๐Ÿงฐ Things I code with
SkillTechnologies
BackendC Sharp .NET PHP Rust NodeJS Deno Python Go
JS/TS ecosystemJavascript Typescript React Angular NextJS VueJS
FrontendHTML CSS Bootstrap Bulma Font Awesome
SQLMicrosoft SQL Server MySQL MariaDB PostgreSQL Oracle SQLite
noSQLRedis Elastic Search MongoDB Apache Cassandra Azure CosmosDB Apache SOLR
Queue / MessagingRabbitMQ Apache Kafka AWS SQS Azure Service Bus
Package ManagerNuGet NPM YARN Cargo PyPI Packagist Composer
Version Control System (VCS)GIT SubVersion
Code hostingGitHub GitLab BitBucket Azure DevOps
Infrastructure as Code (IaC)Terraform OpenTofu Pulumi Ansible
ContainersDocker Swarm Kubernetes AWS EKS Portainer Azure AKS
(Web) ServersApache NGINX AWS EC2 AWS Lambda Azure Container Apps
Observability (O11Y)Grafana Kibana New Relic Graylog Datadog AWS CloudWatch Application Insights
Continuous Integration (CI)GitHub Actions AppVeyor CircleCI Azure Pipelines TeamCity Jenkins
Continuous Deployment (CD)ArgoCD Octopus Deploy Istio DAPR Vault
CloudAWS Azure Heroku Vercel GoDaddy Hetzner Digital Ocean OVH Oracle Cloud Infrastructure
AgileJira Azure DevOps Trello Confluence RunRun.it
TestingSwagger Postman Insomnia Playwright Selenium Puppeteer Stryker Apache JMeter K6
Code QualityReSharper SonarCloud SonarLint Snyk Codacy Codecov Code Climate Code Factor DependaBot

๐ŸŽ‚ Experience
Experience (in years)
13+ C# .NET13+ .NET Framework8+ .NET Core9+ Node.JS (JS/TS)17+ PHP
16+ MS SQL Server17+ MySQL/MariaDB8+ PostgreSQL5+ MongoDB3+ CosmosDB
8+ Elastic Search9+ Redis7+ RabbitMQ3+ Apache Kafka9+ AWS
3+ Azure5+ Oracle 11g17+ JS (Frontend)17+ jQuery8+ ReactJS
3+ Terraform4+ Rust3+ Python2+ Go2+ NextJS

:octocat: Github Stats

(since January 23, 2013)

GuiBranco's GitHub stats GuiBranco's GitHub stats

GuiBranco's GitHub streak GuiBranco's GitHub stats


๐Ÿ• Wakatime Stats

(since April 10, 2015)

GuiStracini's wakatime stats

bancosbrasileiros-mergetool's People

Contributors

deepsource-autofix[bot] avatar dependabot[bot] avatar gitauto-ai[bot] avatar guibranco avatar penify-dev[bot] avatar stack-file[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

bancosbrasileiros-mergetool's Issues

[FEATURE] Grab IF.data

Is your feature request related to a problem? Please describe.
Grab information (TCB, SR, TC, City, State, Agencies, Service Stations) from IF.Data

Describe the solution you'd like
Extract data from IF.Data

Swagger
Docs

Add data from SFA - Open Finance

Documenation of the file format.


Contributing

Here is a step-by-step on how to add a new source of data to the merge tool:

  • Check out MergeTool.
  • Open VS, VS Code, Rider, or your favorite IDE / Code Editor for .NET projects.
  • Load the project (currently, it is in C# .NET 8.0).
  • Add the required URLs to the Constants.cs file.
  • Add a new enum item in the Source.cs file. Please use the source system acronyms whenever possible.
  • Add a new method in the Reader.cs called Load[NewSystemAcronym]. This should do all the heavy job of grabbing the information from the remote source.
  • Follow the other methods patterns to extract the PDF information from the file if the new source provides a PDF file.
  • Implements the data extraction the way you prefer if it is not a PDF file.
  • Add the RegExp to the Patterns.cs file if you need to use RegExp to extract data.
  • Add the new field(s) to the Bank.cs file.
  • In the Seeder.cs file, implement the method Merge[NewSystemAcronym] to merge the new data with the existing ones. I prefer to filter the data by ISPB and then Document to check for existing data. Rely on the existing list, DO NOT ADD new bank to the list if it is not present with COMPE, ISPB, Document, and Name at least. These are mandatory fields, if you have all this information, and you did not find the bank on the existing list, feel free to add it to the list. (Let me know this in the PR comment).
  • Call the new methods (Load[NewSystemAcronym]r and Merge[NewSystemAcronym]) in the AcquireData method inside the Program.cs file.
  • On the Writer.cs file, edit the following methods, mapping the new field(s):
    • SaveCsv
    • SaveMarkdown
    • SaveSql
  • Test it ๐Ÿงช
  • Commit and submit a PR ๐ŸŽ‰

Testing

  • You can run the application locally without submitting any changes to this repository.
  • Run how many times you need, it will only generate some files in the output directory inside result directory.

Split products based in `,` (comma) and also in `e` (`and` in Portuguese) and not only in `,` (comma)

Describe the bug
Split products based in , (comma) and also in e (and in Portuguese) and not only in , (comma).
Currently, in the CTC parser it only splits the values based on a comma (,), but the last item is always separated by a e (the equivalent of and in PT_BR, the language of the document).

Expected behaviour
Troca de Modalidade e Capital de Giro

These 2 items should be split, instead of being only one.

Screenshots
image

The fix should be addressed to Reader.ParseLineCtc to not only split in , pattern, but also e pattern (the e should be prefixed and suffixed by a space, and should only occur once, as the last split pattern).

[FEATURE] Generate unit tests for this project

Description

Create a new project under /Tests/ directory named BancosBrasileiros.MergeTool.Tests.csproj with the following nuget packages:

  • xUnit
  • coverlet.msbuild
  • nsubstitute
  • fluentassertions

Tech notes

No response

Screenshots or Diagrams

No response

Additional information

No response

[FEATURE] Grab taxes and levies from BCB for all banks

Is your feature request related to a problem? Please describe.
Grab taxes and levies from the BCB page for all banks

Describe the solution you'd like
BCB publishes the taxes/levies for each bank based on ISPB at this page:

The 00000000 is the ISPB
The a after the ISPB in the corporate URL is how it identifies a corporate instead of a personal.

Call this page for each bank with ISPB and extract the information to a JSON file separated of banks files.

Add data from SFA - Open Finance

Documenation of the file format.


Contributing

Here is a step-by-step on how to add a new source of data to the merge tool:

  • Check out MergeTool.
  • Open VS, VS Code, Rider, or your favorite IDE / Code Editor for .NET projects.
  • Load the project (currently, it is in C# .NET 8.0).
  • Add the required URLs to the Constants.cs file.
  • Add a new enum item in the Source.cs file. Please use the source system acronyms whenever possible.
  • Add a new method in the Reader.cs called Load[NewSystemAcronym]. This should do all the heavy job of grabbing the information from the remote source.
  • Follow the other methods patterns to extract the PDF information from the file if the new source provides a PDF file.
  • Implements the data extraction the way you prefer if it is not a PDF file.
  • Add the RegExp to the Patterns.cs file if you need to use RegExp to extract data.
  • Add the new field(s) to the Bank.cs file.
  • In the Seeder.cs file, implement the method Merge[NewSystemAcronym] to merge the new data with the existing ones. I prefer to filter the data by ISPB and then Document to check for existing data. Rely on the existing list, DO NOT ADD new bank to the list if it is not present with COMPE, ISPB, Document, and Name at least. These are mandatory fields, if you have all this information, and you did not find the bank on the existing list, feel free to add it to the list. (Let me know this in the PR comment).
  • Call the new methods (Load[NewSystemAcronym]r and Merge[NewSystemAcronym]) in the AcquireData method inside the Program.cs file.
  • On the Writer.cs file, edit the following methods, mapping the new field(s):
    • SaveCsv
    • SaveMarkdown
    • SaveSql
  • Test it ๐Ÿงช
  • Commit and submit a PR ๐ŸŽ‰

Testing

  • You can run the application locally without submitting any changes to this repository.
  • Run how many times you need, it will only generate some files in the output directory inside result directory.

[FEATURE] Add Open Finance (Sistema Financeiro Aberto) participants

Add data from SFA - Open Finance

Documenation of the file format.


Contributing

Here is a step-by-step on how to add a new source of data to the merge tool:

  • Check out MergeTool.
  • Open VS, VS Code, Rider, or your favorite IDE / Code Editor for .NET projects.
  • Load the project (currently, it is in C# .NET 8.0).
  • Add the required URLs to the Constants.cs file.
  • Add a new enum item in the Source.cs file. Please use the source system acronyms whenever possible.
  • Add a new method in the Reader.cs called Load[NewSystemAcronym]. This should do all the heavy job of grabbing the information from the remote source.
  • Follow the other methods patterns to extract the PDF information from the file if the new source provides a PDF file.
  • Implements the data extraction the way you prefer if it is not a PDF file.
  • Add the RegExp to the Patterns.cs file if you need to use RegExp to extract data.
  • Add the new field(s) to the Bank.cs file.
  • In the Seeder.cs file, implement the method Merge[NewSystemAcronym] to merge the new data with the existing ones. I prefer to filter the data by ISPB and then Document to check for existing data. Rely on the existing list, DO NOT ADD new bank to the list if it is not present with COMPE, ISPB, Document, and Name at least. These are mandatory fields, if you have all this information, and you did not find the bank on the existing list, feel free to add it to the list. (Let me know this in the PR comment).
  • Call the new methods (Load[NewSystemAcronym]r and Merge[NewSystemAcronym]) in the AcquireData method inside the Program.cs file.
  • On the Writer.cs file, edit the following methods, mapping the new field(s):
    • SaveCsv
    • SaveMarkdown
    • SaveSql
  • Test it ๐Ÿงช
  • Commit and submit a PR ๐ŸŽ‰

Testing

  • You can run the application locally without submitting any changes to this repository.
  • Run how many times you need, it will only generate some files in the output directory inside result directory.

Add change log to release notes

Is your feature request related to a problem? Please describe.
When creating a new release of the package in the main repository, add to release notes the respective changelog.

Describe the solution you'd like
Create a release-notes.txt in the end of execution to be used in the release notes.

Add the system responsible for the change in changelog

Is your feature request related to a problem? Please describe.
Add the system name responsible for a given change in the changelog list.

Describe the solution you'd like
Currently, the changelog contains the bank COMPE, name and document and a list of changes per field/property.
Add in the list the system that triggered the change on that field/property.

Fix array type in changelog

Describe the bug
When the change is in a property of type Array, it shows the type in the changelog instead of the information.

image

ChangeLog.md

Expected behaviour
It should join the content of the array, using a comma (,) when detecting the property is an array of strings.

Upgrade to .NET 8.0

Is your feature request related to a problem? Please describe.
Update the code to .NET 8.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.