Skip to content

Uma aplicação web elegante e interativa para criar e compartilhar memórias especiais com cronômetro em tempo real, carrossel de imagens e integração musical.

Notifications You must be signed in to change notification settings

Joaoof/memorias

Repository files navigation

💕 Memórias

Uma aplicação web elegante e interativa para criar e compartilhar memórias especiais com cronômetro em tempo real, carrossel de imagens e integração musical.

Next.js React TypeScript Tailwind CSS Vercel

🌟 Funcionalidades

✨ Principais

  • Cronômetro em Tempo Real: Conta automaticamente anos, meses, horas, minutos e segundos desde uma data especial
  • Carrossel de Imagens: Suporte para até 3 imagens com navegação suave e indicadores visuais
  • Integração Musical:
    • Upload de arquivos de áudio locais com player customizado
    • Integração completa com Spotify (tracks, álbuns e playlists)
  • Animações Especiais: Emojis de corações caindo na tela para criar atmosfera romântica
  • Compartilhamento: Geração de links únicos para compartilhar memórias
  • Design Responsivo: Interface adaptável para desktop e mobile

🎨 Interface

  • Design Moderno: Interface escura elegante com elementos glassmorphism
  • Componentes Premium: Baseado em Radix UI e shadcn/ui
  • Animações Fluidas: Transições suaves e micro-interações
  • Feedback Visual: Estados de loading, erro e sucesso bem definidos

🛠️ Tecnologias Utilizadas

Frontend

  • Next.js 15.2.4 - Framework React com App Router
  • React 19 - Biblioteca para interfaces de usuário
  • TypeScript - Tipagem estática para JavaScript
  • Tailwind CSS - Framework CSS utility-first

UI/UX

  • Radix UI - Componentes acessíveis e não estilizados
  • shadcn/ui - Biblioteca de componentes reutilizáveis
  • Lucide React - Ícones SVG modernos
  • Tailwind Animate - Animações CSS utilitárias

Funcionalidades Específicas

  • React Hook Form - Gerenciamento de formulários
  • Zod - Validação de schemas
  • date-fns - Manipulação de datas
  • UUID - Geração de identificadores únicos
  • Embla Carousel - Carrossel de imagens
  • Sonner - Notificações toast

📁 Estrutura do Projeto

memorias/
├── app/                    # App Router do Next.js
│   ├── display/           # Páginas de visualização
│   ├── editor/            # Interface de edição
│   ├── globals.css        # Estilos globais
│   ├── layout.tsx         # Layout raiz
│   ├── loading.tsx        # Componente de loading
│   └── page.tsx           # Página principal
├── components/            # Componentes reutilizáveis
│   ├── ui/               # Componentes base (shadcn/ui)
│   ├── falling-emojis.tsx # Animação de emojis
│   ├── image-carousel.tsx # Carrossel de imagens
│   └── theme-provider.tsx # Provider de tema
├── hooks/                # Hooks customizados
├── lib/                  # Utilitários e configurações
├── public/              # Arquivos estáticos
├── styles/              # Estilos adicionais
└── ...                  # Arquivos de configuração

🚀 Como Executar

Pré-requisitos

  • Node.js 18+ ou superior
  • npm, yarn, ou pnpm

Instalação

  1. Clone o repositório
git clone https://github.com/Joaoof/memorias.git
cd memorias
  1. Instale as dependências
# Com npm
npm install

# Com yarn
yarn install

# Com pnpm (recomendado)
pnpm install
  1. Execute o servidor de desenvolvimento
# Com npm
npm run dev

# Com yarn
yarn dev

# Com pnpm
pnpm dev
  1. Abra o navegador Acesse http://localhost:3000 para ver a aplicação.

🎯 Como Usar

memorias-gold vercel app-memorias-fpscreenshot

Criando uma Memória

  1. Adicione Imagens

    • Cole URLs de imagens (uma por linha)
    • Máximo de 3 imagens suportadas
    • As imagens são validadas automaticamente
  2. Configure a Data

    • Selecione a data de início da memória
    • O cronômetro calculará automaticamente o tempo decorrido
  3. Personalize o Conteúdo

    • Defina um título personalizado
    • Adicione uma mensagem especial
    • Escolha se deseja mostrar os corações animados
  4. Adicione Música (Opcional)

    • Upload de arquivo de áudio local, ou
    • Cole uma URL do Spotify (track, álbum ou playlist)
  5. Visualize e Compartilhe

    • Clique em "Criar Memória" para gerar a visualização
    • Use o botão de compartilhar para copiar o link único

Recursos do Player de Áudio

  • Controles Completos: Play/pause, busca, indicador de progresso
  • Formatos Suportados: MP3, WAV, OGG e outros formatos web
  • Integração Spotify: Player embedded para conteúdo do Spotify
  • Feedback Visual: Estados de loading e erro claramente indicados

🎨 Customização

Temas e Cores

O projeto usa CSS Variables para fácil customização de cores:

:root {
  --background: 222.2 84% 4.9%;
  --foreground: 210 40% 98%;
  --primary: 210 40% 98%;
  /* ... outras variáveis */
}

Componentes

Todos os componentes são modulares e podem ser facilmente customizados:

// Exemplo de customização de componente
<Button 
  variant="outline" 
  size="lg" 
  className="bg-gradient-to-r from-pink-500 to-violet-500"
>
  Botão Customizado
</Button>

🔧 Scripts Disponíveis

{
  "dev": "next dev",           // Servidor de desenvolvimento
  "build": "next build",       // Build de produção
  "start": "next start",       // Servidor de produção
  "lint": "next lint"          // Linter ESLint
}

📱 Deploy

A aplicação está configurada para deploy automático na Vercel:

  1. Deploy Atual: memorias-gold.vercel.app
  2. Auto-deploy: Conectado ao GitHub para deploys automáticos
  3. Configuração: Next.js com otimizações de produção habilitadas

Deploy Manual

# Build da aplicação
npm run build

# Deploy na Vercel (com Vercel CLI)
vercel --prod

🤝 Contribuição

Contribuições são bem-vindas! Para contribuir:

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

Diretrizes de Contribuição

  • Siga os padrões de código existentes
  • Escreva commits descritivos
  • Teste suas mudanças localmente
  • Mantenha a documentação atualizada

📝 Notas de Desenvolvimento

Configurações Especiais

  • TypeScript: Configurado para ignorar erros de build em desenvolvimento
  • ESLint: Configurado para ignorar durante builds
  • Images: Otimização desabilitada para flexibilidade com URLs externas
  • Experimental: Features experimentais do Next.js habilitadas

Performance

  • Webpack Build Workers: Habilitado para builds mais rápidos
  • Parallel Server Traces: Melhora performance de build
  • Image Optimization: Configurada para URLs externas

📄 Licença

Este projeto é privado e pertence ao usuário Joaoof.

🙋‍♂️ Suporte

Se você encontrar algum problema ou tiver sugestões:

  1. Issues: Abra uma issue no repositório GitHub
  2. Discussões: Use as discussões do GitHub para perguntas gerais
  3. Email: Contate o desenvolvedor através do GitHub

Desenvolvido com 💖 para preservar memórias especiais

About

Uma aplicação web elegante e interativa para criar e compartilhar memórias especiais com cronômetro em tempo real, carrossel de imagens e integração musical.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •