Geek Social — Documentação
Introdução

Visão geral do produto

O que é o Geek Social, propósito e principais funcionalidades.

O Geek Social é uma rede social temática para gamers e colecionadores. Une perfil, coleções de itens (jogos, livros, card games, board games, customizadas), feed, chat em tempo real, vitrine de troca/venda, e integrações externas (Steam) num único produto self-hosted.

Pilares do produto

  • Coleções estruturadas — cada coleção tem schema dinâmico (campos customizados) e itens reutilizáveis. Importação automática via Steam.
  • Sociabilidade — perfil rico (bio, interesses, pronouns, capa, fundo), amizades com privacidade, feed de atividades, chat 1-1 e em grupos com áudio/vídeo/arquivos.
  • Comunidades — espaços temáticos ao estilo Orkut (pública ou restrita com aprovação), membros com roles, tópicos com reactions/comentários, moderação completa e audit log.
  • Vitrine — anúncios de itens (venda ou troca) com sistema de propostas/contra-propostas, dupla confirmação na transação, reputação imutável por avaliações.
  • Ferramentas geek — integrações com Steam (import de games), denúncias, notificações push, OAuth social.

Stack alto nível

CamadaTecnologia
BackendFastify (Node.js 20+, TypeScript), Drizzle ORM
BancoPostgreSQL 17
StorageS3 (MinIO local)
RealtimeSocket.IO
Jobspg-boss
AuthJWT + cookies HttpOnly + Google OAuth
FrontendVue 3 + Vite + Pinia
PushWeb Push (VAPID)
Infra devDocker Compose

Para detalhes do stack ver Stack e arquitetura.

Repos

RepoConteúdo
geek-social-apiBackend Fastify, schema Drizzle, migrations, jobs
geek-social-frontendWeb app Vue 3
geek-social-docsEste portal de documentação
local-env-devDocker Compose com Postgres, MinIO, Keycloak

Convenções gerais

  • Idioma do código e API: inglês para identificadores; mensagens de UI em português
  • Banco: snake_case nos nomes de colunas/tabelas; camelCase nos identificadores TypeScript
  • Erros: códigos tipados em SCREAMING_SNAKE_CASE retornados via { error: "CODIGO" } (ver Convenções de erro)

On this page