Portifólio

Contact.me

Link: https://github.com/frv-dev/contact.me

Esse projeto foi feito como parte do processo seletivo para entrar na empresaNetshow.me,oobjetivo era desenvolver um formulario do contato, mas não apenas fazê-lo funcionar e sim usar oprojetopara demonstrar os meus conhecimentos.

Desenvolvi um projeto em Laravel usando o React, TypeScript, banco de dados com SGBD MySQL e um servidor de e-mails falso Mailhog.

Também foi usado o Docker para montar uma infraestrutura contendo um servidor Node para transpilar o código front-end, um servidor PHP, um servidor de e-mails falso com Mailhog e um servidor para banco de dados com MySQL.

A arquitetura também foi pensada isolando a aplicação back-end em Repositories, Services, com o Service Mail para envio de e-mail, e Builder além da estrutura padrão do Laravel, testes automatizados unitários e de feature foram criados, no front-end as requisições HTTP foram separadas na camada de serviço com o axios, tem uma camada de validação com regex e os componentes visuais foram isolados.

É um projeto Overkill, ou seja, tecnologia em exagero para um simples formulário de contato, mas como dito, foi um projeto usado para demonstrar o meu conhecimento com as tecnologias usadas ao mesmo tempo que eu desenvolvia a proposta do teste da empresa, num senário real a escolha de tecnologias seria mais sensata.

Slim Framework Skeleton

Link: https://github.com/frv-dev/slim-framework-skeleton

Esse é um projeto com fins de estudo e aprendizado apenas.

Um skeleton é um literalmente um esqueleto de projeto pré-definido que permite você baixar e usar sem se preocupar com toda a configuração e arquitetura do projeto.

Ferramentas como o Laravel já trazem isso pronto e, para projetos mais específicos é mais recomendável o projeto ser estruturado manualmente do que usar um skeleton pronto, por isso esse projeto não foi desenvolvido para fins de uso em projetos.

O ponto forte aqui foi estudar sobre arquitetura de software, existe muito mais do que escrever um código que executa uma instrução para o computador.

Esse projeto possui uma configuração pré-pronta para um ambiente com Docker com um módulo para testes automatizados e variáveis de ambientes pré-configuradas.

Além disso ele possui uma arquitetura desacoplada e que foca no princípio D do SOLID, Dependency Inverse Principle - Princípio da Inversão de Dependência, o que também permite o uso da Arquitetura Hexagonal nesse projeto, usando do recurso de injeção de dependência implementado no Slim Framework é possível criar camadas adicionais na aplicação que aqui são chamadas de Services e que se comunicam com o core da aplicação através de interfaces, esse desacoplamento permite a realização de testes unitários, uma melhor organização e uma arquitetura mais limpa além de permitir a criação de dublês de testes apenas criando classes que implementem as respectivas interfaces.

Code Easy Raffle

Link: https://github.com/frv-dev/codeeasy-raffle

O Code Easy Raffle é o software de sorteio da Code Easy, um software simples, usado para fins didáticos e, quem sabe, para futuros sorteios que possam surgir na Code Easy.

Este software foi construído para demonstrar um exemplo simples de React com TypeScript e também de Sistemas Distribuídos, já que no diretório src/services/ é possível desenvolver módulos que permitem a integração com qualquer sistema ou fonte que provenha os dados para o sorteio (APIs REST, GraphQL, CSV, JSON, ...).

Presentation Stopwatch Prototype

Link: https://github.com/frv-dev/presentation-stopwatch-prototype

Um protótipo de um sistema feito em React que tem como objetivo criar um temporizador para apresentações.

É possível definir o título da apresentação, tempo da apresentação, tempo das mensagens de aviso, uma mensagem de aviso e uma mensagem quando o tempo finaliza.

Assim o apresentador pode ter o controle do seu tempo de apresentação.

Migrations com PHP e Phinx

Link: https://github.com/frv-dev/migrations-com-php-e-phinx

Um projeto de estudo e aprendizado para ver como funciona a biblioteca Phinx, utilizada para criar um módulo de migração para o banco de dados com PHP usando como base de teste o SGBD SQLite3.