Functionalities of the repository

All of this is still TBD!

Main entity in the system will be a “resource”, which represents a single content item, that comprises of many files. For example resource might contain:

  • Youtube link to a video;
  • Downloadable video version;
  • Subtitles for the downloadable video in Polish;
  • Subtitles for the downloadable video in English;

Requirements

  • We might store resources that contain multiple files;
  • One of these files will be “default” (in this case youtube link).
  • These files will be rendered (youtube links will embed to iframe, pdfs will be rendered using browser)
  • Metadata is extracted from files, but users can add their own (predefined) metadata.
  • Files in resources can be overriden and versioned.
  • You can filter files in resource using language tags.
  • (Stretch goal) There should be an easy way for an user to “fork” materials — user will get a copy of a resource which he might edit to his needs.
  • Multilanguage versions.
  • Is integrated with S3 service or analogous. S3 service is a blob store as a service — basically you upload static files there, and they are served from there. Backups, consistency, availability and handling transfer spikes is on their side. .