Mateval: Especificação do Software

De LEC

Ir para: navegação, pesquisa

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

Navegação no Sistema

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.

Ferramentas pessoais
Espaços nominais
Variantes
Ações
lec
comunidade
Navegação
Ferramentas