diff --git a/.github/ISSUE_TEMPLATE/add-new-activity.md b/.github/ISSUE_TEMPLATE/add-new-activity.md new file mode 100644 index 0000000..d917e61 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/add-new-activity.md @@ -0,0 +1,93 @@ +--- +name: 🎯 Adicionar Nova Atividade +about: Solicitar a criação de uma nova atividade extracurricular +title: "[NOVA ATIVIDADE] " +labels: ["enhancement", "activity", "teacher-request"] +assignees: [] +--- + +## 📋 Informações da Nova Atividade + +### Nome da Atividade + +**Nome:** + +### Descrição Detalhada + +**Descrição:** + +### Categoria da Atividade + +- [ ] Esportes +- [ ] Artes +- [ ] Acadêmica +- [ ] Tecnologia +- [ ] Música +- [ ] Teatro +- [ ] Outra: ___________ + +### Informações de Agendamento +**Dias da semana:** + + +**Horário:** + + +**Duração de cada sessão:** + + +### Limites e Requisitos +**Número máximo de participantes:** + + +**Pré-requisitos (se houver):** + + +### Professor Responsável +**Nome do professor:** + + +**Email de contato:** + + +## 🎯 Critérios de Aceitação + +- [ ] A nova atividade deve aparecer na lista de atividades disponíveis +- [ ] Alunos devem conseguir se inscrever na atividade +- [ ] O sistema deve respeitar o limite máximo de participantes +- [ ] As informações de horário devem ser exibidas corretamente +- [ ] A atividade deve ser categorizada adequadamente +- [ ] O professor responsável deve conseguir visualizar os alunos inscritos + +## 💡 Contexto Adicional + +### Localização das Aulas + +**Local:** + +### Materiais Necessários + +**Materiais:** + +### Observações Especiais + + +--- + +## 🔧 Informações Técnicas (Para o Agente de Codificação) + +**Arquivos que provavelmente precisarão ser modificados:** +- `src/main/java/com/mergingtonhigh/schoolmanagement/domain/entities/Activity.java` +- `src/main/java/com/mergingtonhigh/schoolmanagement/infrastructure/migrations/V001_InitialDatabaseSetup.java` +- Possível adição de novos tipos de atividade em `ActivityType.java` + +**Padrões a seguir:** +- Use validação de entrada nos construtores de entidade +- Implemente o padrão de Use Case na camada de aplicação +- Mantenha a separação de responsabilidades da Clean Architecture +- Adicione a nova atividade na configuração inicial do banco de dados (se necessário) + +**Considerações de teste:** +- Adicionar testes unitários para a nova atividade +- Verificar integração com sistema de inscrições +- Validar limites de participantes \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 0000000..63424cd --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,167 @@ +--- +name: 🐛 Relatar Problema no Sistema +about: Relatar um bug ou problema técnico no sistema de atividades +title: "[BUG] " +labels: ["bug", "teacher-report"] +assignees: [] +--- + +## 🐛 Descrição do Problema + +### O que estava tentando fazer? + + +### O que aconteceu? + + +### O que esperava que acontecesse? + + +## 🔍 Detalhes do Problema + +### Onde o problema ocorreu? + +- [ ] Página inicial de atividades +- [ ] Login de professor +- [ ] Inscrição de alunos +- [ ] Visualização de participantes +- [ ] Busca/filtro de atividades +- [ ] Informações de horários +- [ ] Outro: ___________ + +### Quando o problema acontece? + +- [ ] Sempre que tento fazer essa ação +- [ ] Às vezes (intermitente) +- [ ] Só aconteceu uma vez +- [ ] Acontece em horários específicos: ___________ + +### Que tipo de problema é? + +- [ ] Não consigo fazer login +- [ ] Informações incorretas sendo exibidas +- [ ] Página não carrega +- [ ] Botão não funciona +- [ ] Erro ao inscrever aluno +- [ ] Dados não salvam +- [ ] Mensagem de erro aparece +- [ ] Sistema lento +- [ ] Outro: ___________ + +## 📱 Informações do Ambiente + +### Qual dispositivo você estava usando? +- [ ] Computador/Laptop +- [ ] Tablet +- [ ] Celular + +### Qual navegador? +- [ ] Chrome +- [ ] Firefox +- [ ] Safari +- [ ] Edge +- [ ] Outro: ___________ + +### Sistema Operacional +- [ ] Windows +- [ ] Mac +- [ ] iOS +- [ ] Android +- [ ] Outro: ___________ + +## 🔄 Passos para Reproduzir + +### Como posso reproduzir este problema? + +1. +2. +3. +4. + +### Dados de exemplo (se aplicável) +**Nome da atividade:** +**Email do aluno:** +**Horário em que ocorreu:** + +## 📸 Evidências + +### Mensagens de erro + +``` +[Cole a mensagem de erro aqui] +``` + +### Comportamento observado + + +### Screenshots (se possível) + +_Anexar imagem ou descrever o que aparece na tela_ + +## ⚡ Urgência + +### Qual o impacto deste problema? +- [ ] Crítico - Não consigo trabalhar (precisa ser resolvido hoje) +- [ ] Alto - Atrapalha muito o trabalho (dentro de 2-3 dias) +- [ ] Médio - Inconveniente mas posso contornar (dentro de 1 semana) +- [ ] Baixo - Problema menor (quando possível) + +### Está afetando alunos? +- [ ] Sim, alunos não conseguem se inscrever +- [ ] Sim, alunos estão vendo informações erradas +- [ ] Sim, alunos estão confusos +- [ ] Não, só afeta professores +- [ ] Não tenho certeza + +## 💡 Informações Adicionais + +### Já tentou alguma solução? + + +### O problema começou recentemente? +- [ ] Nunca funcionou +- [ ] Parou de funcionar hoje +- [ ] Parou de funcionar esta semana +- [ ] Não lembro quando começou +- [ ] Funcionava antes, não sei quando parou + +### Observações + + +--- + +## 🔧 Informações Técnicas (Para o Agente de Codificação) + +**Áreas do código para investigar baseado no tipo de problema:** + +### Problemas de Login +- `src/main/java/com/mergingtonhigh/schoolmanagement/presentation/controllers/AuthController.java` +- `src/main/java/com/mergingtonhigh/schoolmanagement/application/usecases/AuthenticationUseCase.java` +- `src/main/resources/static/app.js` (funções de login) + +### Problemas de Atividades +- `src/main/java/com/mergingtonhigh/schoolmanagement/presentation/controllers/ActivityController.java` +- `src/main/java/com/mergingtonhigh/schoolmanagement/application/usecases/ActivityUseCase.java` +- `src/main/java/com/mergingtonhigh/schoolmanagement/domain/entities/Activity.java` + +### Problemas de Inscrição +- `src/main/java/com/mergingtonhigh/schoolmanagement/application/usecases/StudentRegistrationUseCase.java` +- `src/main/java/com/mergingtonhigh/schoolmanagement/domain/entities/Activity.java` + +### Problemas de Interface +- `src/main/resources/static/index.html` +- `src/main/resources/static/app.js` +- `src/main/resources/static/styles.css` + +**Padrões de debugging:** +- Verificar logs do Spring Boot para erros do backend +- Verificar console do navegador para erros JavaScript +- Testar endpoints da API diretamente +- Verificar validações de entrada +- Verificar status codes HTTP retornados +- Validar dados no MongoDB + +**Testes de regressão:** +- Criar teste automatizado que reproduza o bug +- Verificar se correção não quebra funcionalidades existentes +- Testar em diferentes navegadores se for problema de frontend \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..2cb4e6e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: 📚 Documentação do Sistema + url: https://github.com/juliannaPaz/java-copilot-code-agent/tree/main/docs + about: Consulte a documentação para dúvidas sobre o funcionamento do sistema + - name: 💬 Suporte Técnico Urgente + url: mailto:suporte.mergington@escola.edu.br + about: Para problemas críticos que impedem o trabalho, entre em contato diretamente \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md new file mode 100644 index 0000000..7dffb2c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -0,0 +1,165 @@ +--- +name: 🚀 Nova Funcionalidade +about: Solicitar uma nova funcionalidade ou melhoria no sistema +title: "[FUNCIONALIDADE] " +labels: ["enhancement", "feature-request", "teacher-request"] +assignees: [] +--- + +## 💡 Ideia da Nova Funcionalidade + +### Qual funcionalidade você gostaria de ver no sistema? + + +### Por que esta funcionalidade seria útil? + + +### Quem se beneficiaria desta funcionalidade? + +- [ ] Professores +- [ ] Alunos +- [ ] Administração da escola +- [ ] Pais dos alunos +- [ ] Todos os usuários + +## 🎯 Detalhes da Funcionalidade + +### Como você imagina que funcionaria? + +1. +2. +3. + +### Onde esta funcionalidade apareceria no sistema? + +- [ ] Página inicial +- [ ] Área de login +- [ ] Lista de atividades +- [ ] Página de cada atividade individual +- [ ] Painel do professor +- [ ] Nova página específica +- [ ] Outro: ___________ + +### Que tipo de funcionalidade é? + +- [ ] Relatórios e estatísticas +- [ ] Comunicação (notificações, mensagens) +- [ ] Organização (calendários, horários) +- [ ] Gestão de dados (importar/exportar) +- [ ] Interface (melhorias visuais) +- [ ] Automação (processos automáticos) +- [ ] Segurança (controles de acesso) +- [ ] Outro: ___________ + +## 📋 Exemplos e Cenários + +### Exemplo prático de uso + +**Cenário:** +**Como usaria:** +**Resultado esperado:** + +### Dados necessários + +- [ ] Informações dos alunos +- [ ] Dados das atividades +- [ ] Horários e agendas +- [ ] Histórico de participação +- [ ] Informações dos professores +- [ ] Dados externos (não disponíveis no sistema atual) +- [ ] Outro: ___________ + +## 🎨 Comportamento Esperado + +### Como deveria aparecer para o usuário? + + +### Que opções/configurações deveria ter? + +- +- +- + +### Como deveria integrar com funcionalidades existentes? + + +## ⚖️ Prioridade e Alternativas + +### Qual a urgência desta funcionalidade? +- [ ] Crítica - Sem isso não consigo fazer meu trabalho +- [ ] Alta - Melhoraria muito minha produtividade +- [ ] Média - Seria uma boa melhoria +- [ ] Baixa - Seria legal ter, mas não é essencial + +### Existe alguma alternativa atual? + +**Alternativa atual:** +**Por que não é suficiente:** + +### Funcionalidades similares em outros sistemas + + +## 🔍 Considerações Adicionais + +### Limitações ou restrições conhecidas + + +### Impacto em outros usuários + + +### Dados sensíveis ou privacidade + +- [ ] Não lida com dados sensíveis +- [ ] Lida com dados dos alunos +- [ ] Lida com dados dos professores +- [ ] Lida com notas ou avaliações +- [ ] Outro: ___________ + +--- + +## 🔧 Informações Técnicas (Para o Agente de Codificação) + +**Análise de arquitetura necessária:** + +### Impacto nas camadas da aplicação: +- **Domain Layer**: Novos entities, value objects ou domain services necessários? +- **Application Layer**: Novos use cases ou DTOs necessários? +- **Infrastructure Layer**: Mudanças no banco de dados ou integrações externas? +- **Presentation Layer**: Novos controllers, endpoints ou componentes de UI? + +### Considerações de implementação: +- Verificar se funcionalidade requer autenticação/autorização específica +- Avaliar se precisa de novos endpoints REST +- Considerar impacto na performance +- Verificar necessidade de migrações de banco de dados +- Avaliar compatibilidade com frontend existente + +### Padrões arquiteturais a seguir: +- Manter Clean Architecture com dependências corretas +- Implementar validação adequada nos domain entities +- Usar Use Cases para orquestrar lógica de negócio +- Seguir padrões REST para novos endpoints +- Manter separação entre DTOs e entities + +### Áreas de código relevantes: +``` +src/main/java/com/mergingtonhigh/schoolmanagement/ +├── domain/ +│ ├── entities/ +│ ├── valueobjects/ +│ └── repositories/ +├── application/ +│ ├── usecases/ +│ └── dtos/ +├── infrastructure/ +│ ├── persistence/ +│ └── migrations/ +└── presentation/ + └── controllers/ +``` + +### Testes necessários: +- Testes unitários para nova lógica de domínio +- Testes de integração para novos endpoints +- Testes de UI para novas funcionalidades frontend +- Testes de performance se aplicável \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/manage-student-registrations.md b/.github/ISSUE_TEMPLATE/manage-student-registrations.md new file mode 100644 index 0000000..1ba0e6f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/manage-student-registrations.md @@ -0,0 +1,129 @@ +--- +name: 👥 Gerenciar Inscrições de Alunos +about: Solicitar modificações nas inscrições de alunos em atividades +title: "[INSCRIÇÕES] " +labels: ["enhancement", "students", "registration", "teacher-request"] +assignees: [] +--- + +## 🎯 Informações da Solicitação + +### Nome da Atividade + +**Atividade:** + +### Tipo de Solicitação + +- [ ] Inscrever aluno manualmente +- [ ] Remover aluno da atividade +- [ ] Transferir aluno para outra atividade +- [ ] Visualizar lista de alunos inscritos +- [ ] Alterar limite de vagas da atividade +- [ ] Criar lista de espera +- [ ] Outro: ___________ + +## 👨‍🎓 Informações do(s) Aluno(s) + +### Para Inscrição Manual +**Nome do aluno:** +**Email do aluno:** +**Motivo da inscrição manual:** + + +### Para Remoção de Aluno +**Nome do aluno:** +**Email do aluno:** +**Motivo da remoção:** + + +### Para Transferência +**Nome do aluno:** +**Email do aluno:** +**Atividade de origem:** +**Atividade de destino:** +**Motivo da transferência:** + +### Para Alteração de Limite +**Limite atual:** +**Novo limite:** +**Justificativa:** + + +## 🎯 Critérios de Aceitação + +### Para Inscrição Manual +- [ ] O aluno deve ser adicionado à lista de participantes da atividade +- [ ] O sistema deve verificar se ainda há vagas disponíveis +- [ ] O aluno deve receber confirmação de inscrição +- [ ] O contador de participantes deve ser atualizado + +### Para Remoção de Aluno +- [ ] O aluno deve ser removido da lista de participantes +- [ ] Uma vaga deve ficar disponível para outros alunos +- [ ] O aluno deve ser notificado sobre a remoção +- [ ] Se há lista de espera, o próximo aluno deve ser automaticamente inscrito + +### Para Transferência +- [ ] O aluno deve ser removido da atividade de origem +- [ ] O aluno deve ser inscrito na atividade de destino +- [ ] Verificar disponibilidade de vagas na atividade de destino +- [ ] Ambas atividades devem ter contadores atualizados + +### Para Alteração de Limite +- [ ] O novo limite deve ser aplicado à atividade +- [ ] Se o novo limite for menor que o número atual de inscritos, deve haver tratamento especial +- [ ] Se o novo limite for maior, deve permitir mais inscrições + +## 💡 Contexto Adicional + +### Informações sobre o Aluno + + +### Impacto nas Outras Atividades + + +### Data Limite + +- [ ] Urgente (hoje) +- [ ] Esta semana +- [ ] Próximas duas semanas +- [ ] Não há pressa + +### Observações Especiais + + +--- + +## 🔧 Informações Técnicas (Para o Agente de Codificação) + +**Arquivos que provavelmente precisarão ser modificados:** +- `src/main/java/com/mergingtonhigh/schoolmanagement/application/usecases/StudentRegistrationUseCase.java` +- `src/main/java/com/mergingtonhigh/schoolmanagement/application/usecases/ActivityUseCase.java` +- `src/main/java/com/mergingtonhigh/schoolmanagement/domain/entities/Activity.java` +- `src/main/java/com/mergingtonhigh/schoolmanagement/application/dtos/StudentRegistrationDTO.java` + +**Métodos existentes para referência:** +- `Activity.canAddParticipant()` - verifica se há vagas +- `Activity.isParticipantRegistered(Email email)` - verifica se aluno já está inscrito +- `StudentRegistrationUseCase.registerStudent()` - para inscrições + +**Padrões a seguir:** +- Sempre validar autenticação do professor antes de modificações +- Verificar limites de participantes antes de inscrever +- Usar validação de email adequada +- Manter integridade dos dados +- Implementar transações para operações que afetam múltiplas entidades + +**Considerações importantes:** +- Verificar se atividade existe antes de qualquer operação +- Validar formato do email do aluno +- Implementar lógica de lista de espera se necessário +- Manter logs de auditoria das modificações +- Tratar casos onde o aluno já está inscrito ou não existe + +**Testes necessários:** +- Inscrição manual com e sem vagas disponíveis +- Remoção de aluno inscrito e não inscrito +- Transferência entre atividades +- Alteração de limites com diferentes cenários +- Validação de emails inválidos \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/modify-activity.md b/.github/ISSUE_TEMPLATE/modify-activity.md new file mode 100644 index 0000000..7e86774 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/modify-activity.md @@ -0,0 +1,116 @@ +--- +name: ✏️ Modificar Atividade Existente +about: Solicitar alterações em uma atividade já existente +title: "[MODIFICAR ATIVIDADE] " +labels: ["enhancement", "activity", "modification", "teacher-request"] +assignees: [] +--- + +## 🎯 Atividade a ser Modificada + +### Nome da Atividade Atual + +**Atividade:** + +## 📝 Modificações Solicitadas + +### Que tipo de modificação você precisa? + +- [ ] Alterar nome da atividade +- [ ] Alterar descrição +- [ ] Modificar horários +- [ ] Alterar dias da semana +- [ ] Mudar limite de participantes +- [ ] Alterar categoria +- [ ] Trocar professor responsável +- [ ] Modificar local das aulas +- [ ] Outro: ___________ + +### Informações Atuais vs. Novas + +#### Nome +- **Atual:** +- **Novo:** + + +#### Descrição +- **Atual:** +- **Nova:** + + +#### Horário +- **Atual:** +- **Novo:** + + +#### Dias da Semana +- **Atual:** +- **Novo:** + + +#### Limite de Participantes +- **Atual:** +- **Novo:** + + +#### Categoria +- **Atual:** +- **Nova:** + + +#### Professor Responsável +- **Atual:** +- **Novo:** + + +## 🎯 Critérios de Aceitação + +- [ ] As modificações devem ser aplicadas corretamente na atividade especificada +- [ ] Outros dados da atividade devem permanecer inalterados +- [ ] Alunos já inscritos devem continuar inscritos (a menos que especificado diferentemente) +- [ ] As novas informações devem aparecer corretamente na interface do usuário +- [ ] Se o limite de participantes for reduzido, o sistema deve lidar com isso adequadamente +- [ ] As modificações devem ser persistidas no banco de dados + +## 💡 Justificativa para a Mudança + +### Por que esta modificação é necessária? + + +### Há alunos já inscritos que podem ser afetados? + +- [ ] Não há alunos inscritos +- [ ] Há alunos inscritos, mas a mudança não os afeta +- [ ] Há alunos inscritos que podem ser afetados: ___________ + +### Urgência da Modificação +- [ ] Urgente (precisa ser feito esta semana) +- [ ] Normal (pode ser feito nas próximas 2 semanas) +- [ ] Baixa prioridade (quando possível) + +## 🔧 Informações Técnicas (Para o Agente de Codificação) + +**Arquivos que provavelmente precisarão ser modificados:** +- `src/main/java/com/mergingtonhigh/schoolmanagement/application/usecases/ActivityUseCase.java` +- `src/main/java/com/mergingtonhigh/schoolmanagement/domain/entities/Activity.java` +- `src/main/java/com/mergingtonhigh/schoolmanagement/infrastructure/persistence/ActivityRepositoryImpl.java` +- Possivelmente `src/main/java/com/mergingtonhigh/schoolmanagement/infrastructure/migrations/V001_InitialDatabaseSetup.java` + +**Considerações importantes:** +- Validate que a atividade existe antes de modificar +- Mantenha integridade referencial com alunos inscritos +- Se reduzir limite de participantes, implemente lógica para lidar com excesso +- Use validação de entrada nas modificações +- Mantenha logs de auditoria se necessário + +**Padrões a seguir:** +- Implemente método de atualização no Use Case de atividades +- Use validação apropriada nos setters da entidade Activity +- Mantenha separação de responsabilidades da Clean Architecture +- Adicione testes para as modificações + +**Testes necessários:** +- Verificar se modificações são aplicadas corretamente +- Testar casos onde alunos estão inscritos +- Validar limites de participantes modificados +- Testar integridade dos dados após modificação \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/schedule-modification.md b/.github/ISSUE_TEMPLATE/schedule-modification.md new file mode 100644 index 0000000..e2016fa --- /dev/null +++ b/.github/ISSUE_TEMPLATE/schedule-modification.md @@ -0,0 +1,171 @@ +--- +name: 📅 Modificar Horários e Agendas +about: Solicitar mudanças nos horários das atividades ou criar novos horários +title: "[HORÁRIOS] " +labels: ["enhancement", "schedule", "teacher-request"] +assignees: [] +--- + +## 🕐 Informações da Solicitação de Horário + +### Tipo de Modificação + +- [ ] Alterar horário de atividade existente +- [ ] Adicionar novo horário para atividade existente +- [ ] Remover horário de atividade +- [ ] Criar horário especial (evento único) +- [ ] Modificar dias da semana +- [ ] Ajustar duração das sessões +- [ ] Outro: ___________ + +### Nome da Atividade + +**Atividade:** + +## 📊 Detalhes Atuais vs. Novos + +### Horário Atual +**Dias da semana atuais:** + + +**Horário atual:** + + +**Duração atual:** + + +### Novo Horário Solicitado +**Novos dias da semana:** + + +**Novo horário:** + + +**Nova duração:** + + +### Para Horários Adicionais +**Horário adicional:** + + +**Dias do horário adicional:** + + +## 🏫 Informações de Local e Recursos + +### Local das Aulas +**Local atual:** +**Novo local (se aplicável):** + +### Disponibilidade do Local + +- [ ] Sim, confirmei que está livre +- [ ] Não tenho certeza, precisa verificar +- [ ] Sei que está ocupado, mas podemos negociar +- [ ] Preciso de ajuda para encontrar outro local + +### Recursos Necessários + +**Recursos atuais:** +**Novos recursos necessários:** + +## 👥 Impacto nos Participantes + +### Alunos Atualmente Inscritos +**Número de alunos afetados:** + + +### Comunicação com Alunos +- [ ] Já informei os alunos sobre a possível mudança +- [ ] Preciso informar os alunos após aprovação +- [ ] Os alunos solicitaram esta mudança +- [ ] A mudança não afeta alunos (ainda não há inscritos) + +### Conflitos de Horário + +- [ ] Não vejo conflitos +- [ ] Pode conflitar com: ___________ +- [ ] Preciso verificar conflitos +- [ ] Conflitos são aceitáveis + +## 📅 Prazo e Implementação + +### Quando a mudança deve entrar em vigor? +- [ ] Imediatamente +- [ ] Próxima semana +- [ ] Próximo mês +- [ ] Início do próximo período/semestre +- [ ] Data específica: ___________ + +### Motivo da Mudança + +**Justificativa:** + +### Urgência +- [ ] Crítica - Precisa ser alterado urgentemente +- [ ] Alta - Importante alterar em breve +- [ ] Normal - Pode aguardar algumas semanas +- [ ] Baixa - Quando for conveniente + +## 🎯 Critérios de Aceitação + +- [ ] O novo horário deve aparecer corretamente na lista de atividades +- [ ] Alunos devem ver as informações de horário atualizadas +- [ ] O sistema deve validar que não há conflitos impossíveis +- [ ] Se houver alunos inscritos, eles devem ser mantidos (a menos que especificado) +- [ ] As informações antigas devem ser substituídas pelas novas +- [ ] O horário deve ser formatado corretamente na interface + +## 💡 Informações Adicionais + +### Professor Responsável +**Nome:** +**Disponibilidade no novo horário:** +- [ ] Confirmado que estou disponível +- [ ] Preciso verificar minha agenda +- [ ] Terei conflitos, mas posso resolver + +### Observações Especiais + + +### Horários Alternativos + +**Alternativa 1:** +**Alternativa 2:** + +--- + +## 🔧 Informações Técnicas (Para o Agente de Codificação) + +**Arquivos que provavelmente precisarão ser modificados:** +- `src/main/java/com/mergingtonhigh/schoolmanagement/domain/valueobjects/ScheduleDetails.java` +- `src/main/java/com/mergingtonhigh/schoolmanagement/domain/entities/Activity.java` +- `src/main/java/com/mergingtonhigh/schoolmanagement/application/usecases/ActivityUseCase.java` +- `src/main/java/com/mergingtonhigh/schoolmanagement/infrastructure/migrations/V001_InitialDatabaseSetup.java` + +**Considerações sobre ScheduleDetails:** +- Value object existente que armazena dias da semana e horários +- Usar `LocalTime` para horários +- Lista de dias da semana como Strings +- Validar formato de horários e dias válidos + +**Padrões a seguir:** +- Validar horários usando `ScheduleDetails` adequadamente +- Verificar se novos horários não são conflitantes internamente +- Usar formato 24h para horários (`LocalTime`) +- Manter integridade de dados com alunos inscritos +- Implementar validação de entrada para horários + +**Validações necessárias:** +- Formato de horário válido (HH:mm) +- Dias da semana válidos +- Horário de início antes do horário de fim +- Duração mínima e máxima razoável +- Verificar se o valor object `ScheduleDetails` suporta as mudanças + +**Testes importantes:** +- Modificação de horários com alunos inscritos +- Validação de formatos de horário +- Criação de `ScheduleDetails` com novos dados +- Interface mostrando horários atualizados +- Migração de dados se necessário \ No newline at end of file diff --git a/docs/GUIA_PROFESSORES.md b/docs/GUIA_PROFESSORES.md new file mode 100644 index 0000000..00b08ac --- /dev/null +++ b/docs/GUIA_PROFESSORES.md @@ -0,0 +1,116 @@ +# 📝 Guia para Professores: Como Solicitar Mudanças no Sistema + +## Como Usar os Templates de Issues + +Agora você pode facilmente solicitar mudanças no sistema de atividades extracurriculares usando nossos formulários pré-formatados. Não é mais necessário saber como escrever issues técnicas! + +### 🚀 Como Começar + +1. **Acesse**: Vá para [Issues](../../issues) do repositório +2. **Clique**: "New Issue" (Nova Issue) +3. **Escolha**: O template que melhor descreve sua necessidade +4. **Preencha**: Todas as seções do formulário +5. **Envie**: Sua solicitação será automaticamente direcionada para o agente de codificação + +### 📋 Templates Disponíveis + +#### 🎯 Adicionar Nova Atividade +Use quando quiser criar uma nova atividade extracurricular. +- **Exemplo**: "Quero criar um clube de robótica" +- **Inclui**: Nome, descrição, horários, limites de participantes + +#### ✏️ Modificar Atividade Existente +Use para alterar informações de atividades já existentes. +- **Exemplo**: "Mudar o horário do clube de xadrez" +- **Inclui**: Dados atuais vs. novos dados + +#### 👥 Gerenciar Inscrições de Alunos +Use para questões relacionadas a alunos nas atividades. +- **Exemplo**: "Inscrever aluno manualmente" ou "Remover aluno" +- **Inclui**: Dados do aluno e tipo de operação + +#### 🐛 Relatar Problema no Sistema +Use quando algo não está funcionando corretamente. +- **Exemplo**: "Não consigo fazer login" ou "Aluno não aparece na lista" +- **Inclui**: Passos para reproduzir, screenshots, detalhes do erro + +#### 🚀 Nova Funcionalidade +Use para sugerir melhorias ou novas funcionalidades. +- **Exemplo**: "Quero um relatório de frequência dos alunos" +- **Inclui**: Descrição da ideia, benefícios, prioridade + +#### 📅 Modificar Horários e Agendas +Use especificamente para mudanças de horários. +- **Exemplo**: "Mudar o clube de arte de terça para quinta" +- **Inclui**: Horários atuais vs. novos, impacto nos alunos + +### ✅ Dicas para Preenchimento + +#### ✅ Faça Assim: +- **Seja específico**: "Clube de Xadrez" em vez de "atividade" +- **Forneça detalhes**: Horários completos, números exatos +- **Explique o motivo**: Por que a mudança é necessária +- **Mencione impactos**: Quantos alunos são afetados + +#### ❌ Evite Isso: +- Deixar campos em branco sem explicação +- Usar descrições vagas como "consertar isso" +- Esquecer de mencionar urgência +- Não especificar horários completos + +### 🔄 O Que Acontece Depois + +1. **Automático**: Sua issue é automaticamente etiquetada e categorizada +2. **Revisão**: O agente de codificação analisa sua solicitação +3. **Implementação**: As mudanças são feitas no código +4. **Teste**: O sistema é testado para garantir que funciona +5. **Notificação**: Você recebe updates sobre o progresso + +### 🆘 Precisa de Ajuda? + +#### Para Problemas Urgentes: +- Email: suporte.mergington@escola.edu.br +- Telefone: (11) 99999-9999 + +#### Para Dúvidas sobre o Sistema: +- Consulte a [documentação](../docs/) +- Abra uma issue de "Relatar Problema" + +#### Para Sugestões: +- Use o template "Nova Funcionalidade" +- Participe das reuniões mensais de feedback + +### 📊 Exemplos Práticos + +#### Exemplo 1: Nova Atividade +``` +Template: 🎯 Adicionar Nova Atividade +Nome: Clube de Robótica +Descrição: Atividade para alunos interessados em programação e montagem de robôs +Categoria: Tecnologia +Dias: Terça e Quinta +Horário: 15:00 às 16:30 +Limite: 15 alunos +Professor: João Silva +``` + +#### Exemplo 2: Problema +``` +Template: 🐛 Relatar Problema no Sistema +Problema: Não consigo ver alunos inscritos no Clube de Arte +Onde: Página da atividade individual +Quando: Sempre que clico em "Ver Participantes" +Navegador: Chrome +Urgência: Alta - preciso da lista para segunda-feira +``` + +### 🏆 Benefícios dos Templates + +- **⚡ Mais Rápido**: Não precisa pensar no que escrever +- **🎯 Mais Claro**: Informações organizadas e completas +- **🤖 Automático**: Agente de codificação entende exatamente o que fazer +- **📈 Melhor Resultado**: Implementação mais precisa e rápida + +--- + +**💡 Lembre-se**: Quanto mais detalhes você fornecer, melhor e mais rápido será o resultado! \ No newline at end of file