Setup: New Offering

Creating a first offering of a course

Welcome!

If you are new to this format, please start with the “welcome” section of the page Setup: New Course.

You need the course level organization and repo to be setup before you can add the first repo for an offering of the course.

Step 1: Course repo

The instructions for creating a course level repo include

For example:

You need this organization and this course level repo before you can create this instance level repo for this offering level web site
ucsb-cs24 ucsb-cs24/ucsb-cs24.github.io ucsb-cs24/w19 https://ucsb-cs24.github.io/w19/

Create and set up the GitHub organizations and repos

Step 2: Create Github repo for the course offering

The github repo MUST follow the Github Pages standard naming convention if you want to host on Github pages

etc.

Step 3: Copy in boilerplate files

Follow instructions to Copy in boilerplate files. They all go in the root directory of the repo.

Here’s the step-by-step:

TODO: Dead link above, fix it. In the meantime, The boilerplate files are here: https://github.com/ucsb-cs-course-repos/boilerplate

cd boilerplate
cp Gemfile .gitignore setup.sh jekyll.sh .travis.yml  <course_dir>

For example, cp Gemfile .gitignore setup.sh jekyll.sh .travis.yml ../int15-s19/

For example,

$ git status
On branch master
... 
Changes not staged for commit:
...
	modified:   .gitignore

Untracked files:
  (use "git add <file>..." to include in what will be committed)

	.travis.yml
	Gemfile
	jekyll.sh
	setup.sh
$ git add .
$ git status
...
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

	modified:   .gitignore
	new file:   .travis.yml
	new file:   Gemfile
	new file:   jekyll.sh
	new file:   setup.sh

$ git commit -m "Added initial boilerplate files"

Develop and debug locally and via Travis CI

You can skip this step if you’d rather not have to test the site locally, which means that you’ll probably be operating on the live version of the website running from the course repo.

Step 4: Configure _config.yml

Create a file with the name _config.yml in the root directory of the repo, following both sets of instructions below.

The order of items in the _config.yml file doesn’t matter.

Step 5: Configure the top navigation menu

# the production_url is the url that the parent/child site have in common
#  e.g. production_url: https://ucsb-cs24.github.io
#  for main site http://ucsb-cs24.github.io
#  and child sites
#    https://ucsb-cs24.github.io/w18
#    https://ucsb-cs24.github.io/f18
#    https://ucsb-cs24.github.io/s19
#    etc.

production_url: https://ucsb-int15.github.io

# List the title and url for each item on navigation bar.
# For items that should be relative urls, put the baseurl of the site
# they come from, / for main site, and /f18, /s19, etc for child sites.

home:
   title: UCSB INT15
   url: /
   baseurl: /

offerings:
   title: S19
   url: /
   baseurl: /s19

offering_links:
  - title: Syllabus
    url: /info/syllabus/
    description: "University and course policies"

Step 6: Add site’s pages

Step 6.1: Add index.md

---
title: "INT 15: Data Science Tools and Techniques, Spring 2019, Franks and Kharitonova"
---

# INT 15: Data Science Tools and Techniques, Spring 2019, Franks and Kharitonova

Welcome to INT 15!

Step 6.2: Create the pags to include

TODO: Add instructions about the _include

Step 6.3: Update idex.md to include dropdowns

Once you see the index page show up and you added the appropriate _include pages, you can customize it by adding the drop-down menus, which will work with the folders you’ll be creating:

{% include collapse-button.html label="Information" id="info-list" %}
<div class="collapse" id="info-list">
 <div class="card card-body">
  {% include info_list.html %}
 </div>
</div>


{% include collapse-button.html label="Lecture Notes and Slides" id="lectures" %}
<div class="collapse" id="lectures">
 <div class="card card-body" markdown="1">
   {%include lecnot_table.html %}
 </div>
</div>


{% include collapse-button.html label="Homework" id="hwk" %}
<div class="collapse" id="hwk">
 <div class="card card-body">
  {% include hwk_table.html %}
 </div>
</div>

{% include collapse-button.html label="Lab" id="lab" %}
<div class="collapse" id="lab">
 <div class="card card-body">
  {% include lab_table.html %}
 </div>
</div>

{% include collapse-button.html label="Exams" id="exams" %}
<div class="collapse" id="exams">
 <div class="card card-body">
  {%include exam_table.html %}
 </div>
</div>

Step 6.4: Create _info pages

For now, let’s just add the following stub:

---
title: "Syllabus"
layout: default
ready: true
---

# Syllabus <a name="top"></a>

This document and others linked within it should be your PRIMARY source for understanding the expectations of this course. Be sure to read it *carefully*.
You must contact the instructor for clarification if you receive information from any another source that is in contradiction to what is provided below.
$ git add _data _info index.md

$ git commit -m "Added index.md, _data/navigation.yml and _info/syllabus.md"
$ git push origin master

Now you can begin customizing the site with the rest of the pages.

TODO: Continue from here

Related topics: