Overview
Presentation software (similar to PowerPoint) for Computer Science teaching that was built to handle both slide design and live delivery as part of five-person team.
What it does
A Java Swing desktop app for Computer Science teachers to build and present slides with draggable rich-text boxes, syntax-highlighted code blocks, images, shapes and reusable templates. It supports slide management, full-screen presenting and serialised save/load so presentations can be edited and reopened later.
What I did
- Built save/load support in the presentation model and handled serialising styled document content so formatted slides could be restored accurately.
- Created rendering engine to load components from backend. Specifically in the rendering engine I implemented: base component class, drag and drop placement + resizing, normalised co-ordinates/sizing and z-index based layering.
- As well as base component class, I implemented component specific features like: handling rich text and CodeBox/SyntaxArea, shape and image components
- Created Presentation mode, right click menu and component copy/paste
Key Technical Points
- Rendering engine that converted backend slide state into Swing components, enabling dynamic creation and updating of text, code, image and shape elements.
- Normalised coordinate and sizing system to keep slide layouts consistent while supporting drag/resize interactions, layering and zoom/presentation workflows.
- Serialisation-based persistence model for saving and restoring presentation state, including formatted rich-text content and element-level properties.
Tech Stack
Framework: Java Swing
Process: Agile, feature-branching, bi-weekly standups, Git workflows