Uma plataforma leve e otimizada para rastreamento de drops e relíquias de Warframe.
Equinoxer é uma aplicação web desenvolvida em PHP 8.3+ / Symfony 7.3 + Twig, criada para fornecer aos jogadores de Warframe uma maneira rápida, limpa e eficiente de planejar seus farms de itens Prime. A aplicação calcula o fator de eficiência de drop que indica a missão e rotação mais eficientes para farmar uma relíquia específica com base na probabilidade e tempo médio de ciclo.
A interface utiliza uma estética moderna "Sci-Fi" inspirada na identidade visual do jogo e no Warframe Equinox Prime, focando em usabilidade, simplicidade e máxima performance.
| Feature | Tecnologia / Implementação | Descrição |
|---|---|---|
| Busca de Relíquias e Primes | uFuzzy (Client-Side) |
Filtragem instantânea no browser com tolerância a erros e typos em tokens curtos (Axi, Neo, Forma, Lith). Sem backend de busca. |
| Cálculo de Eficiência de Drop | DropEfficiencyCalculator |
Algoritmo que calcula a probabilidade acumulada por ciclo e determina a missão e rotação ideais de farm. |
| Primes & Relics Tracker | JsonLoader |
Catálogo completo em JSON local (data/) sem necessidade de banco de dados relacional ou search engines pesadas. |
| Atualização de Dados | Console Command |
Comando CLI (php bin/console app:update-data) que sincroniza diretamente os arquivos JSON com a API oficial da comunidade (warframestat.us). |
O fluxo de dados segue uma estrutura MVC enxuta do Symfony, lendo dados diretamente de arquivos JSON com cache em memória por request:
graph LR
User["Usuário"] --> Browser["Browser (HTML/CSS + uFuzzy)"]
Browser --> Controller["Symfony Controller"]
Controller --> Service["Services (JsonLoader / WarframeLoot / DropEfficiencyCalculator)"]
Service --> JSON["JSON Storage (data/)"]
Controller --> Twig["Twig Templates"]
Twig --> Browser
- PHP 8.3+ (extensões:
ctype,iconv,intl) - Composer
- Symfony CLI (ou servidor embutido do PHP)
git clone https://github.com/EduLoboM/Equinoxer.git
cd Equinoxer
# Instale as dependências
composer install
# Inicie o servidor com Symfony CLI
symfony server:start
# Ou inicie com o servidor embutido do PHP
php -S 127.0.0.1:8000 -t publicAcesse em: http://localhost:8000
# Suba o container da aplicação
docker compose up -d
# Acesse em http://localhost:8000A aplicação consome 3 arquivos JSON localizados no diretório data/:
Primes_Normalized.jsonRelics_Normalized.jsonmissionRewards.json
Para atualizar a base com os dados mais recentes da API warframestat.us:
php bin/console app:update-dataO repositório inclui o workflow .github/workflows/update-data.yml que roda automaticamente todo dia 1 de cada mês (às 00:00 UTC), atualizando os arquivos JSON e fazendo commit das novidades. Também pode ser disparado manualmente pela aba Actions do GitHub.
src/
├── Command/
│ └── UpdateDataCommand.php # Atualiza os JSONs locais a partir da API
├── Config/
│ └── IgnoredResources.php # Lista de recursos/componentes ignorados
├── Controller/
│ ├── HomeController.php # Página inicial e status
│ ├── PrimeController.php # Listagem e detalhes de Primes
│ ├── RelicController.php # Detalhes de Relíquias e drops
│ └── RelicListController.php # Listagem de Relíquias
├── DTO/
│ └── DropEfficiencyResult.php # Resultado tipado do cálculo de eficiência
├── Service/
│ ├── DropEfficiencyCalculator.php # Algoritmo de cálculo de eficiência de drop
│ ├── JsonLoader.php # Leitura e cache em memória dos JSONs
│ ├── PrimeService.php # Agregação de Primes, componentes e relíquias
│ └── WarframeLoot.php # Mapeamento e lookup de missões por relíquia
└── ValueObject/
└── WarframeItemName.php # Normalização e parsing de nomes/tiers de relíquias
A suíte de testes utiliza PHPUnit com testes unitários focados em serviços e cálculos, e WebTestCase para verificação das rotas HTML:
# Executar todos os testes
php bin/phpunit
# Análise estática com PHPStan (Nível 6)
composer analyse
# Verificação de padrões de código com PHP-CS-Fixer
vendor/bin/php-cs-fixer fix --dry-run --diff
Página Inicial |
Lista de Primes |
Detalhes do Prime |
Lista de Relíquias |
Detalhes da Relíquia |
Atualização de Dados Sucesso |
Desenvolvido com 💖 por Eduardo Lôbo Moreira.
Inspirado pelo Warframe Equinox Prime.





