{"id":50780690,"url":"https://github.com/seekdevcore/interpop","last_synced_at":"2026-06-12T03:02:37.591Z","repository":{"id":358786542,"uuid":"1243067596","full_name":"seekdevcore/interpop","owner":"seekdevcore","description":"Investigação editorial do Soft Power — como a cultura pop, da música ao streaming, opera como infraestrutura silenciosa de hegemonia. Django 5 + React 19 + TypeScript construídos com rigor sênior: 193 testes, ADRs formais e DevSecOps desde o commit zero. Frente principal do gabe-marques-portfolio.","archived":false,"fork":false,"pushed_at":"2026-06-09T22:05:09.000Z","size":28212,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-09T23:14:38.837Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/seekdevcore.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-19T02:47:10.000Z","updated_at":"2026-06-09T21:40:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/seekdevcore/interpop","commit_stats":null,"previous_names":["gabemarques-intetsu/interpop","seekdevcore/interpop"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/seekdevcore/interpop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seekdevcore%2Finterpop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seekdevcore%2Finterpop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seekdevcore%2Finterpop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seekdevcore%2Finterpop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seekdevcore","download_url":"https://codeload.github.com/seekdevcore/interpop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seekdevcore%2Finterpop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34226630,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-12T03:02:36.757Z","updated_at":"2026-06-12T03:02:37.584Z","avatar_url":"https://github.com/seekdevcore.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Interpop\n\n\u003e Projeto editorial brasileiro que analisa criticamente o **Soft Power** e o papel da cultura pop na manutenção da hegemonia global.\n\nA 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.\n\n---\n\n## Stack\n\n| Camada                     | Tecnologia                                                                       |\n| -------------------------- | -------------------------------------------------------------------------------- |\n| **Frontend**               | React 19 + TypeScript + Vite + React Router 7                                    |\n| **Backend**                | Django 5 + Django REST Framework                                                 |\n| **Toolchain Python**       | [`uv`](https://docs.astral.sh/uv/) (substitui pip + venv)                        |\n| **Banco**                  | SQLite (dev) · PostgreSQL (prod)                                                 |\n| **Auth**                   | JWT em cookie httpOnly + django-axes (brute-force) + roles admin/editor/user     |\n| **Charts**                 | Recharts (dashboard de métricas admin)                                           |\n| **E-mail**                 | SMTP Gmail (welcome + notificações de artigo + alertas de moderação)             |\n| **SEO**                    | Sitemap.xml + robots.txt dinâmicos + Open Graph middleware para crawlers sociais |\n| **Hospedagem (planejada)** | Hostinger KVM 1 — Nginx + gunicorn + systemd + Let's Encrypt                     |\n\n---\n\n## Rodar localmente\n\n**Pré-requisitos:** Node ≥ 20.19 e `uv` instalado.\n\n```bash\n# 0. Instalar uv (uma vez por máquina) — gerencia Python + deps + venv\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# 1. Clonar\ngit clone git@github.com:GabeMarques-Intetsu/interpop.git\ncd interpop\n\n# 2. Backend (terminal 1) — uv resolve Python 3.12 + .venv + deps em ~3s\ncd backend\nuv sync                                       # cria .venv com tudo do uv.lock\ncp .env.example .env                          # ajustar SECRET_KEY, EMAIL_*, etc.\nuv run python manage.py migrate\nuv run python manage.py createsuperuser\nuv run python manage.py runserver             # http://127.0.0.1:8000\n\n# 3. Frontend (terminal 2)\ncd ..                                         # voltar à raiz\nnpm install\nnpm run dev                                   # http://localhost:5173\n```\n\n**Single-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):\n\n```bash\nPROJECT=\"$(pwd)\"\nln -s \"$PROJECT/skills/claude-cookbooks\"        ~/.claude/skills/claude-cookbooks\nln -s \"$PROJECT/skills/ecossistemas-ui-ux\"      ~/.claude/skills/ecossistemas-ui-ux\nln -s \"$PROJECT/skills/referencias-dashboards\"  ~/.claude/skills/referencias-dashboards\n```\n\n---\n\n## Estrutura\n\n```\ninterpop/\n├── backend/                    # Django API (gerenciado por uv)\n│   ├── apps/\n│   │   ├── articles/           # Posts + categorias + sitemap + OG middleware\n│   │   ├── audit/              # Middleware + endpoint de métricas\n│   │   ├── comments/           # Comentários + curtidas\n│   │   ├── moderation/         # Banimentos diretos + BanRequest workflow\n│   │   ├── newsletter/         # Inscrições + templates de e-mail\n│   │   └── users/              # Auth (JWT cookie) + roles admin/editor/user\n│   ├── config/settings/        # base, development, production\n│   ├── pyproject.toml          # Dependências (fonte de verdade)\n│   ├── uv.lock                 # Lockfile reproduzível\n│   └── requirements.txt        # Auto-exportado (compat com tooling externo)\n├── src/                        # React app\n│   ├── pages/                  # Home, Article, News, Admin, CreatePost, etc.\n│   ├── components/             # UI compartilhada (NewsCard, Modal, ArticleShareBar, ...)\n│   ├── services/               # Camada axios → Django\n│   ├── router/                 # Rotas + AdminRoute + ScrollToHashOrTop\n│   └── utils/                  # Helpers puros (renderArticleBody, etc.)\n├── skills/                     # Skills locais do projeto (com symlinks globais)\n│   ├── claude-cookbooks/       # Catálogo dos notebooks Anthropic (84 recipes)\n│   ├── ecossistemas-ui-ux/     # Padrão UI/UX do projeto (5 categorias de fontes)\n│   ├── referencias-dashboards/ # Padrão para dashboards/KPIs/admin\n│   └── README.md               # Catálogo + instruções de instalação\n├── docs/\n│   ├── Logos/                  # Variantes do logo (SVG + assinatura)\n│   ├── planning/               # Planejamento interno (gitignored — local-only)\n│   │   ├── Improvement-system.md\n│   │   ├── HOSTING-DEPLOY-PLAN.md\n│   │   ├── session-auth-strategy.md\n│   │   ├── reorganization-proposal-2026-05-21.md\n│   │   └── audits-2026-05-21/\n│   ├── references/             # PDFs canônicos (fontes primárias)\n│   │   ├── PDF Gabarito.pdf\n│   │   ├── ecossistema_ui_ux_revisado.pdf\n│   │   └── guia_referencias_dashboards.pdf\n│   ├── tests/                  # Padrões + reports de teste\n│   │   ├── testing-standards.md (+ .pdf)\n│   │   ├── reports/            # .md por execução (gitignored — local)\n│   │   └── reports-pdf/        # PDF espelho (gitignored — local)\n│   └── architecture/           # (a criar) overview + diagramas C4\n├── scripts/                    # md-to-pdf.sh + futuros stubs operacionais\n├── .github/workflows/          # ci.yml (pytest cov 40% + tsc/lint/build)\n├── AGENTS.md                   # Instruções para agentes AI (espelhado em CLAUDE.md)\n└── CLAUDE.md                   # → AGENTS.md (symlink — mesmo conteúdo)\n```\n\n---\n\n## Convenções\n\n- **Typecheck obrigatório**: `npx tsc --noEmit` (frontend) e `uv run python manage.py check` (backend) devem sair com `exit 0` antes de qualquer push.\n- **Commits AI** incluem `Co-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e`.\n- **Padrão UI/UX**: definido na skill `skills/ecossistemas-ui-ux/SKILL.md` (sumário no AGENTS.md §3).\n- **Padrão dashboards**: definido na skill `skills/referencias-dashboards/SKILL.md` (sumário no AGENTS.md §3).\n- **Features Claude API**: começar **sempre** pelo cookbook em `skills/claude-cookbooks/SKILL.md`.\n- **Acessibilidade**: WCAG 2.2 + Core Web Vitals validados em toda entrega de frontend.\n- **Nunca commitar**: `backend/.env`, `backend/db.sqlite3`, `backend/.venv/`, `**/__pycache__/` (já no `.gitignore`).\n\n---\n\n## Documentação adicional\n\n- [AGENTS.md](AGENTS.md) — instruções para agentes AI: comandos do projeto, plugins ativos, sumários e convenções.\n- [skills/README.md](skills/README.md) — catálogo das skills locais + plugins referenciados.\n- [docs/architecture/overview.md](docs/architecture/overview.md) — arquitetura atual (stack, topologia, apps, observability) em uma página.\n- [docs/runbooks/](docs/runbooks/) — runbooks operacionais (stubs — preencher conforme incidentes).\n- [docs/postmortems/](docs/postmortems/) — postmortems blameless (TEMPLATE + catálogo).\n\n---\n\n## Licença\n\n**Proprietária — todos os direitos reservados** · Copyright © 2026 Gabriel Marques.\n\nVer [LICENSE](LICENSE) para os termos completos. Resumo:\n\n- **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.\n- **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.\n- **Cliente Interpop**: tem autorização expressa para operar este software como produto editorial próprio (interpop.cc).\n- **Outros usos**: pedidos de autorização (licenciamento comercial, fork público, parceria) via GitHub `@GabeMarques-Intetsu`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseekdevcore%2Finterpop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseekdevcore%2Finterpop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseekdevcore%2Finterpop/lists"}