-{% for tag in page.tags.sample %}{% if tag != "" %}
-{{ tag | truncate: 18 }}
-{% endif %}{% endfor %}
-
-
-{% endif %}
-
-
-
-
-
-
-
-
-{% endif %}
-{% endfor %}
-
-
-
-
-
Nenhum projeto encontrado.
-
-
+
+
+
Nenhum projeto encontrado.
+
-{% include preview-modal.html %}
-
-
-
\ No newline at end of file
+ });
+
diff --git a/readme.md b/readme.md
index ae10464a..37aa91d1 100755
--- a/readme.md
+++ b/readme.md
@@ -16,67 +16,80 @@ O sistema é um ecossistema completo para mineração, submissão, processamento
O script `crawler.py` atua como um bot de mineração para popular a base de dados da plataforma baixando projetos diretamente do repositório oficial (LMMS Sharing Platform - `lmms.io/lsp/`).
-- **Segurança e Estabilidade:** O crawler é multiprocessado (limitado a 4 workers) e possui um sistema de _throttle_ que pausa a execução caso a memória RAM livre do servidor caia abaixo de 500MB.
-- **Sanitização e Auditoria:** Os arquivos baixados têm seus nomes sanitizados (slugify) e o processo gera um arquivo de auditoria (`audit_crawler.csv`) registrando tamanho, velocidade e status de cada download.
+- **Segurança e Estabilidade:** O crawler é multiprocessado e possui um sistema de _throttle_ que pausa a execução caso a memória RAM livre do servidor caia abaixo de 500MB.
+- **Sanitização e Auditoria:** Utiliza `BeautifulSoup4` para extração de links e gera relatórios de performance em CSV.
### 2. Pipeline ETL e Motor de Renderização
-A conversão dos arquivos nativos em artefatos web é orquestrada pelo script `pipeline_etl.sh`, que executa três etapas sequenciais:
+A conversão dos arquivos nativos em artefatos web é orquestrada pelo script `pipeline_etl.sh`, executando o processamento em lotes:
-1. **Extração e Renderização (`handler/main.py`):** O script utiliza a biblioteca `multiprocessing` e processa os projetos em lotes. Ele invoca o binário do LMMS em modo `offscreen` (Headless) para exportar o áudio gerado nativamente em `.ogg` e converte a estrutura do `.mmp` em dicionários de dados (JSON/YAML).
-2. **Análise de Áudio (`classificacao/analise_audio.py`):** Processamento das características sonoras.
-3. **Classificação Mestre (`classificacao/classificacao_mestre.py`):** Organização final e indexação para o frontend.
+1. **Extração e Renderização (`handler/main.py`):** Invoca o LMMS em modo `offscreen` para gerar áudio e converte o XML `.mmp` em JSON/YAML.
+2. **Análise e Inteligência Artificial:** Utiliza a biblioteca **Essentia (Tensorflow)** para extração de características acústicas e classificação de áudio.
-### 3. MMPSearch (Catálogo Estático Frontend)
+---
-Biblioteca gerada via Jekyll a partir dos arquivos JSON/YAML exportados pelo Pipeline ETL, focada em leveza, indexação e busca de projetos, com renderização de áudio via Web Audio API.
+## 📦 Ecossistema Python e Dependências (venv)
-### 4. MMPCreator (Colaboração em Tempo Real)
+O ambiente virtual (`venv`) contém as bibliotecas necessárias para o ciclo de vida do dado. As principais dependências instaladas são:
-Sequenciador interativo. Utiliza WebSockets para sincronizar edições simultâneas (áudio e MIDI) entre múltiplos usuários em salas virtuais.
+### Web & API Framework
+
+- **Flask (v3.1.2):** Engine principal da API.
+- **Flask-SocketIO:** Suporte a comunicação bi-direcional via WebSockets.
+- **Gunicorn:** Servidor HTTP WSGI para produção.
+- **Flask-Admin & WTForms:** Interface de gerenciamento e validação de formulários.
+
+### Segurança e Persistência
+
+- **SQLAlchemy (v2.0):** ORM para manipulação do banco `users.db`.
+- **Flask-Bcrypt & Cryptography:** Hashing de senhas e camadas de criptografia.
+
+### Processamento e Ciência de Dados
+
+- **Essentia-Tensorflow:** Biblioteca avançada para análise de áudio e music information retrieval (MIR).
+- **NumPy:** Suporte para arrays multidimensionais e cálculos matemáticos pesados.
+- **PyYAML:** Geração de metadados para integração com o Jekyll.
+
+### Utilidades e Monitoramento
+
+- **Psutil:** Monitoramento de hardware para controle de processos paralelos.
+- **Watchdog:** Monitoramento de eventos no sistema de arquivos.
+- **tqdm:** Barras de progresso para tarefas de longa duração no terminal.
---
## ⚙️ Serviços de Hospedagem (Produção)
-A infraestrutura em produção é orquestrada por gerenciadores de serviço do Linux (`systemd`), garantindo que a API e o servidor de WebSockets estejam sempre no ar.
+A infraestrutura é mantida via `systemd` para garantir alta disponibilidade.
-### Servidor de Upload, Autenticação e Build (Flask/Gunicorn)
+### API de Upload e Processamento (Gunicorn)
-Serviço responsável por receber arquivos, gerenciar a sessão dos usuários (SQLite, Bcrypt, Flask-Login) e automatizar o build do site via threads em segundo plano.
-
-- **Serviço:** `/etc/systemd/system/upload_mmpSearch.service`
-- **Tecnologia:** Gunicorn servindo a aplicação Flask (`upload_server:app`).
-- **Configuração:** Roda com o usuário `www-data`. Utiliza 3 _workers_ e possui um timeout estendido de 300 segundos, o que é vital para não derrubar a conexão durante renderizações pesadas de áudio.
-- **Acesso da API:** `http://0.0.0.0:33002`
+- **Serviço:** `upload_mmpSearch.service`
+- **Porta:** 33002
+- **Timeout:** 300s (Essencial para o tempo de renderização do LMMS)
### Backend de Colaboração (NodeJS)
-Hospeda a lógica de WebSockets responsável por gerenciar as salas e a colaboração online do editor MMPCreator em tempo real.
-
-- **Serviço:** `/etc/systemd/system/backend-MMPCreator.service`
-- **Tecnologia:** NodeJS (`server.js`).
-- **Configuração de Segurança:** Roda sob o usuário `www-data` e possui acesso direto aos certificados Let's Encrypt via variáveis de ambiente (`SSL_FULLCHAIN` e `SSL_PRIVKEY`). Essa abordagem elimina a necessidade do Apache atuar como proxy reverso, facilitando a comunicação direta e segura via `wss://` e `https://`.
-- **Comportamento:** Configurado com `Restart=always` para garantir alta disponibilidade.
+- **Serviço:** `backend-MMPCreator.service`
+- **Porta:** 33001
+- **Tecnologia:** Sincronização via Socket.io com SSL nativo.
---
## 🛠️ Área de Desenvolvimento (Execução Manual)
-Para testes ou execuções manuais, o site está sendo desenvolvido em um ambiente virtual Python (`venv`).
-
-1. Ative o ambiente:
+1. Ative o ambiente virtual:
`source venv/bin/activate`
-2. Para inicializar a biblioteca de samples do MMPCreator:
- `cd scripts/creations && python generateManifest.py`
-
-3. Para forçar a indexação e execução manual do pipeline ETL:
+2. Execução do Pipeline ETL completo:
`cd scripts && ./pipeline_etl.sh`
+3. Inicialização de Manifestos:
+ `cd scripts/creations && python generateManifest.py`
+
---
-## ✅ Funcionalidades Já Implementadas
+## ✅ Funcionalidades Implementadas
- [x] Web Crawler automatizado com auditoria de hardware.
- [x] Processamento de arquivos LMMS de forma _headless_ (renderização de áudio em servidor sem interface gráfica).
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 00000000..d5de4383
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,48 @@
+bcrypt==5.0.0
+beautifulsoup4==4.14.3
+bidict==0.23.1
+blinker==1.9.0
+bs4==0.0.2
+certifi==2025.10.5
+cffi==2.0.0
+charset-normalizer==3.4.4
+click==8.3.1
+cryptography==46.0.3
+essentia-tensorflow==2.1b6.dev1389
+Flask==3.1.2
+Flask-Admin==2.0.2
+Flask-Bcrypt==1.0.1
+flask-cors==6.0.1
+Flask-Login==0.6.3
+Flask-SocketIO==5.5.1
+Flask-SQLAlchemy==3.1.1
+gevent==25.9.1
+greenlet==3.2.4
+gunicorn==23.0.0
+h11==0.16.0
+idna==3.11
+itsdangerous==2.2.0
+Jinja2==3.1.6
+MarkupSafe==3.0.3
+numpy==2.3.5
+packaging==25.0
+psutil==7.2.2
+pycparser==2.23
+pyOpenSSL==25.3.0
+python-engineio==4.12.3
+python-socketio==5.14.3
+PyYAML==6.0.3
+requests==2.32.5
+simple-websocket==1.1.0
+six==1.17.0
+soupsieve==2.8.3
+SQLAlchemy==2.0.44
+tqdm==4.67.1
+typing_extensions==4.15.0
+urllib3==2.5.0
+watchdog==6.0.0
+Werkzeug==3.1.4
+wsproto==1.2.0
+WTForms==3.2.1
+zope.event==6.1
+zope.interface==8.0.1