From aa75cebaaaafd490a74cbfaab06163b6dfe85dc4 Mon Sep 17 00:00:00 2001 From: Gabriel Felipe Souza Santos Date: Tue, 27 Oct 2026 21:37:03 -0300 Subject: [PATCH] docs: separar material de TP em docs/tp/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit documentation/ fica neutra (produto); visão TP, tutorial Ping e checklists de entrega movem para docs/tp/ sem link reverso. Co-authored-by: Cursor --- README.md | 2 +- docs/README.md | 3 +-- docs/documentation/00_convencoes.md | 2 +- .../02_modulos_do_repositorio.md | 5 ++-- docs/documentation/04_inicializacao_e_gui.md | 5 ++-- docs/documentation/09_sistema_de_plugins.md | 4 ++-- docs/documentation/10_tutorial_plugin.md | 7 +++--- docs/documentation/11_plugins_referencia.md | 11 +++------ docs/documentation/13_guia_desenvolvimento.md | 2 +- docs/documentation/15_testes_e_gate.md | 8 ------- docs/documentation/16_fundamentacao_redes.md | 2 +- docs/documentation/README.md | 10 ++++---- .../appendix_portas_e_multicast.md | 4 ++-- docs/references/README.md | 2 +- .../01_visao_disciplina_e_tp.md | 8 +++---- .../02_tutorial_ping_aula.md} | 6 ++--- docs/tp/03_checklist_entrega.md | 23 +++++++++++++++++++ docs/tp/README.md | 15 ++++++++++++ plugins/ping/README.md | 23 ++++++++----------- 19 files changed, 80 insertions(+), 62 deletions(-) rename docs/{documentation => tp}/01_visao_disciplina_e_tp.md (85%) rename docs/{documentation/17_tutorial_ping_aula.md => tp/02_tutorial_ping_aula.md} (95%) create mode 100644 docs/tp/03_checklist_entrega.md create mode 100644 docs/tp/README.md diff --git a/README.md b/README.md index 61dd8af..af049ac 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Ferramenta **P2P** para práticas de Redes de Computadores: núcleo em Java com arquitetura de **plugins** (conversa na rede e compartilhamento de tela). -**Documentação:** [docs/README.md](docs/README.md) (trilhas aluno, redes e dev) · **Quickstart:** [docs/documentation/00_quickstart.md](docs/documentation/00_quickstart.md) · **Convenções:** [docs/documentation/00_convencoes.md](docs/documentation/00_convencoes.md) +**Documentação técnica:** [docs/README.md](docs/README.md) · **Quickstart:** [docs/documentation/00_quickstart.md](docs/documentation/00_quickstart.md) · **Convenções:** [docs/documentation/00_convencoes.md](docs/documentation/00_convencoes.md) --- diff --git a/docs/README.md b/docs/README.md index 77485b9..e370be8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -16,9 +16,8 @@ Convenções editoriais: [documentation/00_convencoes.md](documentation/00_conve | Leitor | Trilha | | --- | --- | -| **Aluno (TP)** | [00_quickstart](documentation/00_quickstart.md) → [09_sistema_de_plugins](documentation/09_sistema_de_plugins.md) → [10_tutorial_plugin](documentation/10_tutorial_plugin.md) → [17_tutorial_ping_aula](documentation/17_tutorial_ping_aula.md) → [11_plugins_referencia](documentation/11_plugins_referencia.md) | +| **Primeiro uso** | [00_quickstart](documentation/00_quickstart.md) → [09_sistema_de_plugins](documentation/09_sistema_de_plugins.md) → [10_tutorial_plugin](documentation/10_tutorial_plugin.md) → [11_plugins_referencia](documentation/11_plugins_referencia.md) | | **Redes (conceito + código)** | [16_fundamentacao_redes](documentation/16_fundamentacao_redes.md) → [05](documentation/05_udp_multicast.md)–[08](documentation/08_heartbeat_e_presenca.md) → [appendix_portas_e_multicast](documentation/appendix_portas_e_multicast.md) | -| **Monitor / docência** | [01_visao_disciplina_e_tp](documentation/01_visao_disciplina_e_tp.md) → [15_testes_e_gate](documentation/15_testes_e_gate.md) | | **Desenvolvedor núcleo** | [13_guia_desenvolvimento](documentation/13_guia_desenvolvimento.md) → [14_arquitetura_e_manutencao](documentation/14_arquitetura_e_manutencao.md) → [04_inicializacao_e_gui](documentation/04_inicializacao_e_gui.md) | ## Manutenção rápida diff --git a/docs/documentation/00_convencoes.md b/docs/documentation/00_convencoes.md index ada6099..5d530f1 100644 --- a/docs/documentation/00_convencoes.md +++ b/docs/documentation/00_convencoes.md @@ -19,7 +19,7 @@ Não descreva funcionalidade futura como se já existisse. ## Código nos exemplos -- Trechos de tutorial são **ilustrativos** quando indicado; o aluno completa o plugin (ver [17_tutorial_ping_aula.md](17_tutorial_ping_aula.md)). +- Trechos de tutorial são **ilustrativos** quando indicado; complete o plugin conforme [10_tutorial_plugin.md](10_tutorial_plugin.md). - APIs citadas devem existir no núcleo atual (`PluginWorkspace`, `createPlugin(ConnectionManager, PluginWorkspace)`). ## Diagramas diff --git a/docs/documentation/02_modulos_do_repositorio.md b/docs/documentation/02_modulos_do_repositorio.md index 79ec58c..0abf6fc 100644 --- a/docs/documentation/02_modulos_do_repositorio.md +++ b/docs/documentation/02_modulos_do_repositorio.md @@ -7,8 +7,7 @@ pitiupi/ # clone (este repositório) ├── pitiupi/ # núcleo P2P (executável) ├── plugins/ │ ├── chat/ # chat unificado (UDP/multicast/TCP + TCP privado) -│ ├── screencast/ # compartilhamento de tela -│ └── ping/ # exercício de aula (só doc) +│ └── screencast/ # compartilhamento de tela └── docs/ ``` @@ -25,4 +24,4 @@ pitiupi/ # clone (este repositório) | `plugins/chat` | `ant jar` | `dist/pitiupi.chat.jar` | `pitiupi.chat.plugin.ChatPlugin` | | `plugins/screencast` | `ant jar` | `dist/pitiupi.screenCast.jar` | `pitiupi.screenCast.plugin.ScreenCastPlugin` | -Ver [10_tutorial_plugin.md](10_tutorial_plugin.md) e [17_tutorial_ping_aula.md](17_tutorial_ping_aula.md). +Novo módulo: [10_tutorial_plugin.md](10_tutorial_plugin.md). diff --git a/docs/documentation/04_inicializacao_e_gui.md b/docs/documentation/04_inicializacao_e_gui.md index 6150e00..710d4bb 100644 --- a/docs/documentation/04_inicializacao_e_gui.md +++ b/docs/documentation/04_inicializacao_e_gui.md @@ -10,9 +10,8 @@ plugins. A comunicação de rede utiliza dois protocolos de transporte: UDP, empregado principalmente na descoberta e comunicação multicast entre as instâncias, e TCP, utilizado para comunicação direta e persistente entre peers. -O projeto foi desenvolvido como suporte às práticas da disciplina de Redes de -Computadores, servindo também como base para experimentação de aplicações -distribuídas e desenvolvimento de projetos acadêmicos. +O projeto serve como base para experimentação de aplicações distribuídas e +desenvolvimento de extensões via plugins. Índice: [README.md](README.md). diff --git a/docs/documentation/09_sistema_de_plugins.md b/docs/documentation/09_sistema_de_plugins.md index a89016e..8156dd4 100644 --- a/docs/documentation/09_sistema_de_plugins.md +++ b/docs/documentation/09_sistema_de_plugins.md @@ -51,7 +51,7 @@ MeusPlugins.plugins.NomeDaClasse Para serem carregados, os plugins devem estar empacotados como arquivos JAR e colocados no diretório plugins da aplicação. -O catálogo de build (`plugins.registry.json`) cobre só **chat** e **screencast** no CI. Exercícios (ex. [ping](17_tutorial_ping_aula.md)) ficam fora do repositório — o aluno instala o JAR localmente após `ant jar`. +O catálogo de build (`plugins.registry.json`) cobre **chat** e **screencast** no gate de CI. Outros módulos podem ser buildados localmente e instalados via JAR em `PITIUPI_HOME/plugins` sem entrar no catálogo. ### Carregamento de plugins @@ -82,7 +82,7 @@ Na `MainShellFrame`, `createPlugin(ConnectionManager, PluginWorkspace)` registra Em abas de **recebimento** (ex. screencast `view:`), `PluginRoutingPanel.bindReceiveSession` deixa IP e forma de envio somente leitura, refletindo o que o remetente usou. -## Segurança e plugins externos (aula) +## Segurança e plugins de terceiros - Instale apenas JARs de fontes confiáveis (`PITIUPI_HOME/plugins` ou aba Configurações). - O núcleo desserializa mensagens de rede com classloader por plugin; mensagens malformadas devem ser ignoradas, mas **não** há sandbox — um JAR malicioso tem o mesmo poder de um programa local. diff --git a/docs/documentation/10_tutorial_plugin.md b/docs/documentation/10_tutorial_plugin.md index 97cfea5..555f7d8 100644 --- a/docs/documentation/10_tutorial_plugin.md +++ b/docs/documentation/10_tutorial_plugin.md @@ -1,6 +1,6 @@ # Tutorial — criar um plugin -Complementa [09_sistema_de_plugins.md](09_sistema_de_plugins.md). Exercício guiado completo: [17_tutorial_ping_aula.md](17_tutorial_ping_aula.md). Use `plugins/chat` como **modelo de estrutura** (Ant, SPI, painel). +Complementa [09_sistema_de_plugins.md](09_sistema_de_plugins.md). Use `plugins/chat` como **modelo de estrutura** (Ant, SPI, painel). Os exemplos abaixo são **parciais** — você completa métodos, UI e testes. @@ -90,9 +90,9 @@ pacote.MeuPlugin Confirme com `jar tf dist/seu.jar | grep META-INF/services`. -## 5. Catálogo (opcional para TP) +## 5. Catálogo (opcional) -Para build com `./scripts/pitiupi.sh`, adicione entrada em [`plugins.registry.json`](../../plugins.registry.json). Exercícios locais podem instalar só o JAR pela aba **Configurações**. +Para build com `./scripts/pitiupi.sh`, adicione entrada em [`plugins.registry.json`](../../plugins.registry.json). Módulos só locais podem instalar o JAR pela aba **Configurações** sem entrar no catálogo. ## 6. Build e instalação @@ -119,5 +119,4 @@ cd plugins/meuPlugin && ant jar ## Próximos passos -- [17_tutorial_ping_aula.md](17_tutorial_ping_aula.md) — exercício Ping (RTT, UDP) - [11_plugins_referencia.md](11_plugins_referencia.md) — chat e screencast diff --git a/docs/documentation/11_plugins_referencia.md b/docs/documentation/11_plugins_referencia.md index de59c13..3ae21e5 100644 --- a/docs/documentation/11_plugins_referencia.md +++ b/docs/documentation/11_plugins_referencia.md @@ -46,18 +46,13 @@ Código de entrada: `plugins/screencast/src/pitiupi/screenCast/plugin/ScreenCast **Limitação:** largura de banda e MTU — frames grandes podem sofrer perda em UDP; adequado para demonstração, não para produção. -## Exercício Ping +## Limitações (não são bugs) -Material em [17_tutorial_ping_aula.md](17_tutorial_ping_aula.md) e pasta `plugins/ping/` (sem código/JAR no repositório). Não entra no `plugins.registry.json` nem no gate CI. - -## Limitações didáticas (não são bugs) - -Os plugins de referência são **exemplos de sala de aula**, não produtos completos: +Os plugins de referência são **exemplos de demonstração**, não produtos completos: | Plugin | Inclui | Não inclui (de propósito) | | --- | --- | --- | | **chat** | texto, sala geral, unicast/multicast/TCP, TCP privado básico | imagens, moderação, histórico persistente, criptografia | | **screencast** | stream read-only, avisos de sessão | controle remoto do mouse/teclado, áudio | -| **ping** (exercício do aluno) | chrome de sessão v1 (`PluginRoutingPanel`, abas ↑/↓), RTT, UDP apenas | TCP privado, ICMP do SO, gráficos, SLA | -Para evoluir: copie o padrão (`Plugin` + mensagens + painel na aba) e acrescente features no **seu** JAR — sem inflar o núcleo. +Para evoluir: copie o padrão (`Plugin` + mensagens + painel na aba) e acrescente features no seu JAR — sem inflar o núcleo. Ver [10_tutorial_plugin.md](10_tutorial_plugin.md). diff --git a/docs/documentation/13_guia_desenvolvimento.md b/docs/documentation/13_guia_desenvolvimento.md index 6001b12..11ea95b 100644 --- a/docs/documentation/13_guia_desenvolvimento.md +++ b/docs/documentation/13_guia_desenvolvimento.md @@ -13,7 +13,7 @@ Esta documentação descreve a ferramenta Pitiupi neste repositório: build, red | Tarefa | Ler primeiro | | --- | --- | -| Novo plugin (aluno) | [10_tutorial_plugin.md](10_tutorial_plugin.md), [11_plugins_referencia.md](11_plugins_referencia.md) | +| Novo plugin | [10_tutorial_plugin.md](10_tutorial_plugin.md), [11_plugins_referencia.md](11_plugins_referencia.md) | | Bug UDP / multicast | [05_udp_multicast.md](05_udp_multicast.md), [appendix_portas_e_multicast.md](appendix_portas_e_multicast.md) | | Bug TCP / conexão | [06_tcp_conexoes.md](06_tcp_conexoes.md) | | Presença / lista de usuários | [08_heartbeat_e_presenca.md](08_heartbeat_e_presenca.md) | diff --git a/docs/documentation/15_testes_e_gate.md b/docs/documentation/15_testes_e_gate.md index b24d1d2..f394806 100644 --- a/docs/documentation/15_testes_e_gate.md +++ b/docs/documentation/15_testes_e_gate.md @@ -50,14 +50,6 @@ Mesma **porta** em ambos (ex. 5000), **mesmos JARs** em `~/pitiupi/plugins` em c - [ ] Presença e linha **Todos** - [ ] Troca de mensagens no chat (multicast e, se possível, unicast/TCP) - [ ] Compartilhamento de tela entre os dois (ambiente com captura de tela funcional — no WSL a captura nativa pode falhar) -- [ ] Plugin Ping do aluno (tutorial [17_tutorial_ping_aula.md](17_tutorial_ping_aula.md)) medindo RTT — recomendado antes da entrega final - -## Checklist plugin de aluno - -- [ ] JAR em `PITIUPI_HOME/plugins` + SPI correto -- [ ] README do módulo com build e formato das mensagens -- [ ] UI na aba (`PluginWorkspace`), sem `JFrame` principal -- [ ] Demonstração mínima professor ↔ aluno ou aluno ↔ aluno ## Melhorias futuras diff --git a/docs/documentation/16_fundamentacao_redes.md b/docs/documentation/16_fundamentacao_redes.md index d4fd922..7257f25 100644 --- a/docs/documentation/16_fundamentacao_redes.md +++ b/docs/documentation/16_fundamentacao_redes.md @@ -50,7 +50,7 @@ Doc: [09_sistema_de_plugins.md](09_sistema_de_plugins.md). | Situação | Transporte típico | Motivo | | --- | --- | --- | | Lista de usuários / heartbeat | UDP multicast | Todos os peers sem conexão prévia | -| Sala geral (chat, ping broadcast) | UDP multicast ou cópias unicast/TCP conforme combo | Didático: aluno vê diferença na UI | +| Sala geral (chat, broadcast) | UDP multicast ou cópias unicast/TCP conforme combo | Escolha explícita na UI do plugin | | Mensagem para um IP | UDP unicast ou TCP | Destino explícito | | Fluxo contínuo (tela, TCP privado chat) | TCP | Fluxo e framing no núcleo | diff --git a/docs/documentation/README.md b/docs/documentation/README.md index 6825bc0..c44086c 100644 --- a/docs/documentation/README.md +++ b/docs/documentation/README.md @@ -6,10 +6,10 @@ | Área | Arquivos | | --- | --- | -| **Início** | [00_quickstart](00_quickstart.md), [01_visao_disciplina_e_tp](01_visao_disciplina_e_tp.md), [02_modulos](02_modulos_do_repositorio.md), [03_build](03_build_ant_netbeans.md) | +| **Início** | [00_quickstart](00_quickstart.md), [02_modulos](02_modulos_do_repositorio.md), [03_build](03_build_ant_netbeans.md) | | **Arquitetura e GUI** | [04_inicializacao_e_gui](04_inicializacao_e_gui.md), [13_guia_desenvolvimento](13_guia_desenvolvimento.md), [14_arquitetura_e_manutencao](14_arquitetura_e_manutencao.md) | | **Rede** | [05_udp_multicast](05_udp_multicast.md), [06_tcp_conexoes](06_tcp_conexoes.md), [07_mensagens](07_mensagens_e_serializacao.md), [08_heartbeat](08_heartbeat_e_presenca.md), [16_fundamentacao_redes](16_fundamentacao_redes.md), [appendix_portas_e_multicast](appendix_portas_e_multicast.md) | -| **Plugins** | [09_sistema_de_plugins](09_sistema_de_plugins.md), [10_tutorial_plugin](10_tutorial_plugin.md), [17_tutorial_ping_aula](17_tutorial_ping_aula.md), [11_plugins_referencia](11_plugins_referencia.md), [12_transporte_e_peer_actions](12_menus_unicast_multicast.md) | +| **Plugins** | [09_sistema_de_plugins](09_sistema_de_plugins.md), [10_tutorial_plugin](10_tutorial_plugin.md), [11_plugins_referencia](11_plugins_referencia.md), [12_transporte_e_peer_actions](12_menus_unicast_multicast.md) | | **Qualidade** | [15_testes_e_gate](15_testes_e_gate.md), [engineering_backlog](engineering_backlog.md) | ## Ordem linear (referência) @@ -17,10 +17,10 @@ | # | Arquivo | Conteúdo | | --- | --- | --- | | 0 | [00_quickstart.md](00_quickstart.md) | Build, plugins, duas instâncias | -| 1–3 | 01–03 | Disciplina, módulos, Ant | +| 2–3 | 02–03 | Módulos, Ant | | 4 | [04_inicializacao_e_gui.md](04_inicializacao_e_gui.md) | Boot, `MainShellFrame`, shell Swing | | 5–8 | 05–08 | UDP, TCP, mensagens, presença | -| 9–12 | 09–12 | Plugins, tutoriais, transporte na UI | +| 9–12 | 09–12 | Plugins, tutorial genérico, transporte na UI | | 13–15 | 13–15 | Dev, manutenção, testes | -| 16–17 | 16–17 | Fundamentação redes, exercício Ping | +| 16 | [16_fundamentacao_redes.md](16_fundamentacao_redes.md) | Fundamentação redes ↔ código | | — | [appendix_portas_e_multicast.md](appendix_portas_e_multicast.md) | Portas, Wi‑Fi, WSL | diff --git a/docs/documentation/appendix_portas_e_multicast.md b/docs/documentation/appendix_portas_e_multicast.md index 1c61e53..f6a85a4 100644 --- a/docs/documentation/appendix_portas_e_multicast.md +++ b/docs/documentation/appendix_portas_e_multicast.md @@ -11,7 +11,7 @@ - Grupo: **`224.0.0.3`** (fixo no código do núcleo). - Buffer UDP: **256000** bytes (configuração em `SocketUDP`). -Todos os peers na mesma LAN devem usar a **mesma porta** para participar do mesmo “grupo lógico” da aula (portas diferentes = grupos isolados). +Todos os peers na mesma LAN devem usar a **mesma porta** para participar do mesmo grupo lógico de peers (portas diferentes = grupos isolados). ## Mesmo computador @@ -40,7 +40,7 @@ Ao abrir conversa pela lista de presença, o campo de destino usa **`PeerIpv4`** ## Checklist — dois PCs na mesma Wi‑Fi 1. **Mesma porta no login** (ex.: `5000` nos dois). Portas diferentes isolam a sala. -2. **Configurações → Sua conexão:** IPs na mesma sub-rede (ex. ambos `192.168.0.x` ou `192.168.1.x`). Se um for `172.x` (WSL/Docker) e outro `192.168.x`, o multicast da aula não cruza. +2. **Configurações → Sua conexão:** IPs na mesma sub-rede (ex. ambos `192.168.0.x` ou `192.168.1.x`). Se um for `172.x` (WSL/Docker) e outro `192.168.x`, o multicast entre esses hosts não cruza. 3. **Firewall:** liberar **UDP entrada e saída** na porta do login (Windows Defender / `ufw`). 4. **Roteador:** desativar *isolamento de clientes* / *AP isolation* / Wi‑Fi de visitantes. 5. Aguardar até **~15 s** após abrir os dois apps (heartbeat a cada 5 s). diff --git a/docs/references/README.md b/docs/references/README.md index 7b7ebb6..bcb08e9 100644 --- a/docs/references/README.md +++ b/docs/references/README.md @@ -1,6 +1,6 @@ # Referências — Pitiupi -Bibliografia e notas curtas para apoiar a disciplina de Redes de Computadores. **Fonte única** para citações longas — capítulos em `documentation/` linkam aqui em vez de repetir bibliografia. +Bibliografia e notas curtas para apoiar o estudo de Redes de Computadores. **Fonte única** para citações longas — capítulos em `documentation/` linkam aqui em vez de repetir bibliografia. **Sugestões de livro-texto:** Kurose & Ross — *Redes de Computadores e a Internet*; Tanenbaum — *Redes de Computadores*; Peterson & Davie — *Redes de Computadores*. diff --git a/docs/documentation/01_visao_disciplina_e_tp.md b/docs/tp/01_visao_disciplina_e_tp.md similarity index 85% rename from docs/documentation/01_visao_disciplina_e_tp.md rename to docs/tp/01_visao_disciplina_e_tp.md index fdd34f0..e46b376 100644 --- a/docs/documentation/01_visao_disciplina_e_tp.md +++ b/docs/tp/01_visao_disciplina_e_tp.md @@ -29,7 +29,7 @@ Exemplos de tema: chat temático, tabuleiro (xadrez/damas), compartilhamento de | `plugins/screencast` | Payload maior / streaming de imagem | | `plugins/chat` | Multicast, unicast, TCP e canal TCP privado | -Detalhes: [11_plugins_referencia.md](11_plugins_referencia.md). +Detalhes: [11_plugins_referencia.md](../documentation/11_plugins_referencia.md). ## Critérios genéricos (ajustar na disciplina) @@ -42,6 +42,6 @@ Detalhes: [11_plugins_referencia.md](11_plugins_referencia.md). ## Para monitores -- Roteiro de build: [00_quickstart.md](00_quickstart.md). -- Checklist de entrega: [15_testes_e_gate.md](15_testes_e_gate.md). -- Fundamentação para dúvidas de alunos: [16_fundamentacao_redes.md](16_fundamentacao_redes.md). +- Roteiro de build: [00_quickstart.md](../documentation/00_quickstart.md). +- Checklist de entrega: [03_checklist_entrega.md](03_checklist_entrega.md). +- Fundamentação para dúvidas de alunos: [16_fundamentacao_redes.md](../documentation/16_fundamentacao_redes.md). diff --git a/docs/documentation/17_tutorial_ping_aula.md b/docs/tp/02_tutorial_ping_aula.md similarity index 95% rename from docs/documentation/17_tutorial_ping_aula.md rename to docs/tp/02_tutorial_ping_aula.md index 00c4713..02aaa2d 100644 --- a/docs/documentation/17_tutorial_ping_aula.md +++ b/docs/tp/02_tutorial_ping_aula.md @@ -4,7 +4,7 @@ Exercício para montar o plugin **mais simples** do Pitiupi: medir **RTT** (temp A solução completa **não** entra no repositório público: o aluno desenvolve em `plugins/ping/` na máquina local (fora do gate CI). Este tutorial traz escopo, trechos e verificações — você implementa o restante. -Índice: [README.md](README.md) · Plugins de referência: [11_plugins_referencia.md](11_plugins_referencia.md). +Índice TP: [README.md](README.md) · Plugins de referência: [11_plugins_referencia.md](../documentation/11_plugins_referencia.md). ## O que você vai aprender @@ -28,7 +28,7 @@ A solução completa **não** entra no repositório público: o aluno desenvolve ## Pré-requisitos 1. Pitiupi abrindo com login (nome + porta). -2. [`09_sistema_de_plugins.md`](09_sistema_de_plugins.md). +2. [`09_sistema_de_plugins.md`](../documentation/09_sistema_de_plugins.md). 3. JDK 17 + Ant. 4. Núcleo compilado: `pitiupi/dist/pitiupi.jar`. @@ -142,7 +142,7 @@ O chat usa a mesma ideia de abas de sessão, mas adiciona roteamento TCP privado | `ClassCastException` | Versões diferentes do JAR entre PCs | | Aba não abre | Esqueceu `bindShellWorkspaceContent` ou peer action só abre UI (envio é no painel) | -Mais geral: [10_tutorial_plugin.md](10_tutorial_plugin.md#problemas-comuns). +Mais geral: [10_tutorial_plugin.md](../documentation/10_tutorial_plugin.md#problemas-comuns). ## Checklist do aluno diff --git a/docs/tp/03_checklist_entrega.md b/docs/tp/03_checklist_entrega.md new file mode 100644 index 0000000..6216d7d --- /dev/null +++ b/docs/tp/03_checklist_entrega.md @@ -0,0 +1,23 @@ +# Checklist de entrega — trabalho prático + +Complementa os testes do produto em [15_testes_e_gate.md](../documentation/15_testes_e_gate.md). + +## Rede em sala (dois PCs, mesma Wi‑Fi) + +Mesma **porta** em ambos (ex. 5000), **mesmos JARs** de referência em `~/pitiupi/plugins` em cada máquina: + +- [ ] Presença e linha **Todos** +- [ ] Troca de mensagens no chat (multicast e, se possível, unicast/TCP) +- [ ] Compartilhamento de tela entre os dois (ambiente com captura de tela funcional — no WSL a captura nativa pode falhar) +- [ ] Plugin **Ping** ( [02_tutorial_ping_aula.md](02_tutorial_ping_aula.md) ) medindo RTT — recomendado antes da entrega final + +## Plugin entregue (seu trabalho) + +- [ ] JAR em `PITIUPI_HOME/plugins` + SPI correto +- [ ] README do módulo com build e formato das mensagens +- [ ] UI na aba (`PluginWorkspace`), sem `JFrame` principal +- [ ] Demonstração mínima professor ↔ aluno ou aluno ↔ aluno + +## Ping (exercício de sala) + +- [ ] Concluído conforme checklist em [02_tutorial_ping_aula.md](02_tutorial_ping_aula.md) diff --git a/docs/tp/README.md b/docs/tp/README.md new file mode 100644 index 0000000..82cfee5 --- /dev/null +++ b/docs/tp/README.md @@ -0,0 +1,15 @@ +# Trabalho prático — Redes de Computadores + +Material da disciplina: visão do TP, exercício **Ping** em sala e checklists de entrega. + +Para **uso do Pitiupi, protocolos e desenvolvimento de plugins em geral**, use a documentação técnica em [documentation/](../documentation/README.md). + +## Ordem sugerida + +| # | Documento | +| --- | --- | +| 1 | [01_visao_disciplina_e_tp.md](01_visao_disciplina_e_tp.md) | +| 2 | [02_tutorial_ping_aula.md](02_tutorial_ping_aula.md) | +| 3 | [03_checklist_entrega.md](03_checklist_entrega.md) | + +Esta pasta pode ser removida localmente após o semestre; o núcleo e `docs/documentation/` continuam válidos para qualquer extensão do projeto. diff --git a/plugins/ping/README.md b/plugins/ping/README.md index 558ce0c..5035491 100644 --- a/plugins/ping/README.md +++ b/plugins/ping/README.md @@ -1,20 +1,17 @@ -# Plugin Ping (exercício de aula) +# Plugin Ping (exercício local) -Material didático para o aluno **implementar** um plugin de Ping/Pong com medição de RTT. No Git ficam só este README e o [tutorial](../../docs/documentation/17_tutorial_ping_aula.md). Código e `build.xml` locais estão no `.gitignore` (`src/`, `nbproject/`, `dist/`). +Pasta opcional para desenvolver um módulo de Ping/Pong com medição de RTT. O código de solução **não** faz parte do gate CI do repositório. -## Onde está o tutorial +Tutorial passo a passo: [docs/tp/02_tutorial_ping_aula.md](../../docs/tp/02_tutorial_ping_aula.md). -Tutorial canônico (passo a passo): [docs/documentation/17_tutorial_ping_aula.md](../../docs/documentation/17_tutorial_ping_aula.md). +## Fluxo de trabalho -## Como o aluno trabalha - -1. Copiar a estrutura de [`plugins/chat`](../chat) para um projeto local (ou criar `plugins/ping` com `src/` apenas no fork pessoal). -2. Implementar `PingPlugin`, mensagens e `PingPanel` (`JPanel` + `bindShellWorkspaceContent`). -3. Build: `ant jar` → `dist/pitiupi.ping.jar`. -4. Instalar em `PITIUPI_HOME/plugins/` e reiniciar o Pitiupi. -5. Abrir o plugin pela aba **Plugins** na galeria (aba não abre sozinha no boot). +1. Copiar a estrutura de [`plugins/chat`](../chat) para `plugins/ping` (local). +2. Implementar `PingPlugin`, mensagens e painel (`bindShellWorkspaceContent`). +3. `ant jar` → instalar JAR em `PITIUPI_HOME/plugins/` e reiniciar o Pitiupi. +4. Abrir o plugin pela galeria **Plugins**. ## Pré-requisitos -- Núcleo compilado: `../../pitiupi/dist/pitiupi.jar` -- Leitura: [09_sistema_de_plugins.md](../../docs/documentation/09_sistema_de_plugins.md) +- Núcleo: `../../pitiupi/dist/pitiupi.jar` +- SPI e mensagens: [09_sistema_de_plugins.md](../../docs/documentation/09_sistema_de_plugins.md)