# Current development: Moving stuff to trello # Added installation notes: Context processors: "univ_oahpa.courses.context_processors.courses_user", "django.core.context_processors.csrf", Middleware: 'django.middleware.csrf.CsrfViewMiddleware', 'courses.middleware.GradingMiddleware', installed apps: 'django.contrib.staticfiles', 'univ_oahpa.courses', 'rest_framework', # ... 'notifications', 'django_messages', 'django_forms_bootstrap', TEMPLATE_LOADERS: 'django.template.loaders.app_directories.Loader', STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.AppDirectoriesFinder', ) COOKIE_NAME_STARTSWITH = 'wordpress_logged_in_' ## New packages in use - django-notifications-hq: https://github.com/brantyoung/django-notifications - django-messages: https://github.com/arneb/django-messages # Oppsummering fra prosjektbeskrivelsen: ## Status quo: * Innloggingssystem basert på Open-ID: brukar får ein konto i kursa, og cookie frå kursa/kuvsje gjeld alle subdomainar i `*.oahpa.no`. Oahpa ser på cookie:n, og loggar brukaren inn, og registrerar ein ny konto viss det trengst. * Bruk av ulike modular i Oahpa vert logga, og brukaren får oversikt over aktivitet, med nokre korte / enkle statistikk * Admin brukarar for logga inn på ein administrative grensesnitt for å leggja til nye lærarar i systemet * Admin brukarar kan setja brukarar som ansvarleg som lærar i fleire kurs. * Lærararfår oversikt over elevane deira: kan sjå på datoen av siste innlogging, statistikk, osv. Dette er generert av Django sitt admingrensesnittrammeverk. ### Neste stigar Nye innloggings-/registrasjons- eigenskapar: * Studentar får registrera seg i kurs dei fylgjar, og vert knytta opp mot ein lærar. * Lærar får rettleda studentar om oppgåvor dei bur gjera på ulike trinn i kurset. * Lærar får oversikt på progresjon i læringsmåla til kvar student, resymé Nye moglegheitar for tilbakemelding til studentar om statistikk / progresjon: * Oahpa og View vert logga. * Studentane får tilbakemelding på typar grammatiske feil dei gjer * Studentar får fylgja med på progresjon i forhold til læringsmål frå kurs dei er registrert i: - studenten får fargekode for nivå dei hev nådd i forhold til læringsmål - studenten får ogso prosent av arbeidsbyrden som er definert Nye moglegheitar for inndeling av oppgåvor: * Kurs-spesifiske læringsmål for grammatikk og ordforråd Nye moglegheitar for grammatiske feedback: * I forhold til studentane sine nivåklassifisering, får student ulike form for tilbakemelding: meir eller mindre faglig grammatisk terminologi * Unngå lange forklaringar: sporing av feedback studentar hev sedd på # Programmering ## Nye models * event / notification - student adds to course, need way of tracking new events to show to instructor when they log in - django rest framework for events shown to instructor, so they can dismiss easily each notification * Goal - related course - goal name - expected accuracy rate / condition for success - goal definitions: - exercise module (MORFA S, MORFA C, LEKSA, NUMRA) - exercise settings: - semantic sets, or case and number, and so forth - correct on first try vs. correct eventually - goal deep-links ## Endringar på eksisterande model * User profile model needs changes for level/statistics - related course - goals completed - grammatical feedback type * User log - UI events ulik frå correct/incorrect svar: brukar klikkar på feedback, opnar grammatikken, osv. - `process_template_response` middleware? - maybe this should be a different model: user feedback events - this also needs to reference user objects if they're avialable, instead of username. could be an irritating process to upgrade. - can also use signals to generate different types of log events: user enters answers partially vs. user enters all things - alternate option: store logs in courses module only for when a student is working toward a goal. * Morphological feedback models: - will need a means for specifying the "level" of the feedback. ### Moglege endringar * User log - course goal vs. general activity - viss studenten vel å trena på eit kursmål, vis i loggen ## Nye frontend endringar * Systemet må lagra ei loggmelding når studentar klikkar på morfologisk feedback, dvs.: JSON API for logg-eventar - systemet kan då velja kva slags feedback det burde visa neste gongen, når alt vert logga - django rest framework and angular.js for these things: http://www.django-rest-framework.org/ * Når studenten trenar på ulike oppgåvor som dei hev vald sjølv (f.eks., dei berre går gjennom Morfa-S), det kan henda dei vil framleis sjå ei lista over ting dei kan gjera i forhold til eit kurs: - ? spursmål: burde alle aktivitet i ei oppgåva gå til kursmål, eller berre når folk vel å trena på målet? f.eks., eksame-basert læring, eller statistikk/progresjon basert? ## Source data updates * Feedback xml files (`feedback_nouns.xml`, `messages.lang.xml`) need attributes for specifying message level. We can assume that there may be however many levels as the instructor is willing to define, but, message id needs to continue to be unique. Following is a maybe unrealistic example, but should illustrate the point: This should be an optional update, which doesn't cause problems if not present. e.g.: bisyllabic_stem --> bisyllabic_stem_I bisyllabic_stem_II bisyllabic_stem_III WORDFORM gets -t plural, and has two syllables. WORDFORM inflects as a bisyllabic noun in the nominative plural. * Need to determine what the behavior will be if there is not a message defined for the particular level, probably just take the highest level available? ## User flows Student sjølvregistrasjon: 1.) studenten vel eit kurs 2.) får tilgang til alle ulike måla på kurset 3.) burde lærar godkjenna, eller får studenten plutseleg tilgang til alle resurss? Mål-basert oppgåvor: 1.) studenten vel eit mål frå lista si 2.) når dei arbeider, alt arbeid går i måla - må ha ein måte at dei kan slå det av. Kanskje berre når dei navigerar bort frå sida, eller kvar spursmål-svar sett send ein variabel med kvar form submit ## New views * Student's courses * Student assignment/goals list * Instructor feedback # Questions ## Course goals: What sort of criteria do we expect the instructors to specify? I have a few ideas (i.e., 80% accuracy on Illative Pl), but also: A student needs to select that they will work on this goal, or can any work be counted? Must students choose to "test" themselves when they are ready? ## Course registration Students can register, maybe just by typing in a course name or following a link, instructors can always remove them.