Coder Social home page Coder Social logo

guibranco / crispywaffle Goto Github PK

View Code? Open in Web Editor NEW
19.0 2.0 17.0 2.06 MB

๐Ÿงฐ ๐Ÿ› ๏ธ Crispy Waffle project - toolkit for .NET projects

Home Page: https://guibranco.github.io/CrispyWaffle/

License: MIT License

C# 99.92% Shell 0.08%
dotnet dotnet-core dotnet-standard dotnet-framework dotnet-core2 toolkit library dependency-injection communication helpers

crispywaffle'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 Pulumi
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 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

crispywaffle's People

Contributors

akhtareimon avatar codefactor-io[bot] avatar deepsource-autofix[bot] avatar dependabot[bot] avatar gitauto-ai[bot] avatar github-actions[bot] avatar guibranco avatar joaovaladares avatar looseling avatar mohammad-haris avatar simrangil avatar stack-file[bot] avatar thiagochfc avatar tiagoschaffer avatar viktoriussuwandi avatar yousef-majidi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

crispywaffle's Issues

[FEATURE] Add `Toml` serializer

Description

Add a Toml serializer

This is an ongoing brainstorming about how to deal with the Toml format and its serialization.
I am working in a PoC to determine which library/implementation should be used here.

Tech notes

The ongoing work can be found here: PoC .NET Toml handling

Once it is done, I will update this ticket with the expected library to be used.

Additional information

  • Add proper labels help wanted, good first issue, and hacktoberfest after finishing tech requirements.
  • This feature requires documentation.
  • This feature requires unit testing.
  • This feature requires a minor version bump

Depfu Error: No dependency files found

Hello,

We've tried to activate or update your repository on Depfu and couldn't find any supported dependency files. If we were to guess, we would say that this is not actually a project Depfu supports and has probably been activated by error.

Monorepos

Please note that Depfu currently only searches for your dependency files in the root folder. We do support monorepos and non-root files, but don't auto-detect them. If that's the case with this repo, please send us a quick email with the folder you want Depfu to work on and we'll set it up right away!

How to deactivate the project

  • Go to the Settings page of either your own account or the organization you've used
  • Go to "Installed Integrations"
  • Click the "Configure" button on the Depfu integration
  • Remove this repo (guibranco/CrispyWaffle) from the list of accessible repos.

Please note that using the "All Repositories" setting doesn't make a lot of sense with Depfu.

If you think that this is a mistake

Please let us know by sending an email to [email protected].


This is an automated issue by Depfu. You're getting it because someone configured Depfu to automatically update dependencies on this project.

[FEATURE] Add Saga capability

Is your feature request related to a problem? Please describe.
It would be nice to have SAGA capabilities in the event handler process.

Describe the solution you'd like
Could you implement the SAGA pattern handling in the EventsConsumer class?

  • An event should trigger the saga (like any other event already present in the events consumer feature).
  • Multiple other messages can continue the SAGA (like the EventHandler can handle multiple types of events, the saga also can do it)
    • This will be different from standard event handler, since it will be a SAGA data class that will be correlated to all messages
    • The SAGA data will be present in all event handler, and needs to be correlated upon being handled by the new event/message
  • The SAGA needs to be persisted (SQL, noSQL, memory)
  • The SAGA needs to be completed
  • The SAGA needs to have a timeout feature

[FEATURE] Add `SEQ` log provider

Is your feature request related to a problem? Please describe.
Add a project CrispyWaffle.Seq that should implement SeqLogProvider and SeqBatchLogAdapter classes that will forward logs to HTTP endpoint (the SEQ server).

Describe the solution you'd like

  • Create a new project (and NuGet package) named: CrispyWaffle.Seq
  • Create a class SeqLogProvider that implements ILogProvider
  • Create a class SeqBatchLogAdapter that implements ICategorizedLogAdapter
  • The class should forward the messages through HTTP using the SEQ Ingestion with HTTP or some of .NET implementation in a batch configurable behaviour (timeout or throughput or both)

Implement EnvironmentHelper

Implement the class EnvironmentHelper with the followin properties:

  • ApplicationName
  • DisplayApplicationName
  • ExecutionPath
  • Host
  • IpAddress
  • IpAddressExternal
  • OperationalSystemVersion
  • ProcessId
  • UserAgent
  • UserName
  • Version
  • VersionDate

Fix test tab on CI

Describe the bug
Fiz test report in AppVeyor

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'AppVeyor'
  2. Click on 'tests' tab, it is empty

Add README to NuGet

Is your feature request related to a problem? Please describe.
Add README to NuGet

Describe the solution you'd like
Add README to NuGet

[BUG] Remove culture specific from codebase

Is your feature request related to a problem? Please describe.
Remove culture-specific code from the codebase.

Describe the solution you'd like

  • Remove the extensions method for Brazilian formats
  • Remove default CultureInfo for pt-BR
  • Remove any other specific code that might change or default to another based on implementation culture info.

Add SecureCredentialProvider

Add class and interface SecureCredetianlProvider

The class provides data for securing the Credential from configuration.

Add SMTP and FTP clients in Utils projects

Is your feature request related to a problem? Please describe.
Add new project CrispyWaflle.Utils and add communications namespace with FTP and SMTP clients.

Describe the solution you'd like

  • Add FtpClient class.
  • Add SmtpClient class;

Add explicitly support to `.NET 6`, `.NET 7` and `.NET 8`

Is your feature request related to a problem? Please describe.
This library currently targets .NET Standard 2.0 and .NET Standard 2.1. The goal is to also target it to .NET 6 (LTS - Nov/2024), .NET 7 (STS - May/2024) and .NET 8 (Nov/2026).

Describe the solution you'd like
Add the three versions to TargetFrameworks node in each .csproj.
No source code change, only configuration at this stage.
Subsequently we can consider having compiler conditionals for specific code that targets specific .NET versions/features.

Extract `EventLog` and remove dependency `System.Diagnostics.EventLog` from `CrispyWaffle` project

Extract the System.Diagnostics.EventLog from Src/CrispyWaffle/Log/Providers and Src/CrispyWaffle/Log/Adapters to a dedicated project CrispyWaffle.EventLog and remove the dependency of System.Diagnostics.EventLog in CrispyWaffle project.

Files:

Steps to archive the goal:

  • Create a new project in the CrispyWaffle solution named CrispyWaffle.EventLog
  • Add a dependency to the main project in this newly created project
  • Uninstall the System.Diagnostics.EventLog from the main project
  • Install the System.Diagnostics.EventLog package in the new project
  • If you are new to .NET, you can just cut the line from one project and paste it in the other, this will be enough to uninstall/install a nugget package
  • Move the 4 files listed above in the main project to this newly created project
  • Keep the same file structure for the moved files, so it will be something like Src/CrispyWaffle.EventLog/Log/Adapters (for the adapter) and Src/CrispyWaffle.EventLog/Log/Providers (for the other 3 files)

Add self reference in methods

When registering a interface/class, allow the usage of ServiceLocator methods inside constructor

ServiceLocator.Register<T>(s => new T(s.Resolve<TDependency>());

So s is a reference to ServiceLocator class.

Add serializer for `System.Text.Json`

This issue is about adding a new serializer adapter to the project.

The new serializer should use the System.Text.Json instead of the Newtonsoft.Json used by JsonSerializerAdapter.

Currently, we have the following serializers in the project:

The proposed solution is to rename JsonSerializerAdapter to NewtonsoftJsonSerializerAdapter and also add the JsonSerializerAdapter that will implement the serialization and deserialization logic using the System.Text.Json.

The class should implement the ISerializerAdapter interface. More precisely, it should implement the BaseSerializerAdapter abstract class.

[FEATURE] Add `Yaml` serializer

Description

Add a Yaml serializer

This is an ongoing brainstorming about how to deal with the Toml format and its serialization.
I am working in a PoC to determine which library/implementation should be used here.

Tech notes

The ongoing work can be found here: PoC .NET Yaml handling

Once it is done, I will update this ticket with the expected library to be used.

Additional information

  • Add proper labels help wanted, good first issue, and hacktoberfest after finishing tech requirements.
  • This feature requires documentation.
  • This feature requires unit testing.
  • This feature requires a minor version bump

[FEATURE] Implement `RollingTextFileLogAdapter`

Is your feature request related to a problem? Please describe.
Implement the class RollingTextFileLogAdapter

Describe the solution you'd like
I would like to have an implementation of the Rolling Text File Log Adapter.
It should be a text file log adapter and should handle the file size/name.
A new file must be created whenever the file reaches the configured maximum size or the number of messages per file.

The rules are:

  • file size (B, MB, GB, ...)
  • quantity of messages (number of messages to roll up)

Remove manual .NET 8 installation in AppVeyor

Is your feature request related to a problem? Please describe.
Remove the manual installation of .NET 8 from appVeyor.yml file when AppVeyor releases a new image with built-in support for the .NET 8

Describe the solution you'd like
Remove lines 28 and 29 from the appVeyor.yml file when AppVeyor releases an official.NET 8 image.

[FEATURE] Add Request/Response pattern in EventsDispatcher (maybe a CommandsDispatcher)

Description

Currently, we have the EventsDispatcher that receives an IEvent and dispatches it overall EventsHandlers.

The idea here is to have a CommandsDispatcher that will receive an ICommand as input, and dispatch/send it for one, and one only CommandHandler and send back to the caller the response.dispatch/send it for one and only one CommandHandler, and send the response back to the caller

Tech notes

Use memory transport for this (maybe in the future we can have distributed system arch for this).

Additional information

No response

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.