Meus Projetos
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.
- Frontend: GitHub
- Backend: GitHub
- Demo online: journey-front-alpha.vercel.app
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.
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.
- Versão web: jogo-bingo.vercel.app
- GitHub (HTML): Jogo_Bingo_HTML
- GitHub (C#): Jogo_Bingo_Csharp
- Download (EXE): Bingo.exe
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.
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.
- GitHub: MeuPortifolio
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.