Meus Projetos

Projeto Journey

Journey – Organização de Viagens em Grupo

Uma aplicação web completa e colaborativa que permite planejar e organizar viagens em grupo com múltiplas funcionalidades integradas.

HTML CSS JavaScript Node.js Render API

Journey – Uma Plataforma Colaborativa de Viagens

O Journey é um sistema web desenvolvido para facilitar o planejamento, acompanhamento e registro de viagens, tanto individuais quanto em grupo. Seu diferencial está na abordagem colaborativa: os usuários não apenas planejam suas próprias jornadas, mas fazem isso em conjunto com outras pessoas, compartilhando roteiros, finanças, mídias e decisões.

Experiência do Usuário e Fluxo de Uso

Tudo começa com o login ou cadastro do usuário, que pode acessar o sistema via formulário tradicional ou autenticação do Google. Uma vez logado, o usuário pode criar grupos de viagem ou ser convidado para grupos existentes. Cada grupo tem seu próprio ecossistema de dados isolado — roteiros, carteiras, colaboradores e mídias são todos armazenados de forma segregada por grupo.

Colaboração com Permissões e Restrições

Cada ação dentro do sistema está vinculada ao email do usuário logado. Isso garante que apenas o autor de uma tarefa, mídia ou lançamento financeiro possa excluí-la. Por exemplo:

  • Fotos e vídeos: só podem ser excluídos por quem os enviou.
  • Itens do roteiro: cada tarefa adicionada tem seu autor registrado; somente ele pode removê-la ou editá-la.

Notificações Inteligentes

O sistema implementa um sistema de notificações que mantém todos os participantes informados. Estas são criadas automaticamente em eventos-chave:

  • Ao adicionar um colaborador a um grupo: o convidado recebe uma notificação com convite.
  • Quando um convite é aceito: os demais membros são notificados sobre o novo participante.
  • Envio de mídia: todos os colaboradores (exceto o autor) recebem alerta de que uma nova foto ou vídeo foi adicionada.
  • Nova dívida registrada: o responsável por pagar é notificado, com valor e descrição incluídos.

Roteiros Personalizados

O módulo de roteiros de viagem permite que os usuários criem atividades organizadas por dia. Cada atividade é atribuída a quem a criou. O sistema impede alterações ou exclusões por outros membros — um mecanismo que protege a autoria e evita conflitos entre colaboradores.

Gestão Financeira Colaborativa

Na seção da carteira, usuários podem adicionar ou visualizar entradas/saídas de dinheiro, criar dívidas ou cobranças entre membros do grupo e ver relatórios consolidados do saldo individual e coletivo. As ações de registrar dívida ou valor a receber também geram notificações personalizadas.

Galeria de Mídias

Cada grupo tem uma galeria exclusiva para upload de imagens e vídeos, com opção de seleção múltipla, exclusão e download. Apenas o autor pode apagar os arquivos que enviou. Um modal moderno exibe detalhes da mídia, incluindo o nome de quem publicou.

Funcionalidade GPS

O módulo de GPS, utilizando a biblioteca Leaflet.js, permite que os usuários visualizem mapas interativos com marcadores de locais. Isso é útil para registrar os destinos visitados e visualizar o trajeto.

Conclusão

O Journey é uma aplicação rica em funcionalidades, cuidadosamente estruturada para promover colaboração com controle, segurança de dados, e uma experiência fluida e intuitiva. Com seu backend leve baseado em JSON, é ideal para ambientes educacionais ou MVPs funcionais. Sua arquitetura promove aprendizado prático de temas como autenticação, armazenamento local, integração REST, UI responsiva e controle de permissões.

Projeto Jogo de Bingo

Jogo de Bingo – Versões Web e Console

Um jogo de Bingo desenvolvido em duas versões distintas: uma visual e interativa no navegador, e outra em C# para terminal, ambas com regras completas e controle por jogador.

HTML CSS JavaScript C# Console App

Introdução

O Jogo de Bingo desenvolvido por João Pedro está disponível em duas versões: uma versão interativa e visual para navegador, construída com HTML, CSS e JavaScript; e uma versão robusta em C#, executada via terminal, com foco em lógica e persistência em arquivos.

Versão Web (HTML, CSS e JavaScript)

Na versão web, a experiência começa com a configuração dos jogadores: de 2 a 5 participantes, cada um podendo escolher de 1 a 4 cartelas. As cartelas são geradas dinamicamente, com números únicos e respeitando as faixas do Bingo tradicional (colunas B, I, N, G, O com faixas específicas).

O sistema sorteia números de 1 a 75 e marca automaticamente nas cartelas dos jogadores. Após a quarta rodada, é possível tentar um bingo — válido se preencher uma linha, coluna ou diagonal. Caso o jogador erre, ele perde a cartela usada. Se perder todas, é eliminado. Ao final do jogo, um ranking é exibido com a classificação por ordem de vitória ou eliminação.

Essa versão oferece uma interface colorida, responsiva, com animações visuais, mensagens de erro e sucesso, e interação dinâmica sem necessidade de recarregar a página.

Versão Console (C#)

No terminal, os jogadores informam seus dados (nome, idade, sexo, número de cartelas), e o sistema simula todo o sorteio. A verificação de bingo é feita via digitação manual e, se incorreta, a cartela é anulada. Cada jogada, acerto, erro ou eliminação é registrada no arquivo bingo.txt.

O código C# está dividido em classes organizadas: Cartela, Jogador e JogoBingo. Isso torna o jogo modular, fácil de entender e ideal para estudos de lógica de programação.

Destaques e Diferenças

A versão web é voltada para uma experiência amigável e visual, ideal para todos os públicos. Já a versão C# é voltada para desenvolvedores ou interessados em entender a lógica interna do jogo, com controle completo por texto e persistência dos dados. Ambas seguem a mesma lógica de regras, mas com interfaces adaptadas aos seus contextos.

Conclusão

O jogo de Bingo em suas duas versões demonstra o domínio do programador em múltiplas linguagens e abordagens de desenvolvimento. A fidelidade às regras do Bingo, o cuidado com a jogabilidade e a organização do código refletem um trabalho completo, que alia técnica, criatividade e usabilidade em um mesmo projeto.

Projeto Batalha Naval

Batalha Naval – Versões Web e Console

Uma adaptação moderna do clássico jogo Batalha Naval, desenvolvida tanto para navegador quanto para execução em console.

HTML CSS JavaScript C# Console App
Projeto Portfólio Pessoal

Portfólio Pessoal – João Pedro Figueiredo

Um site profissional para apresentar projetos, habilidades e experiências, desenvolvido com foco em clareza, responsividade e identidade visual.

HTML CSS JavaScript Design Responsivo

Introdução

Este portfólio foi desenvolvido por João Pedro Figueiredo com o objetivo de reunir seus principais projetos, competências técnicas, e experiências em um ambiente visualmente agradável, responsivo e de fácil navegação. A proposta é fornecer uma apresentação clara das habilidades e soluções criadas em projetos anteriores, permitindo que visitantes e recrutadores explorem cada trabalho com profundidade.

Estrutura

O site é dividido em seções bem definidas: página inicial com introdução, seção de serviços oferecidos, apresentação de soft skills, uma página sobre o autor, e uma seção de projetos detalhada — onde cada aplicação é exibida com imagem, descrição, tecnologias e links relevantes. O destaque vai para o uso de componentes reutilizáveis em HTML e uma estilização consistente em CSS.

Design Responsivo

Toda a interface foi pensada para funcionar bem em computadores, tablets e smartphones. Utiliza-se `flexbox` e `media queries` para garantir que o conteúdo se reorganize conforme o tamanho da tela, mantendo legibilidade e usabilidade.

Tecnologias utilizadas

HTML semântico, CSS modular e JavaScript para interações simples como o botão de "Ler mais". Ícones são integrados via Font Awesome e todo o código é organizado de forma clara em arquivos separados por função.

Conclusão

Este portfólio é um reflexo direto da atenção aos detalhes e da capacidade de João Pedro de entregar uma solução limpa, funcional e comunicativa. Ele continua evoluindo conforme novos projetos são adicionados, servindo como uma vitrine dinâmica de seu crescimento como desenvolvedor.