simon-initiative / oli-torus Goto Github PK
View Code? Open in Web Editor NEWNext Generation OLI Authoring and Delivery Platform
Home Page: https://proton.oli.cmu.edu
License: MIT License
Next Generation OLI Authoring and Delivery Platform
Home Page: https://proton.oli.cmu.edu
License: MIT License
Complete implementation of short answer activity.
A first step in delivery, students can view a learning page.
Delivering a learning page involves retrieving - or resolving - the correct revision of the resource for this course section. This is driven, of course, from a publication. Note: This resolution has to happen not only for the page being rendered, but for all referenced activities and for all attached objectives.
Right now two types of top level content items exist: Structured Content and Activity References
A learning page should server-side render any structured content blocks that are included in the page.
To be able to render content server side, Torus will need to recursively transform the content
field of a resource revision into HTML. There is relevant Torus prototype code that illustrates a compile-time safe way to build renderers.
Activity references are rendered as web components, server side. The actual rendering, of course, will take place client side. To be able to render successfully, the associated delivery script for the activity type must be included in the page. For now, including the scripts for all registered activities is feasible. Long term, though, we will want to only include scripts of activities that are present in the page.
This should also include the creation of the multiple choice activity
This is the first step in gradepassback support. We will follow this up with export to CSV and live, incremental passback
Refine and integrate prototype editor code to include:
This involves DataShop integration with streaming of activity information directly to DataShop and retrieval and display of curve information after DataShop makes that information available.
Workflow for adding collaborators is:
In a single top-level list only, an author has the ability to create new learning objectives and delete existing ones.
There are follow on issues for editing an existing learning objective and for creating a hierarchy of objectives.
Complete the remaining tasks in LTI 1.3 launch work including:
Basic publication involves the publishing of all outstanding edits and all current course sections immediately having the new publication applied
We need to develop a solid first version of the relational model.
An author has the ability to create a new project.
Furthers the infrastructure to add in outcome rollup and grade capture, disabling of hints, etc.
For a course section already created and associated with an LTI context, if new instructors LTI launch with the same LTI context Torus must recognize these users as additional instructors and associate them with the existing course section.
This work involves:
Authors can see insights from the formative and summative results of students working through course sections.
A student LTI launching into a course should land on a page that displays the top-level view of the course contents, including links to the individual pages.
This top-level view should include a page numbering.
This impl should be accessible. This task should include a deep dive on accessibility and a relay of information found to the rest of the team.
Ensure that this impl is mobile first.
Add in basic ordered and unordered list support
While the infrastructure supports a hierarchy of arbitrary depth, the UI should fix the depth to two levels total.
Taking and retrying formative activities requires the backend infrastructure of activity attempts, hints, and evaluation to be built out.
The "test" mode allows the author to interact with and "test" out the multiple choice activity that they have configured.
In a formative context, they should be able to answer the question and see feedback, request hints, and reset the question and try again. None of the interactions are logged or recorded in any way, of course.
Eventually, activity types that we will implement will utilize server evaluation that we will not want to have to replicate client-side (all the variants of numeric input evaluation, for instance). So given that we know that we will need to implement some of test mode with a reliance on server side eval, lets take the approach that we implement all activities with server side eval
We need an approach for requesting hints in a way that doesn't depend on server state. In other words, since we cannot log any activity from test mode, we cannot leverage the state of an activity attempt to determine which hint to retrieve on a given hint request. Perhaps we build out a hint request infrastructure that simply lets the client request a hint by hint ordinal position - thus pushing the responsibility onto the client.
A course section for a given project can be created by a user launching in as an instructor via LTI
A key requirement here is that the reordering is accessible, thus it cannot be strictly implemented via drag and drop.
Author can edit the wording.
An export feature exists to dump the gradebook as a CSV file. This is necessary as a workaround if any LMS does not correctly support LTI grade passback APIs
Reordering is follow on to this.
Publishing should involve a check for the following:
This task is to build out the first production version of the multiple choice activity editor. A stub impl is in place, we need to:
The pages that can be selected should be scoped to only those objectives that are present in the parent module.
Automated backup and manually triggered restore capabilities for the postgres database
Build a prototype in Balsalmiq and get feedback from Norm, Judy, Kim, Hal, Erin.
This has to be accessible. It cannot simply be drag and drop.
Following on work for reordering and for assessments.
Integrate the ongoing work to add LTI launch support
When a new student LTI launches with a known context id we capture that account launch as a user and associate it with the course section.
Torus directs the student to the landing page (table of contents of material?) for the course material pertaining to that section.
For existing students launching into a course section Torus should display the last resource that the student had visited.
Selective publication involves an author selecting to publish only a portion of the draft resources in a project.
To complete the core editor component we still need:
If a student should happen to LTI launch with a context that Torus does not recognize we simply must give them a warning message that this course has not yet been set up or initialized by their instructor.
An author can edit a page.
This is for basic page editing - content sections only and the ability to edit the title of the page.
This is a test.
Build out the skeleton of the web app. This is being done to set the stage for next sprint when we can start implementing package creation, overview, and learning objectives views.
Major pieces from the UX prototype to include are:
Final piece of gradepassback is Torus updating the LMS gradebook as soon as a student completes a summative assessment.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.