microtecflix/memory.md

3.4 KiB

Contexto de Memória e Arquitetura - MicrotecFlix

Este arquivo registra o contexto de desenvolvimento, arquitetura, esquema de dados e regras de negócio da plataforma MicrotecFlix.


1. Visão Geral do Sistema

O MicrotecFlix é uma plataforma EAD / Streaming de cursos de informática e negócios baseada em assinaturas recorrentes com integração ao gateway de pagamentos Asaas.

Funcionalidades do Aluno (App.tsx):

  • Catálogo de Cursos (Windows 11, Word, Excel, PowerPoint).
  • Player de Vídeo com aulas em streaming (YouTube ou links diretos MP4).
  • Progresso de aula (porcentagem assistida e status de conclusão).
  • Bloco de anotações por aula.
  • Assinatura e checkout integrado via Pix, Boleto e Cartão de Crédito.
  • Perfil Dinâmico: Edição de dados pessoais (Nome, Data de Nascimento, WhatsApp).
  • Upload de Avatar: Integração com armazenamento S3 (MinIO) para hospedar fotos de perfil.

Funcionalidades do Administrador (AdminApp.tsx):

  • Dashboard com métricas financeiras (MRR, Receita Total, Taxa de Inadimplência, Alunos Ativos).
  • CRUD de Cursos, Módulos e Aulas.
  • Gestão de Alunos e alteração manual de status de assinatura (ACTIVE, OVERDUE, CANCELED, TRIAL).
  • Visualização do histórico de Webhooks do Asaas.

2. Esquema de Entidades (prisma/schema.prisma / PostgreSQL)

  1. User: Usuários da plataforma (admin ou student) com status de assinatura (ACTIVE, OVERDUE, CANCELED, TRIAL).
  2. Course: Cursos cadastrados com título, descrição, thumbnail, categoria e preço.
  3. Module: Módulos organizados sequencialmente por curso.
  4. Lesson: Aulas vinculadas ao módulo com URL de vídeo (youtube ou direct) e conteúdo complementar.
  5. Note: Anotações pessoais feitas pelos alunos por aula.
  6. Progress: Histórico de progresso do aluno por aula (% assistida e completed).
  7. Payment: Histórico de faturas e cobranças registradas no gateway de pagamentos.
  8. WebhookLog: Registro auditável de webhooks recebidos do Asaas.

3. Infraestrutura & Portainer / Swarm

  • Rede Traefik Public: network_public
  • Rede Interna App-DB: microtecflix-net (Overlay)
  • Containers na Stack:
    • postgres-microtecflix (Porta externa 5435:5432)
    • minio-microtecflix (Porta 9000 para API S3 e 9001 para Web Console)
    • microtecflix (Porta interna 3000, exposto via Traefik HTTPS)
  • Domínios Mapeados:
    • estudo.microtecinformaticacurso.com.br -> Aluno
    • admin-estudo.microtecinformaticacurso.com.br -> Admin
    • s3-estudo.microtecinformaticacurso.com.br -> Bucket S3 (API Público/Uploads)
    • minio-estudo.microtecinformaticacurso.com.br -> Console de Gerenciamento MinIO

4. Diretrizes para Futuras Edições

  1. Preservação da Autenticação JWT: O token JWT é armazenado em localStorage sob a chave devflix_token. Qualquer nova rota de API restrita deve utilizar o middleware authenticateToken.
  2. Isolamento de Banco de Dados: O container postgres-microtecflix roda na porta 5435 do host para garantir que não haja conflitos de porta com o banco PostgreSQL de outros projetos (ex: AgendaPRO na porta 5432).
  3. Deploy: O arquivo docker-stack.yml deve ser atualizado sempre que novas variáveis de ambiente ou volumes forem necessários para a stack do Portainer.