# THIS DOCUMENT IS A DRAFT > Contributions welcome! ## Courses Model Each Course MUST have: - one Identifier _(unique, URL-safe, path-safe)_ - one Title - one Content - one Topic - one Language `ISO 639-1` (two letter code, eg: `fr`) Each course MAY have - one or more Courses as dependencies - one or more Tags Keep it simple, for now. There will be room for events (class projects, etc.) later. ## Course File Format We should probably follow something akin to [what Grav does](https://learn.getgrav.org/15/content/content-pages). - A frontmatter in YAML holding metadata - The course in Markdown + HTML The markdown enhancements should be documented here as well. Ideas: - use gitlab's flavor as base, since it has latex and mermaid already - https://zestedesavoir.com/ has a pretty good markdown flavor as well (information and warning bubbles), tailored for education ## Possible driver implementations - with Grav - with Moodle - with schema.org (jsonld?) (may use Grav for this) - with OAI-PMH (may use Grav for this?) Multiple frontends may be buit to display these courses. ## Tips http://flagpedia.net/emoji ## TODO - Look up https://schema.org/Course and comply somehow - Look up [OAI-PMH](ttp://www.unit.eu/ressources-educatives-libres/valoriser-des-rel) and comply somehow