Acesse a versão web do projeto online: https://gaabdevweb.github.io/ISS/
Bem-vindo ao repositório do projeto ISS. Este sistema nasceu da vontade de ajudar estudantes (incluindo a mim mesmo!) a organizarem e consolidarem seus conhecimentos. É um ambiente acadêmico pensado para facilitar a leitura de anotações e aulas em formato Markdown, a revisão de conceitos e a resolução prática de exercícios diretamente no navegador.
A intenção aqui é ser um espaço direto ao ponto e focado inteiramente em estudar, testar e aprender juntos, sem distrações.
A ideia principal é facilitar o acesso aos materiais. A página inicial organiza tudo em disciplinas e trilhas de aprendizado, e conta com uma busca simples para encontrarmos rapidamente o termo ou conceito que precisamos revisar.
Dentro das aulas, o foco total é bater o olho e entender a matéria. Por isso, as páginas suportam formatação para blocos de código e diagramas visuais, o que deixa a leitura da teoria bem mais clara e amigável.
Ler a teoria é importante, mas sem praticar ninguém memoriza nada. O design da interface foi feito para ser limpo e isolar a leitura de telas muito poluídas.
Para fixar o conteúdo de verdade, a página lista blocos de exercícios interativos na parte inferior dos materiais. Neles você pode pensar sobre o problema e, caso não consiga ou queira conferir, basta expandir a caixa para checar a dica ou a resposta sugerida.
Para dar aquele incentivo na hora de estudar, a plataforma salva o nosso progresso de leitura localmente. É possível marcar as lições concluídas e os exercícios que já foram revisados, visualizando essas métricas em uma página de acompanhamento que ajuda a rastrear onde devemos melhorar.
A seguir, informações detalhadas para desenvolvedores e mantenedores do projeto sobre sua arquitetura e modo de funcionamento.
O conteúdo da plataforma não brota do nada. Ele é curado e estruturado através de uma esteira de produção refinada, movida por Engenharia de Prompt industrial. Agentes especialistas de Inteligência Artificial processam tudo para garantir alta densidade técnica, fugindo completamente de "resumos básicos" e gerando materiais interativos de verdade.
flowchart TD
A[Aulas ao Vivo / Transcrições] --> B
C[Slides / Código Bruto] --> B
subgraph "Agente: Ensino Técnico Principal"
B(Extrai Conceituais e Skills)
D(Reconstrói o Modelo Mental)
E(Gera Lesson .md c/ Diagramas)
F(Emite Metadados CONCEPT_EXTRACTION)
B --> D --> E --> F
end
subgraph "Agente: Gerador de Exercícios"
G{Planejamento Multi-Estágio}
H(Injeta Contextos: API, Logs, etc)
I(Monta Exercícios e Test Cases)
G --> H --> I
end
F -->|Input Estruturado| G
E -->|Salvo em| J[content/disciplinas/nova-aula.md]
I -->|Salvo em| K[exercises.json / files .md]
Para chegar neste nível de profundidade pedagógica, o projeto estabelece as regras nos arquivos da pasta agents/:
-
O Instrutor Principal (
content-summary-agent.md&content-summary-style-guide.md):
Esse agente recebe a aula bruta ou transcrição e atua como professor e designer de currículo. Ele é estritamente proibido de dar respostas incompletas ou fazer a lição usando bullets vazios. Ao invés disso, o agente absorve a matéria, cria Modelos Mentais, desenha diagramas via Mermaid.js ilustrando códigos e fluxos de sistemas, e finalmente insere comentários HTML ocultos na lição contendo a extração técnica. -
O Criador da Prática (
exercicios-prompt-especificacao.md):
Puxando os conceitos extraídos pelo agente anterior, cria-se a bateria interativa. Ao contrário de uma geração desordenada de código, este agente divide os exercícios em 5 estágios progressivos de dificuldade e os força a rodar em cenários realistas da profissão (parsing de JSON, validação customizada, busca em logs, ETL). As tarefas saem da monotonia e ganham estilos criativos, onde os alunos precisarão descobrir bugs no código, refatorar a lógica, prever saídas complexas, ou escrever blocos lógicos do zero para passarem nos casos de testes embarcados (test_cases).
graph TD
A[Navegador / HTML] -->|Router HTTP| B(js/markdown.js)
B -->|Fetch do arquivo| C[Conteúdo .md estático]
B -->|Parse customizado| D[Extrai YAML Frontmatter]
B -->|Parse markdown| E[Marked.js]
D --> F[Metadados e Lista de Exercícios]
E --> G[Conteúdo HTML]
G --> H[Renderiza na tela]
F -->|Injeta blocos| H
H -->|Syntax| I[Highlight.js]
H -->|Diagramas| J[Mermaid.js]
Por se tratar de um projeto composto majoritariamente de arquivos estáticos (HTML, CSS e JavaScript client-side), não é necessária a instalação de um backend complexo ou banco de dados. Qualquer servidor HTTP estático servirá de ambiente.
- Clone este repositório para sua máquina.
- Navegue até o diretório raiz do projeto.
- Inicie um servidor local. Algumas opções comuns incluem:
- Python: Rode
python -m http.server 8000(oupython3 -m http.server 8000). - Node.js (serve): Rode
npx serve . - VS Code: Utilize a extensão Live Server e clique em Go Live.
- Python: Rode
- Acesse pelo navegador a porta disponibilizada pelo servidor (geralmente
http://localhost:8000ouhttp://localhost:3000).
As aulas são gerenciadas através de arquivos Markdown e registradas em um arquivo JSON.
sequenceDiagram
participant Dev as Professor / Dev
participant MD as content/.../nova-aula.md
participant JSON as content/lessons.json
participant App as Plataforma ISS
Dev->>MD: 1. Criação do arquivo Markdown
Dev->>MD: 2. Adiciona o YAML Frontmatter
Dev->>JSON: 3. Adiciona o registro no lessons.json
App->>JSON: 4. Atualiza o menu de disciplinas
App->>MD: 5. Renderiza o conteúdo da nova aula
- Crie seu arquivo Markdown com a aula em
content/<nome-da-disciplina>/nova-aula.md. - Adicione o cabeçalho (Frontmatter) em YAML no topo do arquivo
.md. Por exemplo:--- title: "Título da sua Aula" readingMinutes: 10 --- Conteúdo em markdown...
- Registre a aula editando o arquivo
content/lessons.json:{ "discipline": "nome-da-disciplina", "slug": "nova-aula", "title": "Título da sua Aula", "order": 99, "file": "nome-da-disciplina/nova-aula.md" }
Existem duas formas principais para adicionar exercícios, garantindo forte acoplamento com a teoria.
1. Embutidos na Própria Aula:
Você pode adicionar uma lista de exercícios no Frontmatter YAML do próprio arquivo .md da aula:
---
title: "Minha Aula"
exercises:
- question: "Qual é o objetivo principal?"
answer: "O objetivo é..."
hint: "Lembre da introdução..."
---
Conteúdo do markdown.O script markdown.js fará a injeção em bloco no final da página automaticamente.
2. Arquivos de Treinamento e Testes Isolados:
Se desejar que o exercício seja listado de maneira independente em um banco de questões, você pode criar um arquivo .md diretamente dentro de content/exercises/ e configurar metadados específicos que a plataforma compila no banco local.
A organização prioriza a separação das responsabilidades entre estáticos, lógicas e definições de conteúdo.
/public/css/: Todos os estilos globais e imagens da plataforma (incluindo as capturas de tela desta documentação)./public/js/: Toda a lógica em vanilla JavaScript. Abriga regras de renderização (markdown.js), controle de estado, avaliador de código (code-runner.js) e lógicas de visualização./content/: Contém os diretórios das disciplinas com as aulas em.mde os arquivos JSON base, como olessons.json,disciplines.jsone o sumáriosearch-index.json./Aulas/: Estrudo histórico ou diretório extra contendo recursos legados ou secundários de estudos adicionais.index.htmlna raiz: ponto de entrada principal (Home).- Arquivos
.htmlem/public/: demais pontos de entrada do sistema (aula.html,exercise.html,stats.html, etc).
O projeto opta por não ter rotas estáticas pré-compiladas (SSG). Em vez disso, a renderização ocorre em tempo de execução no lado do cliente:
- Quando a página
aula.html?d=disciplina&a=aula-slugé aberta, a aplicação identifica os parâmetros da URL. - Uma requisição
fetch()assíncrona é disparada para capturar o conteúdo do arquivo.mdcorreto contido na pasta/content/. - O script interno
js/markdown.jsprocessa o conteúdo cru:- Extrai o cabeçalho
YAML(Frontmatter) manualmente para processar os metadados (título, tempo de leitura) e lista de exercícios. - Todo o corpo de texto subsequente é passado pela biblioteca Marked.js, que converte as diretrizes Markdown reais em
HTML.
- Extrai o cabeçalho
- Após injetado no DOM, outras bibliotecas entram em ação:
- Highlight.js é executado para os blocos syntax highlighting do código-fonte.
- Mermaid.js é avaliado caso existam blocos definidos como linguagem
mermaid, renderizando diagramas estruturais SVG no momento. - Os exercícios extraídos são compilados como marcação
<details>/<summary>do HTML puro e anexados ao rodapé.
Todo material de estudo ganha muito quando construído junto. Qualquer pessoa pode enviar melhorias na interface, correções de ortografia, novos diagramas, lições extras e exercícios criativos via Pull Requests. Siga o passo a passo:
- Faça o Fork deste repositório para a sua conta do GitHub.
- Crie a sua branch para a modificação (
git checkout -b feature/minha-melhoria-na-aula-x). - Comite suas alterações com descrições semânticas (
git commit -m 'Novo exercício de fixação no bloco de SQL'). - Dê o Push para sua conta localmente (
git push origin feature/minha-melhoria-na-aula-x). - Abra um Pull Request detalhando o que foi adicionado.
Este projeto é constantemente evoluído. Sinta-se à vontade para navegar pelos códigos e pelos subdiretórios para maiores esclarecimentos.
Gostou da iniciativa? Se esse projeto tiver agregado na sua base técnica, ajudado nos estudos do dia a dia ou servido de ferramenta útil para você aprender algo novo, não esqueça de deixar uma estrela (Star) brilhante aqui no canto superior direito do repositório do GitHub! Isso ajuda incrivelmente a espalhar a plataforma para mais estudantes e desenvolvedores interessados em evoluir. Muito obrigado!







