Skip to content

Repository files navigation

🌑🌕 Equinoxer

Theme Framework Language Search License CI

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.


🎯 Funcionalidades Principais

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).

🏗️ Arquitetura do Sistema

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
Loading

🚀 Como Executar

1. Desenvolvimento Local (Recomendado)

Requisitos

  • PHP 8.3+ (extensões: ctype, iconv, intl)
  • Composer
  • Symfony CLI (ou servidor embutido do PHP)

Instalação e Execução

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 public

Acesse em: http://localhost:8000


2. Com Docker (1 Container Único)

# Suba o container da aplicação
docker compose up -d

# Acesse em http://localhost:8000

🔄 Atualização dos Dados de Warframe

A aplicação consome 3 arquivos JSON localizados no diretório data/:

  • Primes_Normalized.json
  • Relics_Normalized.json
  • missionRewards.json

Para atualizar a base com os dados mais recentes da API warframestat.us:

php bin/console app:update-data

Automação via GitHub Actions

O 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.


📚 Estrutura do Projeto

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

🧪 Testes e Qualidade de Código

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

📸 Screenshots

Home Page
Página Inicial
Primes List
Lista de Primes
Prime Details
Detalhes do Prime
Relics List
Lista de Relíquias
Relic Details
Detalhes da Relíquia
Update Data
Atualização de Dados Sucesso

Desenvolvido com 💖 por Eduardo Lôbo Moreira.
Inspirado pelo Warframe Equinox Prime.

About

Farming optimization platform for Warframe developed with PHP 8.2+ and Symfony 7. Includes drop efficiency calculations and automatic integration with the WarframeStatus API.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages