Skip to content

puuertA/anomtalk

Repository files navigation

🗨️ AnomTalk - Chat Anônimo

AnomTalk Logo

Uma plataforma de chat anônimo em tempo real para conversas espontâneas e seguras

Next.js Socket.io TypeScript Tailwind CSS

✨ Visão Geral

AnomTalk é um aplicativo de chat anônimo moderno que permite aos usuários criar salas de conversas temporárias através de URLs únicas e aleatórias. Sem necessidade de cadastro, login ou qualquer informação pessoal - apenas entre e comece a conversar!

🎯 Características Principais

  • 🔒 Totalmente Anônimo - Sem cadastros ou dados pessoais
  • Tempo Real - Mensagens instantâneas com Socket.io
  • 🎲 URLs Aleatórias - Cada sala tem um ID único gerado automaticamente
  • 🌙 Interface Moderna - Design dark com tema roxo elegante
  • 📱 Responsivo - Funciona perfeitamente em todos os dispositivos
  • 🚀 Rápido - Construído com Next.js 15 e Turbopack

🛠️ Stack Tecnológica

Frontend

  • Next.js 15 - Framework React com App Router
  • TypeScript - Tipagem estática para JavaScript
  • Tailwind CSS 4 - Framework CSS utilitário
  • Lucide React - Ícones SVG otimizados
  • Socket.io Client - Comunicação em tempo real

Backend

  • Express.js - Servidor web Node.js
  • Socket.io - WebSockets para chat em tempo real
  • CORS - Configuração de Cross-Origin Resource Sharing
  • Nanoid - Gerador de IDs únicos e seguros

Ferramentas de Desenvolvimento

  • ESLint - Linting de código
  • Concurrently - Execução paralela de scripts
  • PostCSS - Processamento de CSS

🚀 Início Rápido

Pré-requisitos

  • Node.js 18+
  • npm ou yarn

Instalação

  1. Clone o repositório

    git clone https://github.com/puuertA/anomtalk.git
    cd anomtalk
  2. Instale as dependências

    npm install
  3. Configure as variáveis de ambiente (opcional)

    # Copie o arquivo de exemplo
    cp .env.example .env.local
    
    # Edite .env.local se necessário
    # As configurações padrão já funcionam para desenvolvimento local
  4. Execute o projeto

    # Inicia frontend e backend simultaneamente
    npm run dev:full
  5. Acesse a aplicação

Scripts Disponíveis

# Desenvolvimento
npm run dev          # Apenas frontend (Next.js)
npm run dev:server   # Apenas backend (Socket.io)
npm run dev:full     # Frontend + Backend simultaneamente

# Produção
npm run build        # Build do frontend
npm start           # Inicia frontend em produção
npm run start:server # Inicia backend em produção

# Qualidade de código
npm run lint        # Executa ESLint

⚙️ Configuração de Ambiente

Variáveis de Ambiente

O projeto usa variáveis de ambiente para configuração. Copie .env.example para .env.local:

cp .env.example .env.local

Variáveis disponíveis:

Variável Descrição Padrão
NEXT_PUBLIC_SOCKET_URL URL do servidor Socket.io http://localhost:3001
FRONTEND_URL URL do frontend (para CORS) http://localhost:3000

Configuração de Produção

Para produção, configure as URLs corretas:

NEXT_PUBLIC_SOCKET_URL=https://seu-backend.herokuapp.com
FRONTEND_URL=https://sua-aplicacao.vercel.app

📁 Estrutura do Projeto

anomtalk/
├── 📁 src/
│   ├── 📁 app/
│   │   ├── 📄 globals.css      # Estilos globais
│   │   ├── 📄 layout.tsx       # Layout principal
│   │   ├── 📄 page.tsx         # Página inicial
│   │   └── 📁 chat/
│   │       └── 📁 [roomId]/
│   │           └── 📄 page.tsx # Página do chat
│   └── 📁 lib/
│       └── 📄 utils.ts         # Utilitários
├── 📁 server/
│   └── 📄 index.js             # Servidor Socket.io
├── 📁 public/                  # Assets estáticos
├── 📄 package.json             # Dependências
├── 📄 next.config.ts           # Configuração Next.js
├── 📄 tailwind.config.js       # Configuração Tailwind
└── 📄 tsconfig.json            # Configuração TypeScript

🎨 Design e Interface

  • Tema: Dark mode com paleta roxa (#8b5cf6)
  • Tipografia: Fontes system para melhor performance
  • Responsividade: Mobile-first design
  • Animações: Transições suaves e feedback visual
  • Acessibilidade: Componentes com foco em UX

🔧 Como Funciona

  1. Criação de Sala: O usuário clica em "Criar Sala" na página inicial
  2. Geração de ID: Um ID único é gerado usando nanoid
  3. Redirecionamento: O usuário é redirecionado para /chat/[roomId]
  4. Conexão WebSocket: Estabelece conexão em tempo real via Socket.io
  5. Chat: Troca de mensagens instantâneas e anônimas

🚀 Deploy

Vercel (Recomendado para Frontend)

# Instale a CLI da Vercel
npm i -g vercel

# Deploy
vercel

Backend (Servidor Socket.io)

O backend pode ser hospedado em plataformas como:

  • Railway
  • Render
  • Heroku
  • DigitalOcean

🤝 Contribuindo

  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

📝 Roadmap

  • Salas com senha opcional
  • Limite de participantes por sala
  • Histórico temporário de mensagens
  • Reactions/emojis nas mensagens
  • Notificações de entrada/saída
  • Modo claro/escuro toggle
  • Compartilhamento de arquivos/imagens
  • Mensagens temporárias (auto-delete)

📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

👨‍💻 Autor

Lucas - @puuertA


Desenvolvido com ❤️ e ☕

⭐ Dar uma estrela | 🐛 Reportar Bug | 💡 Sugerir Feature

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors