Uma interface web moderna para o TabNews, desenvolvida em Python usando Flask e consumindo a API oficial do TabNews. Inclui suporte a modo escuro e design responsivo.
Este projeto recria a interface do TabNews usando Python e Flask, mantendo um design limpo e minimalista semelhante ao original. A aplicação consome a API oficial do TabNews para exibir conteúdos, perfis de usuários e comentários.
- Tema Claro/Escuro: Suporte completo a modo escuro com detecção automática das preferências do sistema
- Persistência de Tema: Preferência de tema salva usando localStorage
- Design Responsivo: Interface adaptável para dispositivos móveis e desktop
- Minimalismo: Interface limpa e focada no conteúdo, priorizando legibilidade
- Visualização de Conteúdos: Acesso a publicações recentes e relevantes
- Conteúdo Detalhado: Visualização de posts individuais com comentários
- Perfis de Usuário: Acesso a perfis e histórico de publicações
- Integração Completa: Suporte a todas as funcionalidades da API do TabNews
- Python 3.8+
- Flask
- Requests
- Conexão com a internet para acessar a API do TabNews
-
Clone o repositório:
git clone https://github.com/seu-usuario/tabnews-interface.git cd tabnews-interface -
Crie e ative um ambiente virtual:
# Windows python -m venv venv .\venv\Scripts\activate # Linux/macOS python -m venv venv source venv/bin/activate -
Instale as dependências:
pip install -r requirements.txt
-
Ative o ambiente virtual (caso ainda não esteja ativado):
# Windows .\venv\Scripts\activate # Linux/macOS source venv/bin/activate -
Execute a aplicação:
python -m src.app -
Acesse a interface pelo navegador:
http://localhost:5000
tabnews_interface/
├── src/ # Código-fonte Python
│ ├── app.py # Aplicação Flask principal
│ └── config.py # Configurações da aplicação
├── static/ # Arquivos estáticos
│ └── css/
│ └── style.css # Estilos CSS
├── templates/ # Templates HTML
│ ├── base.html # Template base
│ ├── index.html # Página inicial
│ ├── content.html # Visualização de conteúdo
│ ├── user.html # Perfil de usuário
│ ├── 404.html # Página de erro 404
│ └── 500.html # Página de erro 500
├── tests/ # Testes
├── venv/ # Ambiente virtual Python
├── .gitignore # Arquivo gitignore
├── requirements.txt # Dependências do projeto
└── README.md # Este arquivo
Este projeto consome a API oficial do TabNews. A documentação completa da API pode ser encontrada em:
Principais endpoints utilizados:
/contents- Listar conteúdos/contents/:username/:slug- Obter conteúdo específico/contents/:username/:slug/children- Obter comentários de um conteúdo/users/:username- Obter informações de um usuário
-
Clone o repositório e instale as dependências conforme as instruções acima.
-
Instale as dependências de desenvolvimento:
pip install pytest pytest-flask -
Execute os testes:
pytest
Contribuições são bem-vindas! Para contribuir:
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-funcionalidade) - Faça commit de suas alterações (
git commit -m 'Adiciona nova funcionalidade') - Faça push para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para mais detalhes.
- TabNews por disponibilizar uma API aberta
- A comunidade Python e Flask pela excelente documentação