Mateval: Especificação do Software
De LEC
Tabela de conteúdo |
Introdução
Este documento é uma expecificação não formal do Software MATEval. Seu objetivo é explorar os conceitos principais de design do sistema guiando seus desenvolvedores na implementação do protótipo funcional da ferramenta.
O que é o MATEval?
O MATEval é um software que foi concebido pelos pesquisadores do LEC durante o Projeto UCA. Ele propõe-se como um sistema para auxiliar o professor no planejamento e registro de suas atividades de sala de aula e avaliação de seus alunos. Para tanto ele utiliza os Parâmetros Curriculares Nacionais - PCNs como referªncia e guia para todas as ações dentro do sistema. Ele tem como objetivo secundário, ajudar os professores a se aprofundarem no conhecimento sobre os PCNs.
Idéias Principais
Os PCNs como linhas mestras para planejamento e avaliação
Histórico do desenvolvimento do Aluno
Integração entre os docentes de uma escola
Fundamentos de Design
- Registro rápido e sistemático
- Adequado a pequenas áreas do LAPTOP
- Exibição de dados significativos
Planejamento
Planejando e estabelecendo objetivos
Nesta tela, o usuário (professor) irá planejar em uma escala "macro" os objetivos a serem alcancados para cada turma que ele ministra aulas.
Cada professor tem suas matérias e turmas assimiladas pelo administrador da escola. Logo nesta tela, o professor escolherá uma das turmas que ele é responsável para associar objetivos a ela.
Haverá uma listagem (via combobox?) das turmas do professor, das quais ele irá selecionar uma. Logo após selecionar aparecerá uma listagem dos planejamentos de outros professores que foram feitos para aquela mesma turma selecionada. Acima desta lista, teremos a opcão de incluir um planejamento, e nesta etapa, caso o professor ministre mais uma de matéria na escola, ele poderá selecionar sobre qual matéria irá versar seu planejamento.
Na próxima etapa, o professor irá selecionar o período de planejamento ( de uma data inicial até outra final) e também selecionar se deseja associar objetivos oriundos dos temas transversais dos PCN's. Abaixo destas opcões, teremos uma listagem dos PCN's filtrados de acordo com a disciplina, série e temas transversais. Cada op?ão apresentada terá uma elemento checkbox (salvar por ajax) que irá permitir ao professor associar os objetivos macro do período de planejamento. Em cada objetivo, existirá um "leia mais" para que ele possa ver detalhes do objetivo e verificar se ele realmente atende suas expectativas. Ao final do planejamento, ele é levado de volta para (a tela de selecão de turmas?).
Modelos de dados
Relação entre User x Classroom x Subject
Sugestão para relacionamento entre User x Classroom x Subject usando um modelo N para N q opera através de um modelo de relacionamento (diferente do has_and_belongs_to_many que opera o relacionamento sem modelo).
Exemplo de uso:
class User < ActiveRecord::Base
has_many :memberships
has_many :roles, :through => :memberships
end
class Role < ActiveRecord::Base
has_many :memberships
has_many :users, :through => :memberships
end
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :role
end
Sugestão de como poderia ser esta relação em nosso projeto
class User < ActiveRecord::Base
has_many :subjects
has_many :classrooms, :through => :subjects
end
class Classroom < ActiveRecord::Base
has_many :subjects
has_many :users, :through => :subjects
end
class Subject < ActiveRecord::Base
belongs_to :user
belongs_to :classroom
end
Modelo Planning
Estou em dÃ?ºvida quanto ao uso da associação has_one. Esta relação, em meu ponto de vista e de acordo com a definição, somente pode ter uma instância de outro modelo. Preciso de feedback em relação a isso.
class Planning < ActiveRecord::Base
has_many :parameters
belongs_to :user
has_one :subject
has_one :classroom
end
Modelo User
Podemos evitar o uso do HABTM (has_and_belongs_to_many) através da relação :through citada acima. Enquanto aguardo feedback sobre mudar a estrutura continuamos com a estrutura padrão HABTM.
class User < ActiveRecord::Base has_many :plannings has_and_belongs_to_many :classrooms end
Nova idéia usando o relacionamento :through e tendo o relacionamento com inscriçoões do usuário seria assim:
class User < ActiveRecord::Base
has_many :subjects, :through => :subscriptions
end
class Subscription < ActiveRecord::Base
belongs_to :user
belongs_to :subject
end
Class Classroom < ActiveRecord::Base
belongs_to :subject
end
E alteraríamos as tabelas no BD de forma conivente ao nosso relacionamento.
obs: Para isso funcionar devemos trocar o campo year referente de turma para tabela de disciplinas.