Soraia Novaes
Engenheira de Software pela 42 São Paulo.
Engenheira de Software pela 42 São Paulo.
Esses projetos ilustram meu domínio em várias tecnologias essenciais da web, incluindo HTML, CSS, JavaScript, e o uso de APIs. Você encontrará desde aplicativos simples, como geradores de citações e listas de tarefas, até funcionalidades mais complexas, como validação de formulários e integração com APIs externas como a do GitHub e da Wikipedia.
Um aplicativo para gerenciar tarefas diárias. Os usuários podem adicionar, remover e listar tarefas usando uma interface simples. As tarefas são adicionadas através de um campo de entrada e podem ser excluídas individualmente.
Este projeto exibe uma citação aleatória de uma coleção pré-definida a cada vez que o usuário solicita uma nova citação. É útil para sites que desejam oferecer inspiração ou reflexão diária.
Uma calculadora funcional que suporta operações básicas como adição, subtração, multiplicação e divisão. Este projeto demonstra a manipulação de eventos e o cálculo de expressões matemáticas.
Um componente de interface que permite expandir e retrair seções de conteúdo, ideal para FAQs ou para organizar informações detalhadas de forma compacta.
Um formulário que valida a entrada do usuário em tempo real, garantindo que todos os campos sejam preenchidos corretamente antes de permitir a submissão. Valida nomes, e-mails e senhas.
Gera senhas aleatórias com base em critérios especificados pelo usuário, como comprimento e a inclusão de números ou símbolos. É útil para criar senhas fortes e seguras.
Gera senhas aleatórias com base em critérios especificados pelo usuário, como comprimento e a inclusão de números ou símbolos. É útil para criar senhas fortes e seguras.
Utiliza uma API para buscar e exibir uma 'piada de pai' aleatória. Demonstração de como fazer chamadas de API e manipular respostas em uma aplicação web.
Permite aos usuários buscar perfis no GitHub usando a API do GitHub. Exibe informações do perfil, incluindo repositórios, seguidores e mais.
Uma aplicação que permite aos usuários pesquisar artigos na Wikipedia e exibir resultados com links diretos para os artigos. Utiliza a API da Wikipedia para buscar e exibir dados.
Um aplicativo com simulando um clone do Instagram com recursos de autenticação, criação de postagens, comentários e likes. Backend php com Laravel.
Em minha formação pela École 42, desenvolvi um conjunto diversificado de projetos que atravessaram as fronteiras tradicionais da ciência da computação, enfrentando desde a reconstrução de funções de bibliotecas padrão até o desenvolvimento de aplicações complexas e sistemas integrados. Cada projeto foi cuidadosamente projetado para não apenas reforçar competências técnicas em linguagens como C e C++, mas também para instigar a resolução de problemas complexos, otimização de processos e a integração de múltiplas tecnologias. Esta experiência prática proporcionou uma compreensão profunda das exigências e nuances da programação de alto nível e do desenvolvimento de sistemas, preparando-me para enfrentar desafios tecnológicos complexos com soluções inovadoras e eficazes.
Este é o primeiro projeto como estudante da 42 e o trabalho é recodificar algumas funções da biblioteca padrão C, bem como algumas outras funções utilitárias que serão usadas durante todo o curso.
Este projeto trata de programar uma função que retorna uma linha lido de um descritor de arquivo. Seja um arquivo, stdin ou até mesmo uma conexão de rede, você sempre precisará de uma forma de ler o conteúdo linha por linha.
ft_printf é um projeto que pede para criarmos a nossa própria versão da função printf(). Na linguagem de programação C, a função printf() é usada para imprimir os (valores de caractere, string, float, inteiro, octal e hexadecimal) na tela de saída, retornando o número de caracteres escritos.
Born2beroot é um projeto que exige a criação de uma máquina virtual com servidor SSH, regras de firewall e como bônus uma instalação de Wordpress e um serviço como FTP ou DNS. O Sistema Operacional pode ser Debian ou CentOS e um script de monitoramento com informações do sistema operacional deve ser executado a cada 10 minutos.
SoLong é um projeto que exige a criação de um jogo 2D muito pequeno. Ele foi construído para fazer você trabalhar com texturas, sprites e alguns elementos de jogabilidade muito básicos usando MinilibX, uma API de programação X-Window (X11R6) simples em C, projetada para estudantes, adequada para iniciantes em X.
Pipex é um projeto que exige que criemos um programa que simule o comportamento do shell pipe, recebendo um arquivo ou lendo do STDIN e redirecionando para uma sequência de comandos que serão gravados no arquivo de saída.
Este projeto envolve a classificação de dados em uma pilha, com um conjunto limitado de instruções e o menor número de movimentos. Para que isso aconteça, você terá que manipular vários algoritmos de classificação e escolher a(s) solução(ões) mais apropriada(s) para classificação otimizada de dados.
O objetivo deste projeto é criar um shell simples, lidando com processos e file descriptors. Simplificando, um shell é a camada mais externa de comunicação entre o usuário e o sistema operacional. Permitindo-nos navegar e executar tarefas em linguagem legível por humanos.
Philosophers é um projeto que exige que resolvamos o problema do Jantar dos Filósofos usando threads, processos e mutex. A parte obrigatória deve ser resolvida usando threads e mutex. A solução foi implementada por meio de uma thread de monitoramento, que verifica se algum filósofo morreu e avisa os demais para pararem (locking mutex).
NetPractice é um projeto que exige a configuração de redes de pequena escala. Numa rede, os dispositivos precisam se comunicar. Para isso foram criados protocolos e modelos de comunicação. Entre eles, está o modelo TCP/IP. TCP/IP é um conjunto de protocolos de comunicação. O nome vem de dois protocolos TCP (Transmission Control Protocol) e IP (Internet Protocol). Tem como objetivo padronizar todas as comunicações em rede, especialmente as comunicações na web.
Cub3D é um projeto de equipe que nos pede para criar um motor de jogo 3D com miniLibX. Este projeto é inspirado no mundialmente famoso jogo Wolfenstein 3D dos anos 90, que foi o primeiro FPS de todos os tempos. O objetivo deste projeto é aprofundar-se nos conceitos matemáticos por trás do algoritmo de projeção de raios, como cálculo de distâncias, altura, localização de sprites e campo de visão para criar uma projeção usando principalmente trigonometria.
CPP é o nome do mini pool C++ em 42, um conjunto de várias listas de exercícios que vão desde conceitos básicos de orientação a objetos, como polimorfismo e herança, até modelos C++. C++ (dito C plus plus) é uma linguagem de computador orientada a objetos criada pelo notável cientista da computação Bjorne Stroustrop como parte da evolução da família de linguagens C. Ele foi desenvolvido como uma melhoria multiplataforma de C para fornecer aos desenvolvedores um maior grau de controle sobre a memória e os recursos do sistema.
Ft_containers é um projeto que requer a reimplementação de alguns dos principais contêineres da biblioteca de modelos padrão C++ (C++ STL Containers). Os containers a serem implementados incluindo bônus são o vetor, mapa, conjunto e pilha. Também precisamos implementar os iteradores quando disponíveis, iterator_traits e reverse_iterator.
Inception é um projeto que exige a construção de uma infraestrutura de serviços utilizando Docker, orquestrada pelo Docker Compose. Na parte obrigatória, um container com nginx e somente ele deve estar acessível pela porta 443, expondo os serviços da rede docker interna para acesso público. O serviço nginx se conecta ao contêiner wordpress executando php-fpm que armazena os dados em um serviço mariadb na rede. Os dados do site wordpress e mariadb devem ser persistidos cada um em seu próprio volume.
Webserv é um projeto de grupo que exige a construção de um servidor HTTP usando I/O Multiplexing construída sobre um loop de eventos. Na parte obrigatória, iniciamos o servidor lendo um arquivo de configuração que pode ser baseado em Nginx, contendo informações como nome do host (ip/porta), nome do servidor, arquivo de índice, listagem de diretórios, redirecionamento de URL, localização (caminho do vhost) e alguns outros configurações.
ft_transcendence é um projeto de equipe que exige a construção de uma plataforma online para jogar Pong. O backend deve ser construído em NestJS, o frontend em qualquer framework TypeScript de sua preferência e o banco de dados deve ser PostgreSQL. Para o frontend a opção escolhida foi o Svelte, devido ao seu desempenho e extensa documentação. No geral, a plataforma deve contar com sistema de classificação, canais de chat, mensagens privadas, edição de perfil, visualização do status dos usuários e adição de outros membros como amigos. O objetivo principal é jogar uma implementação do Pong, como se fosse 1972. Deveria haver algumas opções de personalização, como mapas personalizados ou power-ups, mas o usuário ainda deveria ser capaz de jogar a versão original. Finalmente, a estrutura do servidor deve ser conteinerizada usando docker e disponível com uma única chamada de: docker-compose up --build.
Fundamentos de Programação:
Técnicas Avançadas de Programação:
Engenharia de Software:
Desenvolvimento Web e Aplicações em Rede:
Gerenciamento de Sistemas e Infraestrutura:
Desenvolvimento de Jogos e Gráficos Computacionais:
Multithreading e Concorrência:
Design de Software e Arquitetura de Sistemas:
Este portfólio é um testemunho do meu crescimento como desenvolvedora web e da minha paixão por construir soluções web eficazes e atraentes.