Skip to content

[FEATURE] Sistema de notificações #19

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions