{"id":43611714,"url":"https://github.com/berkeley-cdss/berkeley-class-site","last_synced_at":"2026-02-04T12:07:59.383Z","repository":{"id":244478152,"uuid":"643159247","full_name":"berkeley-cdss/berkeley-class-site","owner":"berkeley-cdss","description":"A template for Berkeley CS and Data Science Classes","archived":false,"fork":false,"pushed_at":"2026-01-20T03:54:05.000Z","size":3241,"stargazers_count":8,"open_issues_count":30,"forks_count":21,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-20T10:42:53.497Z","etag":null,"topics":["a11y","academic-website","accessibility","jekyll","jekyll-theme","uc-berkeley"],"latest_commit_sha":null,"homepage":"https://berkeley-cdss.github.io/berkeley-class-site/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/berkeley-cdss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-05-20T09:29:36.000Z","updated_at":"2026-01-20T03:54:06.000Z","dependencies_parsed_at":"2025-03-05T04:35:39.064Z","dependency_job_id":null,"html_url":"https://github.com/berkeley-cdss/berkeley-class-site","commit_stats":null,"previous_names":["berkeley-eecs/berkeley-class-site"],"tags_count":0,"template":true,"template_full_name":"kevinlin1/just-the-class","purl":"pkg:github/berkeley-cdss/berkeley-class-site","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkeley-cdss%2Fberkeley-class-site","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkeley-cdss%2Fberkeley-class-site/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkeley-cdss%2Fberkeley-class-site/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkeley-cdss%2Fberkeley-class-site/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berkeley-cdss","download_url":"https://codeload.github.com/berkeley-cdss/berkeley-class-site/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkeley-cdss%2Fberkeley-class-site/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29084091,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T03:31:03.593Z","status":"ssl_error","status_checked_at":"2026-02-04T03:29:50.742Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a11y","academic-website","accessibility","jekyll","jekyll-theme","uc-berkeley"],"created_at":"2026-02-04T12:07:59.233Z","updated_at":"2026-02-04T12:07:59.371Z","avatar_url":"https://github.com/berkeley-cdss.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Berkeley Class Site\n\n[![Pages Deployment](https://github.com/berkeley-cdss/berkeley-class-site/actions/workflows/jekyll.yml/badge.svg)](https://github.com/berkeley-cdss/berkeley-class-site/actions/workflows/jekyll.yml) •\n[![a11y specs](https://github.com/berkeley-cdss/berkeley-class-site/actions/workflows/rspec.yml/badge.svg)](https://github.com/berkeley-cdss/berkeley-class-site/actions/workflows/rspec.yml)\n\nA template for UC Berkeley class websites (with a focus on EECS/CS/DS courses).\n\n## Installation\n\nTo get started on development, please setup your environment using one of two methods.\n\n### Method 1: VSCode and devcontainers (Docker)\n\nIn this setup, we will use Visual Studio Code's (\"VSCode\") \"devcontainers\" feature to setup and install required project dependencies.\n\nIn short, \"devcontainers\" is a VSCode extension that enables convenient integration between VSCode and Docker.\n\nIn this repo, we have set up a `.devcontainer/devcontainer.json` file.\nThis json file tells VSCode how to build the Docker container used in this project.\nTo learn more about this json file, see the devcontainer docs: [\"Create a devcontainer.json file\"](https://code.visualstudio.com/docs/devcontainers/containers#_create-a-devcontainerjson-file)\n\nTo learn more about devcontainers, see these [VSCode docs](https://code.visualstudio.com/docs/devcontainers/containers), and/or follow this VSCode [\"Dev Containers tutorial](https://code.visualstudio.com/docs/devcontainers/tutorial).\nBut, for now, we can follow this quick tutorial to get set up.\n\n#### Prerequisites: install required software\n\nFirst, install [VSCode](https://code.visualstudio.com/download) for your platform (Windows, Linux, MacOS).\n\nTip: while VSCode may seem that it's only for Windows, as of 2026 VSCode is very effective on other OS's like MacOS, and is widely used in industry for software development (including on MacOS).\n\nNext, install [Docker Desktop](https://www.docker.com/products/docker-desktop).\n\nNext, install the [\"Dev Containers\"](vscode:extension/ms-vscode-remote.remote-containers) VSCode extension.\n\n#### Open berkeley-class-site devcontainer in VSCode\n\nAfter cloning the repository (or your fork of it), open the `berkeley-class-site` folder in VSCode.\n\n**Windows**: one easy way is to right-click the folder, and click the \"Open with Code\" context action.\n\n![Open folder in VSCode in Windows](assets/images/vscode_open_folder_windows.png \"Open folder in VSCode in Windows\")\n\n**MacOS**: see these [docs](https://code.visualstudio.com/docs/setup/mac).\n\nNext, VSCode's devcontainer extension will autodetect that this folder has a `.devcontainer/devcontainer.json` file, and will ask you if you'd like to enter the Docker container:\n\n![Open project devcontainer in VSCode](assets/images/vscode_devcontainers_reopen_in_container.png \"Open project devcontainer in VSCode\")\n\nClick the \"Reopen in Container\" button (lower-right corner), and this will build the Docker container (specified in `.devcontainer/devcontainer.json`) and, once it's done, will open a terminal inside of the Docker container.\n\nFurther: since the `.devcontainer/devcontainer.json` specifies a `post-create.sh` script, it will also run this script, which will run jekyll to build + serve the website locally:\n\n![VScode devcontainer running](assets/images/vscode_devcontainer_running.png \"VSCode devcontainer running\")\n\nFrom here, you can make changes to the website, and `jekyll` will autodetect changes and regenerate the site. Unless you change `_config.yml`, you do not need to restart the `jekyll` server.\n\nNote: if you see VSCode dialog come up with a message like this:\n```\nAutomatic Ruby environment activation with rbenv failed: Command failed: rbenv exec ruby -E\n```\nThis seems to be a false positive.\nI'm not sure why it does this, but it doesn't seem to interfere with local builds.\n\n**Important**: for now, if you exit VSCode, reopen VSCode at a later time, and re-enter the devcontainer, VScode will open up a terminal within the devcontainer **without running .devcontainer/post-create.sh**.\nThis means that (among other things) `jekyll` is not set up correctly.\nThe workaround is to run `./.devcontainer/post-create.sh` from the terminal, which will begin locally serving the website via `jekyll` as expected.\n\nTODO: we should modify the devcontainer setup (eg devcontainer.json, post-create.sh) to improve dev QoL.\n\n### Method 2: Local install\n\nRather than using Docker containers (and VSCode's devcontainer extension), instead we will install our project dependencies \"locally\".\n\n#### Install Ruby and Bundler\n**The berkeley-class-site template requires Ruby 3.3.9 or higher and bundler \u003e= 2.6**\nInstall Ruby before continuing. You can check your Ruby version by running:\n\n```bash\nruby --version\nbundle --version\n```\n\nPrerequisites:\n\n- You have everything that [Jekyll requires](https://jekyllrb.com/docs/installation/)\n- You have installed [Bundler](https://bundler.io/): Run `gem install jekyll bundler`\n\n1. [Fork](https://github.com/berkeley-eecs/berkeley-class-site/fork) the repository.\n2. Clone your fork (replace `YOUR_GITHUB_USERNAME` and `YOUR_REPO` accordingly).\n```\ngit clone git@github.com:YOUR_GITHUB_USERNAME/YOUR_REPO.git\n```\n3. Install dependencies:\n\n```\ncd YOUR_REPO\nbundle install\n```\n\n## Usage\n\nTo run the site locally, run:\n\n```\nbundle exec jekyll serve\n```\n\nNote that if you alter `_config.yml`, you will need to rerun the above command to see the changes reflected.\n\nSearch throughout the repository for TODO items called `TODO(setup)` and complete them to customize the site for your course. We recommend deleting the `docs/` directory for a semesterly course website. `docs/` contains developer docs and is visible on the [deployed template website](https://berkeley-cdss.github.io/berkeley-class-site/).\n\n## Deployment\n\nThe easiest way to deploy your site is with [GitHub Pages](https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/about-github-pages-and-jekyll).\n\n## Contributing\n\nSee [CONTRIBUTING.md](.github/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.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberkeley-cdss%2Fberkeley-class-site","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberkeley-cdss%2Fberkeley-class-site","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberkeley-cdss%2Fberkeley-class-site/lists"}