Projeto editorial brasileiro que analisa criticamente o Soft Power e o papel da cultura pop na manutenção da hegemonia global.
A partir de música, moda, cinema, literatura e cultura digital, o Interpop investiga como determinados atores exercem influência política de forma indireta no sistema internacional.
| Camada | Tecnologia |
|---|---|
| Frontend | React 19 + TypeScript + Vite + React Router 7 |
| Backend | Django 5 + Django REST Framework |
| Toolchain Python | uv (substitui pip + venv) |
| Banco | SQLite (dev) · PostgreSQL (prod) |
| Auth | JWT em cookie httpOnly + django-axes (brute-force) + roles admin/editor/user |
| Charts | Recharts (dashboard de métricas admin) |
| SMTP Gmail (welcome + notificações de artigo + alertas de moderação) | |
| SEO | Sitemap.xml + robots.txt dinâmicos + Open Graph middleware para crawlers sociais |
| Hospedagem (planejada) | Hostinger KVM 1 — Nginx + gunicorn + systemd + Let's Encrypt |
Pré-requisitos: Node ≥ 20.19 e uv instalado.
# 0. Instalar uv (uma vez por máquina) — gerencia Python + deps + venv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 1. Clonar
git clone git@github.com:GabeMarques-Intetsu/interpop.git
cd interpop
# 2. Backend (terminal 1) — uv resolve Python 3.12 + .venv + deps em ~3s
cd backend
uv sync # cria .venv com tudo do uv.lock
cp .env.example .env # ajustar SECRET_KEY, EMAIL_*, etc.
uv run python manage.py migrate
uv run python manage.py createsuperuser
uv run python manage.py runserver # http://127.0.0.1:8000
# 3. Frontend (terminal 2)
cd .. # voltar à raiz
npm install
npm run dev # http://localhost:5173Single-source-of-truth para skills locais: após clonar, criar symlinks para o Claude Code descobrir as skills do projeto (opcional, só se você usa Claude Code):
PROJECT="$(pwd)"
ln -s "$PROJECT/skills/claude-cookbooks" ~/.claude/skills/claude-cookbooks
ln -s "$PROJECT/skills/ecossistemas-ui-ux" ~/.claude/skills/ecossistemas-ui-ux
ln -s "$PROJECT/skills/referencias-dashboards" ~/.claude/skills/referencias-dashboardsinterpop/
├── backend/ # Django API (gerenciado por uv)
│ ├── apps/
│ │ ├── articles/ # Posts + categorias + sitemap + OG middleware
│ │ ├── audit/ # Middleware + endpoint de métricas
│ │ ├── comments/ # Comentários + curtidas
│ │ ├── moderation/ # Banimentos diretos + BanRequest workflow
│ │ ├── newsletter/ # Inscrições + templates de e-mail
│ │ └── users/ # Auth (JWT cookie) + roles admin/editor/user
│ ├── config/settings/ # base, development, production
│ ├── pyproject.toml # Dependências (fonte de verdade)
│ ├── uv.lock # Lockfile reproduzível
│ └── requirements.txt # Auto-exportado (compat com tooling externo)
├── src/ # React app
│ ├── pages/ # Home, Article, News, Admin, CreatePost, etc.
│ ├── components/ # UI compartilhada (NewsCard, Modal, ArticleShareBar, ...)
│ ├── services/ # Camada axios → Django
│ ├── router/ # Rotas + AdminRoute + ScrollToHashOrTop
│ └── utils/ # Helpers puros (renderArticleBody, etc.)
├── skills/ # Skills locais do projeto (com symlinks globais)
│ ├── claude-cookbooks/ # Catálogo dos notebooks Anthropic (84 recipes)
│ ├── ecossistemas-ui-ux/ # Padrão UI/UX do projeto (5 categorias de fontes)
│ ├── referencias-dashboards/ # Padrão para dashboards/KPIs/admin
│ └── README.md # Catálogo + instruções de instalação
├── docs/
│ ├── Logos/ # Variantes do logo (SVG + assinatura)
│ ├── planning/ # Planejamento interno (gitignored — local-only)
│ │ ├── Improvement-system.md
│ │ ├── HOSTING-DEPLOY-PLAN.md
│ │ ├── session-auth-strategy.md
│ │ ├── reorganization-proposal-2026-05-21.md
│ │ └── audits-2026-05-21/
│ ├── references/ # PDFs canônicos (fontes primárias)
│ │ ├── PDF Gabarito.pdf
│ │ ├── ecossistema_ui_ux_revisado.pdf
│ │ └── guia_referencias_dashboards.pdf
│ ├── tests/ # Padrões + reports de teste
│ │ ├── testing-standards.md (+ .pdf)
│ │ ├── reports/ # .md por execução (gitignored — local)
│ │ └── reports-pdf/ # PDF espelho (gitignored — local)
│ └── architecture/ # (a criar) overview + diagramas C4
├── scripts/ # md-to-pdf.sh + futuros stubs operacionais
├── .github/workflows/ # ci.yml (pytest cov 40% + tsc/lint/build)
├── AGENTS.md # Instruções para agentes AI (espelhado em CLAUDE.md)
└── CLAUDE.md # → AGENTS.md (symlink — mesmo conteúdo)
- Typecheck obrigatório:
npx tsc --noEmit(frontend) euv run python manage.py check(backend) devem sair comexit 0antes de qualquer push. - Commits AI incluem
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>. - Padrão UI/UX: definido na skill
skills/ecossistemas-ui-ux/SKILL.md(sumário no AGENTS.md §3). - Padrão dashboards: definido na skill
skills/referencias-dashboards/SKILL.md(sumário no AGENTS.md §3). - Features Claude API: começar sempre pelo cookbook em
skills/claude-cookbooks/SKILL.md. - Acessibilidade: WCAG 2.2 + Core Web Vitals validados em toda entrega de frontend.
- Nunca commitar:
backend/.env,backend/db.sqlite3,backend/.venv/,**/__pycache__/(já no.gitignore).
- AGENTS.md — instruções para agentes AI: comandos do projeto, plugins ativos, sumários e convenções.
- skills/README.md — catálogo das skills locais + plugins referenciados.
- docs/architecture/overview.md — arquitetura atual (stack, topologia, apps, observability) em uma página.
- docs/runbooks/ — runbooks operacionais (stubs — preencher conforme incidentes).
- docs/postmortems/ — postmortems blameless (TEMPLATE + catálogo).
Proprietária — todos os direitos reservados · Copyright © 2026 Gabriel Marques.
Ver LICENSE para os termos completos. Resumo:
- Você pode: baixar, executar localmente para estudo/avaliação, e se inspirar em técnicas, padrões e decisões de design para projetos independentes e distintos.
- Você NÃO pode: copiar trechos substanciais para outros projetos, redistribuir, revender, sublicenciar, hospedar versão pública ou usar como base de produto comercial.
- Cliente Interpop: tem autorização expressa para operar este software como produto editorial próprio (interpop.cc).
- Outros usos: pedidos de autorização (licenciamento comercial, fork público, parceria) via GitHub
@GabeMarques-Intetsu.