This repository contains the source code for the CS362 website.
What should we have students be doing so that they become way more competent software engineers by the end of this course?
Future Improvements (post-Spring 2025):
- Slow down during classtime to allow students to write code at the same time
- Consider a flip classroom approach for the course
- Shuffle lecture order to match assignments better
- space out the different types of testing (unit, integration, e2e)
- add coverage in between unit and integration testing
- Add a section in CI/CD on act to run GitHub Actions locally for testing purposes
- Figure out how to deploy from a branch instead of GH Actions (because of risk of running out of minutes)
- Add a lecture on Docker and containerization (before CI/CD, so that it can be used for playwright containers and act)
- Mention monorepos with examples
- Explain the different types of documentation
- Discuss cost-analysis frameworks, open-source vs proprietary
- Add in-class examples for property-based testing
- Add in-class examples for reliability testing
- Find a less time-consuming way to grade project demos
- Cover DevTools a little more for debugging purposes (networking, application, storage, console)
- Fix team formation schedule (due date for joining a team vs deadline for being assigned randomly based on form submission)
- Replace mermaid component with starlight plugin
Every term:
- Update the version of this repository if making changes (
package.json) - Add TAs to Canvas
- Create team Bookings page for assignment demo and set up slots (not working, creating individual pages instead)
- Update Bookings link in Canvas
- Create GitHub Classroom class and add TAs
- Update GitHub Classroom link in Canvas
- Create form for random team assignment for final project and add to Canvas
Note: For some reason starlight-to-pdf does not properly render Mermaid diagrams even after the various updates. Switching to custom build.
To generate lecture notes, assignments, and practicalities, in separate files (one per web page), use the following bash script:
chmod +x ./pdf/generate-individual-pdfs.sh
./pdf/generate-individual-pdfs.shTo generate one PDF with all lecture notes, assignments, and practicalities, use the following command:
chmod +x ./pdf/generate-combined-pdf.sh
./pdf/generate-combined-pdf.shTo generate slides from marp, use:
cd slides
npx @marp-team/marp-cli@latest intro.md --pdf --allow-local-filesInside of your Astro + Starlight project, you'll see the following folders and files:
.
โโโ public/
โโโ src/
โ โโโ assets/
โ โโโ content/
โ โ โโโ docs/
โ โ โโโ config.ts
โ โโโ env.d.ts
โโโ astro.config.mjs
โโโ package.json
โโโ tailwind.config.mjs
โโโ tsconfig.json
All commands are run from the root of the project, from a terminal:
| Command | Action |
|---|---|
bun install |
Installs dependencies |
bun run dev |
Starts local dev server at localhost:4321 |
bun run build |
Build your production site to ./dist/ |
bun run preview |
Preview your build locally, before deploying |
bun run astro ... |
Run CLI commands like astro add, astro check |
bun run astro -- --help |
Get help using the Astro CLI |
- Starlight Getting Started -- Astro template
- TailwindCSS -- for styling
- How to create an Astro LaTeX component -- LaTeX component
- KaTeX: The fastest math typesetting library for the web. -- LaTeX component
- Mermaid User Guide -- Mermaid component