2024 · Group Project
Waffle Social Media
A secure and minimalist social media platform
- Java
- Sockets
- Java GUIs
For a group project at Purdue University, my team was given a deceptively simple prompt: build a social media platform completely from scratch in Java, with no frameworks to lean on for the networking, data management, or user experience layers. We named the platform Waffle, a nod to the term "waffling" in communication — the small, meandering exchanges that make up so much of how people actually connect online. Under the hood, Waffle runs on a custom socket-based server architecture that allows multiple users to connect concurrently from their own desktop clients, handling real-time communication without relying on any third-party backend service. We built out a secure data layer to protect user privacy across the platform, and structured the underlying data model around hashmaps and other core data structures to efficiently track and enforce relationship states between users — friends, blocked, and unacquainted — so that content visibility and interaction permissions stayed consistent across the app. On top of that networking and data foundation, we layered a full social feature set: a messaging system supporting both one-on-one direct messages and group chats, user profile pages with photos and personal descriptions, and a photo-posting system that feeds into each user's friends' personalized content feeds. We paired all of this with a deliberately minimalist interface, prioritizing clear navigation and friction-free usability over visual clutter. Waffle became a hands-on deep dive into building a multi-user networked application end-to-end in Java — from raw socket programming up through the social features that make a platform feel alive.
