Skip to content

[FEATURE] Sistema de notificações #19

@lumamontes

Description

@lumamontes

Contexto

O BeatWave não possui nenhum sistema de notificações. Os usuários não são informados quando alguém os segue, comenta em sua review, ou interage com seu conteúdo. Isso reduz o engajamento na plataforma.

Objetivo

Criar um sistema de notificações in-app para manter os usuários informados sobre interações relevantes.

Funcionalidades esperadas

  • Notificação quando alguém te segue
  • Notificação quando alguém avalia o mesmo álbum que você
  • Ícone de sino na navbar com contador de não-lidas
  • Dropdown ou página de notificações com lista completa
  • Marcar notificações como lidas (individual e "marcar todas")

Critérios de aceitação

  • Tabela notifications no schema Drizzle (userId, type, referenceId, read, createdAt)
  • Notificações criadas automaticamente no backend quando eventos ocorrem
  • Interface de listagem de notificações no frontend
  • Contador de não-lidas na navbar
  • Endpoint para marcar como lida
  • Segue o design system neobrutalism

Dicas técnicas

  • Schema: nova tabela em packages/database/src/schema.ts
  • Backend: criar NotificationsModule em apps/api/src/
  • Criar notificações dentro dos services existentes (ex: UsersService.follow() cria notificação)
  • Frontend: componente na navbar com Radix Popover ou DropdownMenu
  • Polling simples com React Query (refetchInterval) para atualizações em tempo real (SSE/WebSocket pode vir depois)

Nível de dificuldade

🔴 Avançado — envolve schema novo, lógica distribuída entre múltiplos services, e componente de UI complexo.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions