# PRG32-Construction-Kit Documentation

PRG32-Construction-Kit is a classroom web application for building PRG32 games with blocks, sprites, simulation, generated C, cartridge bundles, and Cartridge Store publishing.

## Read in this order

1. `setup.md` - local Python setup.
2. `docker.md` - container execution.
   - `install_cartridge_build.md` - install with real `.prg32` builds switched on (Docker, macOS, Linux, Windows).
3. `ci_cd.md` - automated tests, real-cartridge checks and published container images.
4. `architecture.md` - how the system is organized.
5. `blockly.md` - block vocabulary, expressions and JSON storage.
   - `prg32_feature_coverage.md` - which PRG32 services Blocks, the simulator and Advanced C reach.
6. `sprite_editor.md` - sprite/image editor guide.
7. `cartridge_build.md` - generated C and PRG32 build hooks.
   - `generated_code.md` - reading the explained C and RISC-V assembly made from the blocks.
   - `concurrent_builds.md` - many students building at the same time.
   - `videos/snake-workflow-demo.mov` - short screen recording of the Snake workflow.
8. `cartridge_store_publish.md` - publishing bundles.
9. `api.md` - CRUD and action API.
   - `accounts_and_sso.md` - accounts, who sees what, and sharing users with a Cartridge Store.
10. `tutorials/` - step-by-step lessons.
   - `tutorials/games/` - five complete classic-inspired games with slide decks
     (`presentations/*.html`).
   - `runtime_check.md` - building the examples and running them on QEMU and PRG32-QT.
11. `../examples/textbook/` - 36 C and RISC-V assembly textbook examples.

## Classroom workflow

```text
Create project
  -> Build with blocks
  -> Save Blocks JSON
  -> Play/debug in browser
  -> Generate PRG32 C
  -> Download a .prg32 cartridge or prepare a cartridge bundle
  -> Publish to Cartridge Store
```
