B.
Back to projects

Java Presentation Software

Screenshot of a presentation in Java Presentation Software

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