Clone funcional completo do Twitter para fins educacionais, com todas as funcionalidades principais de uma rede social.
- React 18 - UI interativa
- Tailwind CSS - Styling responsivo
- React Router - Navegação
- Axios - Requisições HTTP
- React Icons - Ícones
- Node.js - Runtime JavaScript
- Express.js - Framework web
- PostgreSQL - Banco de dados
- JWT - Autenticação segura
- bcryptjs - Hash de senhas
- Docker - Containerização
- Docker Compose - Orquestração
- ✅ Registro de novo usuário
- ✅ Login com JWT
- ✅ Perfis customizáveis
- ✅ Seguir/Deixar de seguir
- ✅ Sistema de seguidores
- ✅ Busca de usuários
- ✅ Criar tweets (máx 280 caracteres)
- ✅ Deletar tweets
- ✅ Likes/Unlikes
- ✅ Retweets
- ✅ Respostas/Comentários
- ✅ Upload de imagens
- ✅ Timeline feed personalizada
- ✅ Mensagens diretas (DMs)
- ✅ Conversas com histórico
- ✅ Notificações em tempo real
- ✅ Marcar notificações como lidas
- ✅ Contador de não lidas
- ✅ Trending topics
- ✅ Sugestões de seguir
- ✅ Busca global
- ✅ Feed de descobertas
twitter-clone/
├── backend/
│ ├── src/
│ │ ├── config/
│ │ │ ├── database.js
│ │ │ └── database.sql
│ │ ├── controllers/
│ │ │ ├── authController.js
│ │ │ ├── tweetsController.js
│ │ │ ├── usersController.js
│ │ │ ├── repliesController.js
│ │ │ ├── messagesController.js
│ │ │ └── notificationsController.js
│ │ ├── middleware/
│ │ │ └── auth.js
│ │ ├── routes/
│ │ │ ├── authRoutes.js
│ │ │ ├── tweetsRoutes.js
│ │ │ ├── usersRoutes.js
│ │ │ ├── repliesRoutes.js
│ │ │ ├── messagesRoutes.js
│ │ │ └── notificationsRoutes.js
│ │ ├── utils/
│ │ │ └── jwt.js
│ │ └── server.js
│ ├── Dockerfile
│ ├── package.json
│ └── .env.example
│
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ │ ├── Tweet.jsx
│ │ │ └── TweetComposer.jsx
│ │ ├── pages/
│ │ │ ├── Home.jsx
│ │ │ └── Auth/
│ │ │ ├── Login.jsx
│ │ │ └── Register.jsx
│ │ ├── services/
│ │ │ └── api.js
│ │ ├── context/
│ │ │ └── AuthContext.jsx
│ │ ├── hooks/
│ │ │ └── useAuth.js
│ │ ├── App.jsx
│ │ ├── index.js
│ │ └── index.css
│ ├── public/
│ │ └── index.html
│ ├── Dockerfile
│ ├── package.json
│ └── .env.example
│
├── docker-compose.yml
├── .gitignore
├── README.md
├── SETUP.md
└── API_DOCUMENTATION.md
# Clonar repositório
git clone https://github.com/davidadrianofe/Twitter-clone-.git
cd Twitter-clone-
# Iniciar com Docker Compose
docker-compose up -d
# Acesse
Frontend: http://localhost:3000
Backend: http://localhost:5000Backend:
cd backend
cp .env.example .env
npm install
npm run devFrontend (novo terminal):
cd frontend
cp .env.example .env
npm install
npm startusers- Informações dos usuáriostweets- Tweets publicadosreplies- Comentários/Respostaslikes- Registro de likesretweets- Registro de retweetsfollowers- Relacionamento de seguidoresdirect_messages- Mensagens diretasnotifications- Notificações do sistema
- Senhas criptografadas com bcryptjs
- Autenticação via JWT
- Tokens com expiração de 7 dias
- CORS habilitado
- Validação de entrada
- Interface limpa inspirada no Twitter 2013
- Layout responsivo (mobile, tablet, desktop)
- Componentes reutilizáveis
- Transições suaves
- Ícones intuitivos
Este projeto demonstra:
- Desenvolvimento full-stack com Node.js + React
- Autenticação segura com JWT
- Padrão MVC no backend
- State management com Context API
- Hooks customizados
- Chamadas de API com Axios
- Design responsivo com Tailwind CSS
- Docker e containerização
- Notificações em tempo real com Socket.io
- Upload de imagens para CDN
- Hashtags automáticas
- Mencionar usuários (@username)
- Threads de tweets
- Likes em comentários
- Bloqueio de usuários
- Relatório de tweets
- Dark mode
- Filtros avançados
# Verificar se PostgreSQL está rodando
psql -U postgres -d twitter_clone# Limpar localStorage no navegador
localStorage.clear()- Máximo 280 caracteres
- Conteúdo não pode estar vazio
- API Documentation - Detalhes de todos os endpoints
- Setup Guide - Passo-a-passo de instalação
David Adriano Ferrari dos Santos
- CEO e Criador do Projeto
- Para fins educacionais
MIT
Gostou do projeto? Deixe uma estrela! ⭐
Desenvolvido com ❤️ para fins educacionais