Sincronario
Ferramenta que automatiza a conversão do calendário gregoriano para a Sincronia Galáctica das 13 Luas.
O conceito de tempo no mundo moderno é ditado quase exclusivamente pelo calendário gregoriano, um sistema de doze meses assimétricos e irregulares. Essa estrutura, embora seja o padrão global, carece de uma harmonia geométrica ou astronômica precisa. Por outro lado, a Sincronia das 13 Luas propõe um paradigma alternativo: um calendário perpétuo baseado em 13 ciclos de exatamente 28 dias (364 dias), mais um “Dia Fora do Tempo” para sincronizar com o ano solar.
O problema que abordei neste projeto não é filosófico, mas computacional: como traduzir e sincronizar dinamicamente a irregularidade do modelo gregoriano com a estrutura determinística e cíclica do modelo das 13 Luas, mantendo um desempenho web ideal e acessibilidade universal?
A utilidade real desta ferramenta está em automatizar esse cálculo complexo. Ao inserir ou detectar uma data, o sistema mapeia a coordenada temporal gregoriana em relação a uma data de referência estática (26 de julho de 2013, Kin 164) e calcula imediatamente o Kin correspondente, seu Selo Solar, seu Tom Galáctico, a Lua, o dia específico dessa lua e o Plasma Radial.
O fluxo de trabalho é direto:
- O usuário acessa a aplicação web.
- O sistema captura a data local atual.
- O motor de lógica de negócio executa o algoritmo de transformação.
- A interface retorna um cartão de identidade temporal (Kin) e sua posição na matriz das 13 luas. Isso permite que pessoas não familiarizadas com a matemática da sincronia obtenham sua coordenada temporal de forma instantânea e compreensível.
Análise Arquitetural Aprofundada (Perspectiva Técnica)
Como arquiteto desta solução, priorizei a velocidade de entrega, uma pegada mínima no lado do cliente e uma separação clara entre a lógica de domínio e a camada de apresentação.
Arquitetura Geral e Padrões de Design
O projeto está estruturado como uma aplicação monolítica leve sob o paradigma de Server-Side Rendering (SSR) com Astro.
A decisão técnica de usar SSR em vez de um site estático (SSG) baseia-se na natureza da aplicação: o conteúdo principal é inerentemente dependente do tempo (new Date()). Ao renderizar no servidor (neste caso, no Edge ou em Serverless Functions por meio do adaptador da Vercel), garanto que o cliente receba HTML puro com a data pré-calculada, eliminando tempos de carregamento devidos à execução de JavaScript no navegador e melhorando o SEO e o First Contentful Paint (FCP).
O padrão arquitetural subjacente segue uma abordagem de Separação de Responsabilidades:
- Camada de Domínio/Lógica (
src/lib/): Contém algoritmos puros, independentes do framework. - Camada de Apresentação (
src/pages/esrc/components/): Responsável exclusivamente por consumir a camada de domínio e estruturar a marcação.
Modelagem de Dados e Lógica de Negócio
O núcleo do sistema é a lógica de sincronização. Projetei a entidade principal DreamspellDate para ser imutável depois de calculada. Não há gerenciamento de estado reativo global, porque a aplicação, em seu fluxo principal atual, calcula e expõe um instantâneo estático do tempo.
O motor de regras trata casos-limite matemáticos particulares da sincronia:
- O início do ano é invariavelmente ancorado no dia 26 de julho gregoriano.
- O dia 25 de julho é abstraído do fluxo lunar padrão, sendo tratado como o Dia Fora do Tempo.
- O dia 29 de fevereiro (dia bissexto gregoriano) é isolado da contagem regular de kins, tratado funcionalmente como
0.0 Hunab Ku, o que evita o deslocamento do calendário perpétuo.
flowchart TD
A[Data Gregoriana Alvo] --> B{É 29 de fevereiro?}
B -- Sim --> C[Retornar Objeto Hunab Ku]
B -- Não --> D{É 25 de julho?}
D -- Sim --> E[Atribuir Dia Fora do Tempo]
D -- Não --> F[Calcular Dias desde o Início do Ano]
F --> G[Calcular Índice da Lua e Dia da Lua]
E --> H[Calcular Kin Base]
C --> END[Fim do Cálculo]
G --> H
H --> I[Calcular Deslocamento a partir da Data de Referência]
I --> J[Determinar Selo Solar 1-20]
I --> K[Determinar Tom Galáctico 1-13]
I --> L[Determinar Plasma Radial 1-7]
J --> M[Construir Entidade DreamspellDate]
K --> M
L --> M
E --> M
M --> END
A entidade de dados resultante está estruturada da seguinte forma:
classDiagram
class DreamspellDate {
+Date gregorianDate
+number kin
+string seal
+number sealIndex
+string tone
+number toneIndex
+string moon
+number moonIndex
+number dayOfMoon
+string plasma
+boolean isDayOutOfTime
+string color
}
Stack Tecnológico
O ecossistema de ferramentas foi selecionado estritamente por sua eficiência, tipagem forte e experiência de desenvolvimento.
| Tecnologia | Papel Arquitetural | Justificativa Técnica |
|---|---|---|
| Astro | Meta-framework e Renderização | Oferece SSR rápido e envia Zero-JS por padrão. Ideal para conteúdo altamente estático ou dependente da requisição ao servidor. |
| TypeScript | Tipagem Estática | Garante a integridade das entidades de domínio (DreamspellDate) e previne erros em operações matemáticas complexas com datas. |
| Tailwind CSS | CSS Utility-First | Permite um design ágil diretamente nos componentes, sem inflar arquivos CSS globais. Funciona em sinergia com o bundler Vite. |
| Vite PWA | Configuração de Progressive Web App | Implementa recursos offline e instalação nativa de forma integrada ao processo de build do Astro. |
| Vercel Adapter | Implantação e Infraestrutura | Facilita a execução da função SSR gerada pelo Astro diretamente na infraestrutura Serverless da Vercel. |
A combinação do Astro em modo SSR, de um domínio lógico fortemente tipado em TypeScript e de uma interface desacoplada forma uma solução de alto desempenho. O sistema abstrai a complexidade algorítmica da conversão de calendários, encapsulando a lógica matemática em funções puras e entregando um produto final que responde em milissegundos com uma pegada de execução mínima no cliente.
Arraste para mover o diagrama. Use + e − para dar zoom, as setas para movê-lo e 0 para redefinir a visualização.
Vamos trabalhar juntos
Engenheiro de Software e desenvolvedor Senior Full-Stack, trabalho remotamente a partir de Santa Cruz, Bolívia. Aberto a novas oportunidades.