Uma API divertida e um frontend moderno para gerar frases aleatórias de diferentes categorias
🚀 Demo • 📁 Instalação • 🎨 Frontend • 📡 API
O Gerador de Frases Aleatórias é uma aplicação web que combina uma API Flask robusta com um frontend moderno e interativo. Oferece quatro categorias distintas de frases para diferentes ocasiões e humores!
| Categoria | Endpoint | Descrição | Exemplo |
|---|---|---|---|
| 🚫 Não's Criativos | /naos |
Formas elegantes e divertidas de dizer "não" | "Meu comitê de paz interior vetou essa ideia por unanimidade." |
| 🔬 Ciência & Fatos | /curiosidades |
Curiosidades científicas e fatos históricos | "Um raio é cinco vezes mais quente que a superfície do sol." |
| 🎮 Citações Geek | /frases_geek |
Frases icônicas de filmes, séries e jogos | "Que a Força esteja com você." - Obi-Wan Kenobi (Star Wars) |
| 😏 Insultos Sutis | /insultis |
Críticas elegantes e sarcasmo refinado | "Admiro a sua coragem em ser tão... autêntico." |
| 😔 (des)Motivacionais | /desmotivacionais |
Frases para quando você precisa de um pouco de realidade | "Dê o seu melhor — e descubra que nem isso adianta." |
| 🌞 Bom dia pra quem? | /bomdia |
Frases para começar o dia bem... ou não | "Bom dia para você que acordou pronto para nada." |
- Acesse a página principal:
http://localhost:5000 - Clique em qualquer um dos 4 botões temáticos
- Aproveite as frases aleatórias! 🎉
# Exemplos de requisições
curl http://localhost:5000/naos
curl http://localhost:5000/curiosidades
curl http://localhost:5000/frases_geek
curl http://localhost:5000/insultis
curl http://localhost:5000/desmotivacionais
curl http://localhost:5000/bomdia- Python 3.8+
- pip (gerenciador de pacotes Python)
-
Clone o repositório
git clone https://github.com/seu-usuario/gerador-frases-aleatorias.git cd gerador-frases-aleatorias -
Crie um ambiente virtual (recomendado)
python -m venv venv # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate
-
Instale as dependências
pip install -r requirements.txt
-
Estruture os arquivos de dados
projeto/ ├── app.py ├── templates/ │ └── index.html ├── static/ │ └── css | | └── styles.css │ └── images | | └── apple-touch-icon.png | | └── favicon-16x16.png | | └── favicon-32x32.png | | └── og-image.png │ └── js | └── app.js └── data/ ├── naos.json ├── curiosidades.json ├── frases_geek.json └── insultis.json └── desmotivacionais.json └── bomdia.json -
Execute a aplicação
python app.py
-
Acesse no navegador
http://localhost:5000
Para rodar a aplicação usando Docker/Podman: (substitua a palavra "docker" por "podman" nos comandos abaixo)
-
Construa a imagem Docker:
docker build -t frases-aleatorias -f Containerfile . -
Execute o container:
docker run -d -p 5000:5000 --name frases-api frases-aleatorias
-
Acesse a aplicação:
http://localhost:5000
Certifique-se de que o arquivo
requirements.txte todos os arquivos necessários estejam no diretório do projeto antes de construir a imagem.
O frontend foi desenvolvido com foco na experiência do usuário, oferecendo:
- Design Glassmorphism: Efeito de vidro fosco moderno
- Gradientes Animados: Fundo que muda de cor suavemente
- Partículas Flutuantes: Elementos visuais que dão vida à interface
- Animações Suaves: Transições elegantes em todos os elementos
- ✅ Responsivo: Funciona perfeitamente em desktop e mobile
- ✅ Loading States: Feedback visual durante o carregamento
- ✅ Tratamento de Erros: Mensagens amigáveis para problemas
- ✅ Contador: Acompanha quantas frases foram geradas
- ✅ Efeitos Hover: Interações visuais nos botões
Cada categoria possui sua própria identidade visual
Todos os endpoints possuem limitação de requisições para evitar abuso:
- Limite Global: 200/dia, 50/hora
- Limite por Endpoint: 5/segundo, 10/minuto
| Endpoint | Método | Resposta | Tipo |
|---|---|---|---|
/naos |
GET | Frase de recusa criativa | text/plain |
/curiosidades |
GET | Curiosidade científica | text/plain |
/frases_geek |
GET | Citação formatada com autor e fonte | text/plain |
/insultis |
GET | Insulto sutil ou sarcástico | text/plain |
/desmotivacionais |
GET | Motivadas ao fracasso | text/plain |
/bomdia |
GET | Para quem não acorda feliz | text/plain |
200: Sucesso429: Limite de requisições excedido500: Erro interno (arquivo não encontrado, JSON inválido, etc.)
- Flask: Framework web minimalista e flexível
- Flask-Limiter: Controle de rate limiting
- Python JSON: Manipulação de dados estruturados
- HTML5: Estrutura semântica moderna
- CSS3: Animações, gradientes e efeitos visuais
- Vanilla JavaScript: Funcionalidades interativas (sem dependências)
- Fetch API: Requisições assíncronas para a API
- JSON: Armazenamento estruturado das frases
- UTF-8: Suporte completo a caracteres especiais
- Edite os arquivos JSON em
/data/ - Mantenha a estrutura existente:
// Para naos.json, desmotivacionais.json e bomdia.json ["Sua nova frase aqui"] // Para science_facts.json [{"fact": "Seu fato científico aqui"}] // Para geek_quotes.json [{"quote": "Citação", "character": "Personagem", "source": "Fonte"}] // Para insultis.json [{"insult": "Seu insulto sutil aqui"}]
Edite as configurações no app.py:
limiter = Limiter(
default_limits=["500 per day", "100 per hour"], # Ajuste aqui
# ...
)
@app.route('/endpoint')
@limiter.limit("10 per second;20 per minute") # Ou aquiO CSS está separado no diretório static/css para facilitar modificações. Principais variáveis para customizar:
- Cores dos botões: Classes
.btn-naos,.btn-curiosidades, etc. - Animações de fundo: Keyframe
@backgroundShift - Efeitos: Propriedades
backdrop-filter,box-shadow
Contribuições são sempre bem-vindas! Para contribuir:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Adiciona MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
- 🎯 Novas categorias de frases
- 🌍 Suporte a múltiplos idiomas
- 📊 Dashboard com estatísticas de uso
- 🔔 Sistema de favoritos
- 🎨 Novos temas visuais
- 📱 App mobile nativo
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Este projeto foi criado como uma forma divertida de praticar desenvolvimento web full-stack, combinando uma API robusta com um frontend moderno e interativo.
A ideia surgiu da necessidade de ter respostas criativas e elegantes para diferentes situações do dia a dia, desde recusar convites até quebrar o gelo em conversas!
Este projeto foi inspirado no repositório no-as-a-service, criado por hotheadhacker.
Foi reescrito completamente em Python, com frases traduzidas para o português e novos elementos adicionados.
⭐ Se você gostou do projeto, deixe uma estrela! ⭐
Feito com 🤘 e muito ☕