Capstone Projects

Books, authors, members, and loans with a console (Playground/Transcript) interface, custom exceptions, and full SUnit coverage.

Project 1 — Personal library manager (beginner)

Books, authors, members, and loans with a console (Playground/Transcript) interface, custom exceptions, and full SUnit coverage. *Concepts: classes, collections, exceptions, SUnit, printOn:.*

Project 2 — Text adventure engine (beginner/intermediate)

Rooms, items, and commands parsed from strings; commands dispatched with perform:; save/restore game state with STON. *Concepts: polymorphism, dictionaries, streams, reflection, serialization.*

Project 3 — Spreadsheet (intermediate)

Cells with formulas parsed into an AST, dependency tracking with announcements, recalculation, and a Spec2 table UI. *Concepts: parsing, Visitor pattern, Announcements, Spec2.*

Project 4 — Chat server (intermediate)

Zinc WebSocket server with rooms, a Teapot REST API for history, persistence with Voyage (in-memory repository for tests), and a simple Seaside or HTML client. *Concepts: networking, concurrency, JSON, persistence.*

Project 5 — Software visualization tool (advanced)

Analyze any package with reflection (class sizes, coupling, senders graphs) and display interactive Roassal views and a Spec2 browser; integrate as custom inspector tabs. *Concepts: reflection, Roassal, Spec2, moldable tools.*

Project 6 — Mini Smalltalk interpreter (advanced)

Parse a subset of Smalltalk with the Pharo parser (RBParser), and write an AST interpreter with your own environment, message lookup, and blocks — then compare with the real execution. *Concepts: AST, Visitor, method lookup, closures, metaprogramming.*

Project 7 — Web shop with Seaside (advanced)

Catalog, cart, checkout flow using call:/answer:, Glorp or Voyage persistence, user sessions, and Bootstrap styling; deploy headless in Docker. *Concepts: Seaside components, continuations, persistence, deployment.*

Project 8 — Distributed job queue (expert)

A coordinator image and several worker images communicating over HTTP or ZeroMQ via FFI; jobs serialized with Fuel or STON; retries, timeouts, monitoring dashboard in Roassal; optionally a GemStone-backed version. *Concepts: processes, semaphores, networking, serialization, FFI, headless deployment.*