Visão Geral do Projeto
O que é Morpheus Env?
Morpheus Env é um simulador web de sistema computacional desenvolvido com fins experimentais e acadêmicos. O projeto foi criado para oferecer ferramentas educacionais que permitem aos usuários aprender e experimentar conceitos de monitoramento de sistema, conversão numérica e operações lógicas booleanas.
O nome "Morpheus" é uma referência ao deus do sonho da mitologia grega, onde seu trabalho é simular uma realidade através dos sonhos das pessoas enquanto elas dormem. Neste contexto, o sistema oferece diferentes "visualizações" da realidade computacional.
Objetivo do Projeto
Fornecer uma plataforma educacional que combine:
- Monitoramento em Tempo Real: Observar métricas do sistema (CPU, RAM, Disco)
- Análise Inteligente: Utilizar IA para interpretar dados de desempenho
- Ferramentas Educacionais: Conversores numéricos e operações lógicas
- Segurança Prática: Implementar autenticação e validação de dados
Principais Funcionalidades
1. Monitoramento do Sistema
Coleta e exibe em tempo real:
- CPU: Porcentagem de uso do processador
- RAM: Memória disponível e em uso
- Disco: Espaço de armazenamento utilizado
Os dados são atualizados a cada 5 segundos via API REST.
2. Análise por IA
O sistema utiliza Groq AI para gerar análises automáticas do desempenho:
- Interpreta níveis de CPU e RAM
- Fornece alertas quando recursos estão críticos
- Sugere ações preventivas
- Retorna análise em um parágrafo único e conciso
3. Conversor Numérico
Converte números entre diferentes bases:
- Binário (base 2): 1010
- Octal (base 8): 12
- Decimal (base 10): 10
- Hexadecimal (base 16): A
Suporta conversões bidirecionais entre todas as bases.
4. Operações Lógicas Booleanas
Implementa operações fundamentais:
- AND: Retorna 1 apenas se ambos os valores são 1
- OR: Retorna 1 se pelo menos um valor é 1
- XOR: Retorna 1 se os valores são diferentes
5. Autenticação e Segurança
- Registro de usuários com validação forte
- Bloqueio de emails temporários/descartáveis
- Senhas com hash seguro usando padrões Django
- Sistema de logout seguro
- Autenticação JWT stateless com access/refresh tokens
- Access tokens válidos por 10 minutos
- Refresh tokens válidos por 1 dia
- Validação de CSRF em todos os formulários
6. Notificações por Email
- Emails de boas-vindas para novos usuários
- Notificações de atualização de termos
- Autenticação OAuth2 com Google
- Mensagens formatadas em HTML e texto plano
Stack Tecnológica
Backend
- Python 3.12: Linguagem de programação
- Django 5.2.6: Framework web robusto
- Django REST Framework 3.16.1: Construção de APIs REST
- SQLite: Banco de dados (desenvolvimento)
- Groq AI: API de análise inteligente
- psutil: Coleta de métricas do sistema
- google-auth: OAuth2 para Google
- djangorestframework-simplejwt: Autenticação JWT para APIs REST
Frontend
- Django Templates: Renderização de páginas
- Tailwind CSS: Estilização utility-first
- Bootstrap Icons: Conjunto de ícones
- JavaScript Vanilla: Interatividade sem dependências pesadas
Deployment e Ferramentas
- Git: Controle de versão
- Virtual Environment: Isolamento de dependências
- pip: Gerenciador de pacotes Python
Arquitetura Geral
flowchart LR
A["🌐 Cliente<br/>Navegador"] -->|HTTP| B["⚙️ Django<br/>Backend"]
B -->|Consulta| C["💾 SQLite"]
B -->|API| D["🤖 Groq AI"]
B -->|Monitoramento| E["📊 psutil"]
B -->|Conversão| F["🔢 Conversor<br/>Numérico/Lógico"]
B -->|Resposta| A
style A stroke:#0288d1,stroke-width:2px,color:#000
style B stroke:#7b1fa2,stroke-width:2px,color:#000
style C stroke:#f9a825,stroke-width:2px,color:#000
style D stroke:#00897b,stroke-width:2px,color:#000
style E stroke:#e64a19,stroke-width:2px,color:#000
style F stroke:#5e35b1,stroke-width:2px,color:#000
Fluxo de Dados
Monitoramento do Sistema
- Usuário acessa
/sistema/monitoramento/ - Frontend requisita dados via
/sistema/monitoramento/api/v1/metrics - Django executa
get_system_status()dopsutil - Retorna JSON com métricas (CPU, RAM, Disco)
- Frontend atualiza a cada 5 segundos
Análise de IA
- Usuário clica no botão "Gerar análise"
- Frontend requisita
/sistema/monitoramento/api/v1/ai - Django executa
get_ai_analysis()da Groq - Groq recebe dados sanitizados e retorna análise em texto
- Frontend exibe análise no painel
Conversão Numérica
- Usuário preenche valor e seleciona conversão
- Frontend requisita
/sistema/conversor/api/v1/converter?type=bin2dec&value=1010 - Django mapeia operação para função correspondente
- Retorna resultado em JSON
- Frontend exibe resultado
Padrão de Projeto: MVT
O projeto segue rigorosamente o padrão MVT (Model-View-Template) do Django:
- Models: Definem a estrutura de dados no banco (ORM Django)
- Views: Contêm a lógica de negócio e processamento de requisições
- Templates: Renderizam HTML com dados do contexto
Exemplo:
# models.py - Define estrutura
class TermsOfUseAndPrivacyPolicy(models.Model):
content = models.TextField()
updated_at = models.DateTimeField(auto_now=True)
# views.py - Lógica de negócio
class TermsOfUseView(generic.TemplateView):
def get_context_data(self):
terms = TermsOfUseAndPrivacyPolicy.objects.filter(is_active=True).last()
return {'terms_and_policy': terms}
# templates/terms_of_use.html - Renderização
{{ terms_and_policy }}
Módulos Principais
Apps Django
1. users - Autenticação e Usuários
Gerencia registro, login e termos de uso.
2. tools - Ferramentas do Sistema
Oferece monitoramento, análise de IA e conversores.
3. notifications - Notificações e Emails
Envia emails via OAuth2 Google.
Estrutura de Serviços
tools/services/
├── num_converter.py # Lógica de conversão numérica
├── system_metrics.py # Coleta de métricas do sistema
└── ai_analysis.py # Integração com Groq AI
notifications/utils/
├── email_oauth2.py # Autenticação OAuth2 Google
├── send_email.py # Envio de emails
├── colors.py # Mensagens coloridas no terminal
└── emails.py # Templates de email
Segurança e Conformidade
Implementações de Segurança
- Proteção CSRF: Todos os formulários incluem token CSRF
- Autenticação por Login: Decoradores
LoginRequiredMixinem views - Rate Limiting: Limitação de requisições por usuário (20/minuto para métricas)
- Django Axes: Limitação de tentativas de login (5 tentativas disponíveis)
- Validação de Email: Bloqueio de domínios temporários
- Hash de Senha: Django utiliza PBKDF2 por padrão
- Variáveis de Ambiente: Senhas e API keys em
.env(não versionadas)
Validações
- Emails descartáveis são bloqueados no registro
- Senhas requerem mínimo 8 caracteres
- Nomes de usuário não podem ser apenas numéricos
- Entradas sanitizadas antes de processar em IA
Fluxo de Usuário
Novo Usuário
- Acessa
/accounts/registrar/ - Preenche formulário com nome, usuário, email e senha
-
Validações verificam:
- Email não é temporário
- Usuário não existe
- Senha atende requisitos
-
Usuário criado e email de boas-vindas enviado
- Redirecionado para login
Usuário Autenticado
- Faz login em
/accounts/login/ - Acessa a home em
/ - Pode utilizar ferramentas disponíveis
- Faz logout em qualquer página
Limitações Conhecidas
- ⚠️ SQLite é inadequado para produção (use PostgreSQL/MySQL)
- ⚠️ Análise de IA requer configuração de API key da Groq
- ⚠️ Emails requerem configuração OAuth2 do Google
- ⚠️ Não há cache implementado
Próximos Passos
Para começar a trabalhar com o projeto, consulte:
- Pré-requisitos - Requisitos mínimos
- Instalação - Como configurar o ambiente
- Configuração - Variáveis de ambiente