Aplicação web completa para gestão de dashboards financeiros com autenticação, rate limit via Redis e persistência em Cloudflare D1.
- Docker e Docker Compose instalados.
- Python 3.11+ (para rodar localmente sem Docker).
- Conta na Cloudflare (D1) e na Financial Modeling Prep (FMP).
- Copie o arquivo de exemplo:
cp .env.example .env
- Preencha o
.envcom suas credenciais do Cloudflare D1 e FMP.
Suba a aplicação e o Redis:
docker-compose up --buildAcesse em: http://localhost:8000
-
Crie um ambiente virtual e instale dependências:
python -m venv venv source venv/bin/activate # Linux/Mac # ou venv\Scripts\activate no Windows pip install -r requirements.txt
-
Tenha um Redis rodando localmente (ou altere
REDIS_URLno .env). -
Inicie a aplicação:
uvicorn app.main:app --reload
Ou usando Python diretamente:
python app/main.py
- Registro: Cria usuário pendente de aprovação.
- Login: Token JWT em cookie HttpOnly + Rate Limit (5 tentativas/15min).
- Logout: Limpa o cookie.
- Login com credenciais definidas no
.env(Padrão:admin@admin.com/admin123). - Aprovar usuários recém-cadastrados.
- Acesso restrito a usuários aprovados.
- Visualização de gráficos de ativos (Ações, Forex, Crypto).
- Dados obtidos da API externa (FMP) e cacheados no D1 (1 atualização/dia).
/app
/main.py # Ponto de entrada
/d1_client.py # Cliente HTTP D1
/rate_limit.py # Lógica Redis
/routers # Admin, Auth, Dashboard
/repositories # Camada de acesso a dados
/services # Lógica de negócio
/templates # HTML Jinja2
/static # CSS/JS
Dockerfile
docker-compose.yml