Distributed to-do manager
Multi-user distributed to-do app coordinated with tuple spaces.
Overview
A multi-client to-do and task manager built in Java with a JavaFX frontend, where clients and a central server coordinate over jSpace tuple spaces using a blocking request-response pattern plus a separate notification space for real-time broadcast. Patrick led scene navigation, the main menu list view, delete confirmations, and shared server-side responsibilities such as connect, disconnect, login, logout, notification broadcast, and multi-computer setup.
A personal continuation of the course project adds native installers (MSI and DMG via jpackage) and GitHub Actions release automation on top of the group version.
A companion web edition rebuilt for this site adds email and password login backed by a Postgres database, so a small shared to-do space can be used live in the browser.
The desktop client now connects to a self-hosted server over a private network, so multiple people share one live, persistent to-do space from their own machines. Download the Windows or macOS installer to use it, or try the lighter web edition in the browser.
Highlights
- Request/response and notification tuple spaces for concurrent clients
- All state changes happen server-side, and the client blocks on OK
- Protocol modeled as a labeled transition system
- Automatic reconnect handling added after a live demo exposed a gap
- Maven client, server, and shared modules
- Personal build adds jpackage installers and GitHub Actions releases