This site serves courses that reside in a git repo consisting of mostly Markdown-formatted text files and any other source files that should be served to the students. The code is targeted towards Rails 6.1.
Clone the application:
git clone [email protected]:uva/course-site.git
bundle install
rails db:schema:load
You can now claim the site by authenticating, and then load the initial content by specifiying a git repository URL that can be cloned.
Alternatively, you can clone the course contents yourself, into the public/course
directory:
cd public
git clone <course-url> course
-
Have a look at https://github.com/minprog/platforms for information on how to organize your course repository. At the very least, you need a
course.yml
and ainfo
directory containing subpages for the homepage. -
Numbering the course folders will make sure that they are imported and displayed in order. Any folders besides
info
that are not numbered will not be imported. -
Small non-markdown files, like images or downloads, will be hosted directly in the public directory and can be referenced using relative links.
-
Changing the name of a folder will change the URL of that folder on the website. This will break links from other sites to your course site.
-
Changing names and positions of folders and Markdown files should not be a problem for form caching and file submissions already done.
-
All pages are to be formatted with Markdown and the Kramdown extensions.
-
You can use AsciiMath or LaTeX if enclosed within pairs of dollar signs (
$$sin(x)$$
, or$sin(x)$
for inlined math). Check the AsciiMath syntax. -
Add a table of contents to a page using:
* Table of Contents {:toc}
This single bullet item is then replaced with a full table of contents of level 1 and 2 headings.
-
Setting a
CAS_BASE_URL
is needed for authentication using CAS (the only option). In development, a "fake" login screen is used which accepts any username. -
Setting a
MAILER_ADDRESS
andMAILER_DOMAIN
will allow mails to be sent to users.
- Install
libvips
according to the instructions for the ImageProcessing gem in order to be able to view images uploaded by students.
- Support some other authentication mechanism than CAS only.