Giter VIP home page Giter VIP logo

berkeley-class-site's Introduction

Berkeley Class Site

a11y specs

A template for UC Berkeley class websites (with a focus on EECS/CS/DS courses).

Installation

Prerequisites:

  1. Fork the repository.
  2. Clone your fork (replace YOUR_GITHUB_USERNAME and YOUR_REPO accordingly).
git clone [email protected]:YOUR_GITHUB_USERNAME/YOUR_REPO.git
  1. Install dependencies:
cd YOUR_REPO
bundle install

Usage

To run the site locally, run:

bundle exec jekyll serve

Search throughout the repository for TODO items called TODO(setup) and complete them to customize the site for your course.

Deployment

The easiest way to deploy your site is with GitHub Pages.

Contributing

See CONTRIBUTING.md for instructions on how to develop this site as part of course staff or if you're interested in contributing to this template repository.

License

MIT

berkeley-class-site's People

Contributors

phrdang avatar cycomachead avatar

Watchers

James Cloos avatar

berkeley-class-site's Issues

Setup axe

  • Setup axe CI scripts
  • provide hooks for customization / exclusion
  • How do dependent repos pull in updates?

Accessibility Testing Reports

It's quite useful to run axe tests on all individual pages. However, there are two challenges:

  • common errors are repeated across pages
  • there's not a great summary of pass/fail results.

Separate _config into two files

  • Create a _base_config.yml which is basically the stuff you don't need to change
  • Update _config to be only class-specific data.
  • Consider whether per-semester configs should be separated?

Easier to Write Course Calendars

All the tools have course calendars which are a PAIN to write.

One file per week as an authoring tool seems hard.

  • the programming is easiest if every date is defined explicitly, but in classes with consistent schedules, that is hard.
  • I, personally, prefer 1 file with all assignment dates
  • each assignment needs:
    • release date
    • due date
    • content / spec link
    • submission link
    • probably number of points
    • This info is ideally not duplicated manually.
  • How can we support the table-style calendar (CS10, 161, 188, others)?

Long Shot: Google Sheets / CSV sync?

Does it make sense to have the tool build a calendar file from a Google sheet?
If a sheet URL is shared via link, it's trivial to get/import a CSV. This means at build time (if desired) or locally (if the output is committed to the repo) we can generate a calendar from a format easier to write/update.

Berkeley-Specific Color Scheme

I'd like to extend this to be Berkeley-specific.

  • Define berkeley brand color a CSS var
  • Import berkeley fonts (How do we use Freight on the web?)
  • Provide common class names for accessible color combos
  • Provide hooks for DS / EECS / dept-level customizations

Setup GitHub Pages deployment without using github-pages gem

As of #20 , the github-pages gem has been removed from the Gemfile list of dependencies, which is good because this allows us to use custom plugins and plugins that are not whitelisted by the github-pages gem.

However this means we need to figure out how we are going to deploy the site without using the nice GitHub Pages/Jekyll integration. From preliminary research, it seems the way to do this is to check into git the _site directory and deploy the html generated there, but the repository needs to be configured as does the CI workflow (jekyll.yml may not work anymore).

Potential resources to look into:

New Semester Workflow?

What is the best flow for a new semester?

  • I strongly believe the deployment of each semester should be its own destination, even if the content is in a shared repo.
  • How do we reconcile updates with this repo with customizations of each class's site?
  • Should courses make a new repo each semester, copying the previous one?

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.