Um aplicativo moderno de busca de notícias construído com Next.js, React e TypeScript. Permite buscar notícias de diferentes fontes, salvar favoritos e filtrar resultados por diversos critérios.
- 🔍 Busca de Notícias: Busca notícias de múltiplas fontes
- ❤️ Sistema de Favoritos: Salve e gerencie suas notícias favoritas
- 🎯 Filtros Avançados: Filtre por data, fonte, idioma e mais
- 📱 Design Responsivo: Interface otimizada para desktop e mobile
- ⚡ Infinite Scroll: Carregamento automático de mais notícias
- 🎨 UI Moderna: Interface elegante com Tailwind CSS
- 🔄 Estado Persistente: Favoritos salvos localmente
- Framework: Next.js 15.4.5
- Frontend: React 19.1.0
- Linguagem: TypeScript
- Estilização: Tailwind CSS 4
- Gerenciamento de Estado: React Query (TanStack Query)
- Formulários: React Hook Form
- Utilitários: Tailwind Merge, Tailwind Variants
- API de Notícias: NewsAPI - Mais de 150.000 fontes de notícias
Antes de começar, certifique-se de ter instalado:
- Node.js (versão 18 ou superior)
- npm, yarn, pnpm ou bun (gerenciador de pacotes)
git clone <url-do-repositorio>
cd hubxp# Usando npm
npm install
# Usando yarn
yarn install
# Usando pnpm
pnpm install
# Usando bun
bun install# Usando npm
npm run dev
# Usando yarn
yarn dev
# Usando pnpm
pnpm dev
# Usando bun
bun devAbra http://localhost:3000 no seu navegador para ver o resultado.
src/
├── app/ # App Router do Next.js
│ ├── api/ # API Routes
│ ├── layout.tsx # Layout principal
│ └── page.tsx # Página inicial
├── components/ # Componentes React
│ ├── atoms/ # Componentes atômicos
│ └── pages/ # Componentes de página
├── contexts/ # Contextos React
├── hooks/ # Custom hooks
├── lib/ # Utilitários e configurações
├── services/ # Serviços e APIs
└── types/ # Definições de tipos TypeScript
npm run dev- Inicia o servidor de desenvolvimentonpm run build- Cria a build de produçãonpm run start- Inicia o servidor de produçãonpm run lint- Executa o linter ESLint
- Acesse https://newsapi.org
- Clique em "Get API key" no menu superior
- Faça o cadastro gratuito
- Copie sua API key
Crie um arquivo .env na raiz do projeto:
# API Key do NewsAPI (OBRIGATÓRIO)
NEWSAPI_KEY=sua_api_key_aqui
- 100 requests por dia (suficiente para desenvolvimento)
- Acesso a todos os endpoints (Everything, Top Headlines, Sources)
- Dados em tempo real de mais de 150.000 fontes
O projeto já vem configurado com:
- ESLint: Para linting de código
- Prettier: Para formatação automática
- TypeScript: Para tipagem estática
Os estilos são gerenciados com Tailwind CSS. Para personalizar:
- Edite
src/app/globals.csspara estilos globais - Use classes Tailwind nos componentes
- Configure o tema no arquivo de configuração do Tailwind
Os componentes estão organizados em:
- Atoms: Componentes básicos reutilizáveis
- Pages: Componentes específicos de página
Este projeto utiliza a NewsAPI para buscar notícias em tempo real de mais de 150.000 fontes de notícias e blogs.
- Busca Avançada: Suporte a operadores booleanos (AND, OR, NOT)
- Filtros por Data: Busque notícias de períodos específicos
- Filtros por Idioma: Suporte a 14 idiomas diferentes
- Ordenação: Por relevância, popularidade ou data de publicação
- Filtros por Domínio: Busque em fontes específicas
- Paginação: Até 100 resultados por página
/v2/everything: Busca completa em todas as fontes
// Busca por "tecnologia" nos últimos 7 dias
GET https://newsapi.org/v2/everything?q=tecnologia&from=2024-01-01&sortBy=publishedAt&apiKey=YOUR_API_KEYSe você encontrar algum problema ou tiver dúvidas:
- Verifique se todas as dependências estão instaladas
- Certifique-se de estar usando a versão correta do Node.js
- Verifique se a API key está configurada corretamente
- Limpe o cache:
rm -rf .next node_modules && npm install - Abra uma issue no repositório
Desenvolvido com ❤️ usando Next.js e React