Skip to content

Documental-xyz/Core

Repository files navigation

Documental 2.0

Plataforma open-source para criação de sites estáticos focados em geo-narrativas e documentação de direitos humanos

Use este modelo Abrir no Gitpod Abrir no StackBlitz Deploy no Cloudflare

🚀 Tecnologias

Astro Sveltia CMS Svelte TypeScript JavaScript MapBox Vite SCSS

📖 Sobre o Projeto

Documental 2.0 é uma plataforma open-source para criação de sites estáticos com foco em geo-narrativas para denúncias de violações de direitos humanos. Desenvolvida com tecnologias modernas como Astro e Sveltia CMS, oferece uma solução completa para organizações, jornalistas e ativistas criarem narrativas visuais impactantes com mapas interativos, componentes modulares e sistema de gerenciamento de conteúdo intuitivo. É a base tecnológica do portal Documenta.xyz.

Motivação

O projeto nasceu da necessidade de democratizar a criação de narrativas digitais que combinam dados geográficos com storytelling para documentar violações de direitos humanos. Muitas organizações e jornalistas independentes enfrentam barreiras técnicas para criar sites que apresentem suas investigações de forma visualmente impactante e geograficamente contextualizada.

A plataforma resolve esse problema oferecendo uma solução técnica robusta, mas acessível, que permite a criação de sites estáticos de alta performance sem necessidade de conhecimento técnico avançado. O sistema de componentes modulares facilita a construção de narrativas complexas, enquanto a integração com MapBox possibilita a criação de mapas interativos sofisticados.

O diferencial está na especialização para geo-narrativas de direitos humanos, oferecendo componentes específicos como linhas do tempo, gráficos de dados, galerias de evidências, comparadores de imagens e mapas com layers customizáveis. Tudo isso mantendo os princípios de código aberto, performance otimizada e facilidade de deploy em plataformas gratuitas como GitHub Pages e Cloudflare Pages.

✨ Principais Funcionalidades

  • 🗺️ Mapas Interativos Avançados - Integração completa com MapBox, layers customizáveis e filtros dinâmicos
  • 🎨 30+ Componentes Modulares - Timeline, gráficos, galerias, comparadores, cards e muito mais
  • 📝 CMS Visual Integrado - Sveltia CMS para edição de conteúdo sem necessidade de código
  • 🎭 Sistema de Temas Dinâmico - Customização completa de cores, fontes e espaçamentos
  • 🌐 Multilíngue Nativo - Suporte a português, inglês e espanhol
  • Performance Otimizada - Sites estáticos ultra-rápidos com Astro
  • 📱 Totalmente Responsivo - Adaptação perfeita para todos os dispositivos
  • 🎬 Sistema de Animações - Animações suaves e interações avançadas
  • 🔧 Altamente Customizável - Configuração flexível para diferentes tipos de narrativa

🏗️ Arquitetura (JAMStack)

O Documental 2.0 segue a arquitetura JAMStack (JavaScript, APIs, Markup) para máxima performance e segurança:

  • JavaScript: Astro como framework principal com componentes Svelte para interatividade
  • APIs: Integração com MapBox API para mapas e Sveltia CMS para gerenciamento de conteúdo
  • Markup: Geração de sites estáticos otimizados com carregamento ultra-rápido

Estrutura do Projeto

src/
├── components/          # 30+ componentes reutilizáveis
├── layouts/            # Layouts para páginas e componentes
├── content/            # Conteúdo gerenciado pelo CMS
├── assets/             # Estilos SCSS e scripts
└── pages/              # Páginas dinâmicas

public/
├── admin/              # Configuração do Sveltia CMS
└── uploads/            # Arquivos de mídia

🎯 Diferenciais e Aplicações

Diferenciais Únicos

  • Especialização em Direitos Humanos - Componentes e workflows otimizados para documentação de violações
  • Geo-narrativas Avançadas - Sistema completo para storytelling baseado em localização
  • Zero Configuração - Deploy imediato em plataformas gratuitas
  • CMS Visual Poderoso - Edição intuitiva sem conhecimento técnico
  • Performance Excepcional - Sites que carregam em menos de 2 segundos

Aplicações Práticas

  • 📰 Jornalismo Investigativo - Reportagens com mapas e dados interativos
  • 🏛️ ONGs e Organizações - Relatórios de impacto e campanhas de conscientização
  • 🎓 Pesquisa Acadêmica - Apresentação de estudos com visualizações geográficas
  • 🌍 Ativismo Digital - Campanhas de denúncia e mobilização social
  • 📊 Transparência Pública - Dashboards de dados governamentais e sociais

🚀 Como Usar e Publicar

Via GitHub Pages

  1. Use este repositório como template
  2. Configure o GitHub Pages nas configurações do repositório
  3. Seus sites serão publicados automaticamente em https://seuusuario.github.io/seurepositorio

Via Cloudflare Pages

  1. Conecte seu repositório ao Cloudflare Pages
  2. Configure o build command: npm run build
  3. Diretório de output: dist
  4. Deploy automático a cada commit

Deploy Manual

npm run build
# Upload da pasta 'dist' para qualquer servidor web

💻 Desenvolvimento

Via Gitpod (Recomendado)

Abrir no Gitpod

Ambiente de desenvolvimento completo no navegador, sem necessidade de instalação local.

Via StackBlitz

Abrir no StackBlitz

Editor online com preview em tempo real.

Desenvolvimento Local

Pré-requisitos

  • Node.js 18+
  • npm ou yarn

Instalação

# Clone o repositório
git clone https://github.com/thiagopaixao/documentalxyz.git
cd documentalxyz

# Instale as dependências
npm install

# Rode os scripts de geração 
npm run build

# Inicie o servidor de desenvolvimento
npm run dev

Comandos Disponíveis

Comando Ação
npm install Instala as dependências
npm run dev Inicia servidor local em localhost:4321
npm run build Gera build de produção em ./dist/
npm run preview Preview local do build de produção
npm run serve Serve o build em localhost:3000

Configuração do CMS

  1. Acesse /admin ou /admin/install.html no seu site local
  2. Configure a autenticação GitHub nas configurações do Sveltia
  3. Edite o conteúdo através da interface visual

🎨 Componentes Disponíveis

Componentes de Conteúdo

  • Text - Textos formatados com Markdown
  • ImageBlock - Imagens com legendas
  • VideoEmbed - Vídeos do YouTube/Vimeo
  • HtmlEmbed - Código HTML customizado
  • Pullquote - Citações destacadas

Componentes de Layout

  • Columns - Layouts em colunas responsivas
  • Group - Agrupamento de componentes com temas
  • ColumnSticky - Conteúdo fixo durante scroll
  • Spacer - Espaçamentos customizáveis

Componentes de Dados

  • ChartBar - Gráficos de barras
  • ChartPercentage - Gráficos de pizza
  • BigNumbers - Números destacados
  • Timeline - Linhas do tempo interativas

Componentes Interativos

  • Gallery - Galerias de imagens
  • Slider - Carrosséis de conteúdo
  • Compare - Comparador de imagens
  • Cards - Cards informativos
  • CardsCall - Cards com call-to-action

Componentes de Mapa

  • Map - Container principal de mapas
  • MapBox - Configuração do MapBox
  • MapView - Views específicas do mapa

📋 Changelog

v0.1.0 - Setup Inicial

  • ✨ Configuração inicial do Astro
  • ✨ Estrutura básica de componentes
  • ✨ Workflow do GitHub Actions
  • 🔧 Configurações de build e desenvolvimento

v0.1.1 - Ajustes Iniciais

  • 🐛 Correção na importação do App.js
  • 🎨 Ajuste nas fontes padrão do conteúdo
  • 🔧 Melhorias na configuração inicial

v0.2.0 - Integração Sveltia CMS

  • ✨ Instalação e configuração do Sveltia CMS
  • ✨ Implementação de widgets personalizados
  • ✨ Layouts para componentes
  • ✨ Sistema de gerenciamento de conteúdo
  • 📝 Configuração de collections e campos

v0.2.1 - Correções Sveltia

  • 🐛 Correção de erro com imagens externas
  • 🔧 Remoção de seções desnecessárias
  • 🔧 Desabilitação do preview no Sveltia
  • 🎨 Ajustes na interface do CMS

v0.2.2 - Melhorias CMS

  • 🔧 Ajuste nos parâmetros de seleção de imagens
  • 🔧 Implementação de roteamento dinâmico
  • 📝 Criação de conteúdo exemplo para home page

v0.3.0 - Integração MapBox

  • ✨ Implementação da API MapBox
  • ✨ Componentes Map, MapBox e MapView
  • ✨ Sistema básico de layers e filtros
  • ✨ Configuração do Sveltia para mapas
  • 🗺️ Suporte a geo-narrativas interativas

v0.3.1 - Correções MapBox

  • 🐛 Correção nos campos latitude e longitude
  • 🐛 Ajuste na verificação de valores de array
  • 🐛 Correção de erro undefined em valores nulos
  • 🔧 Melhor tratamento de dados geográficos

v0.3.2 - Filtros Avançados

  • ✨ Novos filtros para Map Views
  • ✨ Suporte a números float no MapBox
  • 🔧 Reorganização dos campos do MapBox
  • ⚡ Melhorias de performance nos mapas

v0.3.3 - Otimizações MapBox

  • 🐛 Correções na performance do MapBox
  • 🔧 Melhor organização dos campos por prioridade
  • 📱 Ajustes para dispositivos móveis
  • 🎨 Melhorias na interface de configuração

v0.4.0 - Componentes Avançados

  • ✨ Componente Timeline interativo
  • ✨ Gráficos de barras e percentuais
  • ✨ Sistema de galeria de imagens
  • ✨ Componente de comparação de imagens
  • ✨ Cards e elementos informativos

v0.4.1 - Correções Timeline

  • 🐛 Correção na altura da linha vertical do timeline
  • 🔧 Ajustes responsivos no timeline
  • 🎨 Melhorias visuais nos bullets

v0.4.2 - Ajustes Gráficos

  • 🐛 Correção no cálculo de percentuais nos gráficos
  • 🔧 Remoção de valores padrão desnecessários
  • 🎨 Melhorias nas cores dos gráficos

v0.5.0 - Sistema de Animações

  • ✨ Implementação de animações de revelação
  • ✨ ScrollObserver para interações
  • ✨ Animações customizadas por componente
  • ✨ Barra de progresso de scroll
  • 🎬 Sistema completo de animações suaves

v0.5.1 - Correções Animações

  • 🐛 Correção nas animações de revelação da galeria
  • 🔧 Ajustes no sistema de scroll
  • ⚡ Otimizações de performance nas animações

v0.5.2 - Melhorias ScrollObserver

  • 🔧 Refatoração do ScrollObserver
  • 🔧 Melhor detecção de elementos móveis
  • 🔧 Padronização de labels e variáveis

v0.6.0 - Temas e Multilíngue

  • ✨ Sistema de customização de temas
  • ✨ Suporte a múltiplos idiomas (PT, EN, ES)
  • ✨ Customização de cores por página
  • ✨ Fontes personalizáveis via Google Fonts
  • 🎨 Sistema completo de identidade visual

v0.6.1 - Correções Temas

  • 🐛 Correção na implementação de fontes customizadas
  • 🔧 Ajustes nas cores auxiliares
  • 🎨 Melhorias na aplicação de temas

v0.6.2 - Ajustes Visuais

  • 🔧 Correção na implementação de cores auxiliares
  • 🔧 Ajustes nos blocos de cards
  • 🎨 Melhorias gerais na interface

v0.7.0 - Otimizações Mobile

  • ✨ Parâmetros específicos para mobile no MapBox
  • ✨ Melhorias responsivas em todos os componentes
  • 📱 Otimizações para dispositivos móveis
  • ⚡ Melhorias gerais de performance

v0.7.1 - Correções Mobile

  • 🐛 Correção nos parâmetros mobile do MapBox
  • 📱 Ajustes nas legendas mobile
  • 🔧 Melhor tratamento de floating text

v0.7.2 - Ajustes Responsivos

  • 🔧 Testes e ajustes em componentes
  • 🔧 Melhorias na estrutura de arquivos
  • 📱 Otimizações responsivas adicionais

v0.8.0 - MapBox Avançado

  • ✨ Sistema avançado de layers e filtros
  • ✨ Melhor organização dos campos do MapBox
  • ✨ Novos widgets para configuração
  • 🗺️ Recursos avançados de geo-narrativa
  • ⚡ Otimizações significativas de performance

v0.8.1 - Correções Layers

  • 🐛 Correção nos filtros de layers
  • 🔧 Melhorias na aplicação de filtros
  • 🔧 Ajustes nos campos do MapBox para melhor organização

v0.8.2 - Otimizações Finais MapBox

  • 🔧 Organização final dos campos do MapBox
  • ⚡ Melhorias de performance significativas
  • 🔧 Ajustes para melhor experiência no Sveltia

v0.9.0 - Preparação Produção

  • ✨ Sistema de ativação/desativação de animações
  • ✨ Melhorias finais na interface
  • ✨ Implementação de ícones customizáveis
  • 📝 Documentação completa
  • 🔧 Otimizações finais para produção

v0.9.1 - Ajustes Finais

  • 🔧 Atualização de conteúdo
  • 🐛 Correções em campos mobile e legendas
  • 🔧 Remoção acidental do App.js corrigida

v0.9.2 - Release Candidate

  • 🔧 Correções finais de configuração
  • 📝 Atualização final de conteúdo
  • ✅ Preparação para release estável

🗺️ Roadmap

🎯 Próximas Versões

v1.0.0 - Versão final estável

  • Limpeza completa do repositório
  • Remoção de dependências não utilizadas
  • Correção de vulnerabilidades de segurança de dependências
  • Instalação do Sveltia como dependência
  • Customização de ícones do CMS
  • Sistema de blog integrado
  • Worker para MapBox (proteção de token)
  • MapBox opcional por página
  • Configuração de não versionamento da pasta public/upload no repositório git

Backlog

  • Documentação completa em inglês, português e espanhol
  • Melhorias na experiência de edição
  • Templates pré-configurados
  • Tutoriais interativos
  • Migração para Astro 5
  • Novos componentes de visualização
  • Sistema de plugins/módulos
  • API para integrações externas
  • Implementação de multilingagem em português, inglẽs e espanhol
  • Solução completa para edição no StackBlitz

💡 Ideias Futuras

  • 🤖 Wizard para deploy automático no Cloud Flare ou GitHub Pages
  • 🤖 Integração com IA para geração de conteúdo
  • 📊 Dashboard de analytics integrado
  • 🔐 Sistema de autenticação avançado
  • 🌍 Suporte a mais idiomas
  • 📱 App mobile companion

👥 Créditos e Colaboradores

Desenvolvimento Principal

  • Agência Autônoma - Idealização e gerenciamento do projeto
  • Thiago Paixão - Desenvolvimento do backe-end e arquitetura do projeto
  • Bruno Berken (Studio Atonal) - Desenvolvimento do front-end e sistema de animações

Organizações Parceiras

  • MediaLab.UFRJ

Inspiração e Base

Baseado no trabalho original do Documenta.xyz e nas necessidades reais de organizações de direitos humanos.

Publishing

To publish a new version of @documental-xyz/core to npm:

  1. Ensure NPM_TOKEN is set in GitHub repository secrets
  2. Update version in package.json
  3. Create and push a tag:
    git tag v0.1.0
    git push --tags
  4. The publish.yml workflow will run tests, build, and publish automatically

📄 Licença

Este projeto está licenciado sob a GPL 2.0 License - veja o arquivo LICENSE para detalhes.

Uso Comercial

✅ Permitido uso comercial
✅ Modificação e distribuição
✅ Uso privado
✅ Sem garantias


Documental 2.0 - Democratizando a criação de geo-narrativas para direitos humanos

🌐 Website📧 Contato

About

Resources

Stars

0 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors