Code Monkey home page Code Monkey logo

2023_p4's Introduction

Actual course page is at https://TiraLabra.github.io/2023_p4/

TL/DR

When setting up a new course the idea is that it's enough to fork/copy this repo and update the relevant info in _config.yml and assets/fuu.js, and publish GitHub Pages.

In _config.yml at least the following need to be changed:

  • tile/entitle
  • description/endescription
  • url

In assets/fuu.js:

  • Add course timing related event to the timing object.
    • The "dl#", "demo" and "end" events are used for filling in timing details on multiple pages
    • The rest of the events will only be used for calendar generation
  • Set the doodleSent constant to false by default and to true after having sent a doodle for demo timing.

While developing, use bundle exec jekyll serve --incremental to locally test the site.

Typical course workflow

1. Creating course environment

On GitHub it's not possible to have forks of repositories in the same organization. So to set up a new course, a new repository must be created, and the contents of a previous course copied into the new repository.

<new repo>$ cp -r ../<old repo>/* .
<new repo>$ cp ../<old repo>/.gitignore .
<new repo>$ git add .gitignore
<new repo>$ git add .
<new repo>$ git commit -m "init course page"
<new repo>$ git push

Note: Do not copy the .git directory from the old repository. And do remember to copy the .gitignore file.

2. Updating course data

README.md:

Update the course url: [https://TiraLabra.github.io/<old repo>/](https://TiraLabra.github.io/<old repo>/) -> [https://TiraLabra.github.io/<new repo>/](https://TiraLabra.github.io/<new repo>/)

change the following

title: "Tiralabra - <old name>"
entitle: "Data Structures Lab, <old name>"
email: ''
description: "Helsingin yliopiston Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit - kurssin kurssisivu"
endescription: "Course page for the Data Structures Project course at the University of Helsinki"
baseurl: '/<old repo>'
url: https://tiralabra.github.io/<old repo>/

to

title: "Tiralabra - <new name>"
entitle: "Data Structures Lab, <new name>"
email: ''
description: "Helsingin yliopiston Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit - kurssin kurssisivu"
endescription: "Course page for the Data Structures Project course at the University of Helsinki"
baseurl: '/<new repo>'
url: https://tiralabra.github.io/<new repo>/

Change the doodle status

from: const doodleSent = true; to: const doodleSent = false;

Update the Course assistant data value in const tas = according the example and the instructions in the file.

Comment out the demo session events:

    /*"demo": {"date": "2020-06-24", "fi": "Demotilaisuus", "en": "Demo Session", "common": "12-14 Zoom"},
    "demo2": {"date": "2020-06-24", "fi": "Demotilaisuus", "en": "Demo Session", "common": "16-18 Zoom"},*/

Update the course time table.

The fields start, demo, end and dl# have a special meaning and are used to set up the pages in muptiple places. All other events are just used to fill in the "calendar". Typically just update the times and dates for start, end and dl# events. While adding and removing paja events as necessary.

Push changes to git

<new repo>$ git commit -am "material update for current iteration"
<new repo>$ git push

3. Update lecture slides

Lecture slides can be edited in the kalvot/aloitusluento.md and kalvot/lecture.md files.

Update the date of the lecture and the lecturer in the preamble of the files.

Update the course material links https://tiralabra.github.io/<old repo>/ to https://tiralabra.github.io/<new repo/ in 2 places for each of the slide sets.

Make modifications as desired...

The makefile contains recipes for converting the .md files to .pdf slides. E.g. make aloitusluento.pdf should work on at least university cublli linux systems.

Then push changes to git:

<new repo>/kalvot$ git commit -am "slide update"
<new repo>/kalvot$ git push

4. Enable GitHub pages

  • Navigate to the repository settings on GitHub
  • Scroll down to GitHub Pages
  • Select master in the source dropdown
  • Click save

The github.io should become available after a while.

Note: After this point it is convenient to modify the course pages using the file editing functionality on github.

5. Updating the site during the course

Changes to the course web site can be made by pushing changes to the index.md files in the repository. As changes are pushed to git, GitHub Pages should automatically recompile and depoloy the site. Some times the action is not triggered for some reason, and when that happens pushing another change typically resolves the issue.

Note that you do need to change both the Finnish and English source materials unless the changes are only to the assets/fuu.js file.

5. Trigger the Doodle sent state.

When the doodle for determining available demo times has been sent, change the const doodleSent value to true. This will update the relevant places on the Finnish and English course pages.

6. Add demo sessions.

Uncomment the demo session event(s):

    "demo": {"date": "2020-06-24", "fi": "Demotilaisuus", "en": "Demo Session", "common": "12-14 Zoom"},
    "demo2": {"date": "2020-06-24", "fi": "Demotilaisuus", "en": "Demo Session", "common": "16-18 Zoom"},

and update the times, dates and locations.

2023_p4's People

Contributors

hakarna avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.