mitodl / lore Goto Github PK
View Code? Open in Web Editor NEWLearning Object Repository for Education
Home Page: https://goo.gl/nDVx4D
License: GNU Affero General Public License v3.0
Learning Object Repository for Education
Home Page: https://goo.gl/nDVx4D
License: GNU Affero General Public License v3.0
Importer module is responsible for providing the APIs for :
Uses the interface provided by #3
I think we just need to add postgresql-client
to the apt.txt to solve this
Just logging a couple of issues ..
Moved to #75:
Moved to #76:
Since loading a course can take some time, perhaps a wait or progress indicator would help users know that the process is under way.
Currently the import upload will only accept tar.gz files that have a single folder in their root, and then import the course in that folder. This misses on a major OLX convention that if the root folder contains a course.xml file, the tar file should be imported as a single course, and if there are folders in the tar.gz file without a course.xml file, each folder should be imported as a separate course.
Gathering related items from #73 and #74
This will give us nice URLs for repositories.
And this will give us human-readables names for authorization groups -- although if we use the slug for that purpose we will have to change the group-name whenever a repository is renamed.
As a ops person, I would like to get error reports via an e-mail server, username, and password of my choosing.
One of the takeaways from our demo today is that the physics team needs a production system by the time our next demo ~6/29.
Please add a checklist to this issue to identify any decisions that need to be made.
Continue the work done on #24
Items moved to #75
Is the core component responsible for defining, storing, managing and providing the relevant APIs for managing learning objects and the repositories they belong to.
Provides the APIs for a) defining the taxonomy system, managing vocabularies and taxonomy terms and adding them for each repository and b) assigning taxonomy terms to learning objects.
See also https://goo.gl/gmpedb
Create a page / view in the UI app ( #5 ) that allows users to create repositories
Authentication / Authorization is not important - Anyone can create repos at this point.
Acceptance Criteria:
Optionally (looks like @noisecapella has started):
Instead of example.com/repo-name/2
for page 2, it should be example.com/repo-name?page=2
.
There will be no 1
for page 1 -- that should be the default.
There are two additional courses from Dave Pritchard's group that we should include in the initial release. The "AB experiments" in the 8.MReV example may be troublesome.
For testing purpose, I would recommend starting with the latest version of 8.MechCx, which is the course that we just finished running.
Also, here's a link to the summer 8.MReV course tar ball with all the AB experiments. It contains some more irregularities caused by inconsistent authoring method over the years (as well as using early beta version of BACKSTAGE), and might be a good challenge for LORE's capability.
These are now in the archive repo as well, at
https://github.mit.edu/edX-Archives/edX-Archive-8.MReVx-2T2014
https://github.mit.edu/edX-Archives/edX-Archive-8.MechCx-1T2015
Add python modernize to the build as well as fix any outstanding python six problems we currently have. Especially look at unicode literals in tests/test_settings.py
From the meeting with Dept. of Physics :
The name “Learning Object” is potentially highly confusing. We strongly suggest using a different name > for resources, perhaps “Learning Resource”, which is unambiguous.
Renaming the app and the model are 2 things that come in mind.
In the current implementation of the course import form, a new repository is created with every import.
Based on the screen design at https://projects.invisionapp.com/share/YK2WMS4WN#/screens/77439557 it appears that the import button is only available after a user has chosen a repository, and new courses are imported into the current repository.
To have parity with production and the docker environment, Travis CI build should use Postgresql
Each learning resource can in principle have its own dependencies. For example, videos have transcript files, problems have images, HTML will often have javascript and CSS files, to name but a few. Links to these dependencies should be stored with each learning resource.
Furthermore, resources like CSS files and javascript libraries should be noted as library objects which are common to multiple learning resources. Upon export, only one copy of each library resource should be exported.
Add all needed CSS, javascript, and images, and convert designer HTML design to django templates with holes for views extending base.html.
as defined by the current URL
As a user, I would like to not have my course imports timeout when I either have a slow Internet connection, a large course, or a bit of both. Dependent on #4
@pwilkins wrote:
You can build the docs by running:
docker-compose run web tox -e docs
I think we need a section in the README to describe this.
Requested by @Ferdi.
We added repo_id to a bunch of methods
https://github.com/mitodl/lore/pull/64/files#r31520091
https://github.com/mitodl/lore/pull/64/files#r31520120
https://github.com/mitodl/lore/pull/64/files#r31562349
Hopefully these links to the discussion will survive the PR being merged.
Sort orders include alphabetical, run, course. We should be able to sort acending or descending.
@ShawnMilo can we default to sorting in the order that blocks appear in the courseware?
It appears that #39 is being caused by constraints in the models that aren't in the migrations, probably caused by typos reported by @noisecapella, where Meta
was spelled meta
, and therefore didn't result in the migration file containing the appropriate constraints.
Deleting and recreating the migration file results in this diff:
@@ -76,4 +74,12 @@ class Migration(migrations.Migration):
name='repository',
field=models.ForeignKey(to='learningresources.Repository'),
),
+ migrations.AlterUniqueTogether(
+ name='learningresource',
+ unique_together=set([('course', 'uuid')]),
+ ),
+ migrations.AlterUniqueTogether(
+ name='course',
+ unique_together=set([('repository', 'org', 'course_number', 'run')]),
+ ),
]
This requires a decision. Right now, the courses do not have UUIDs in the LearningResources, which means we have to create them. However, creating a universally unique value is already going to guarantee uniqueness, so the database constraint seems unnecessary.
So do we remove the unique_together
or do we leave it and generate UUIDs?
If we decide to leave the constraint in, we will have to regenerate the initial migration again, so dev and Heroku databases will need to be deleted again to prevent errors.
As a Django application administrator I would like to have a Django admin interface for each model that allows me to manipulate data directly without direct shell access to the system running the application to resolve real time problems with data integrity caused by internal (our django code), external (caused by issues in postgresql), to restart celery jobs that have failed due to operational issues, or other miscellaneous issues caused directly by users.
i.e. /<repo_slug>/vocabulary/<vocabulary_slug>
breaking out item from #74
As a user, I would like the fastest and leanest JavaScript and CSS files possible to make the user experience faster, and as a developer, I would like to use require.js style semantics for including javascript libraries into my templates.
https://www.pivotaltracker.com/story/show/94671190
Create the skeleton of the UI app
This makes debugging test failures much easier.
Add Sphinx documentation tools to generate API docs from code docstrings. Uses Google doc style through Napoleon and the Sphinx Bootstrap theme.
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.