<div align="center">
<img src="documents/images/logo.png" alt="Game Logo" width="200"/>
</div>

<br/>

<div align="center">
<h2>Syntax Syndicate</h2>
<p>Jona • Mathis • Julian • Lars</p>
</div>


## Table of Contents

- [About the Project](#about-the-project)
- [Repository Structure](#repository-structure)
- [Prerequisites](#prerequisites)
- [Development Timeline](#development-timeline)


## About the Project

As part of the Programming Project course (CS108) for the semester FS26 at the University of Basel, we are developing a computer game implementation of the popular card game **Poker**.

The project's focus lies in **networking** and distributed systems design.
Key aspect of our implementation being the development and integration of a **custom protocol** specifically designed for **client-server communication**.
This protocol handles game state synchronization, player actions, lobby and global chat, and real-time updates across the network.


## Repository Structure

```
├── src/                     # Source code directory
│   ├── main/                # Application code
│   └── test/                # Unit tests
├── documents/               # Project resources and documentation
│   ├── images/              # Images for README and documentation
│   ├── diary                # Diary files for each organizational meetup
│   ├── blog                 # Blog files covering project-related topics
│   ├── docs                 # Documentation
│   ├── milestones/          # Milestone deliverables (6 milestones)
│   └── (Other resources)    # Additional project materials
└── outreach/                # Public-facing content and marketing materials
```


## Prerequisites
- Java Development Kit (JDK) 25
- Gradle (included via Gradle Wrapper)


## Development Timeline

This project spans six milestones throughout the FS26 semester, with each milestone representing a major phase in development:

### **[MS-1](https://p9.dmi.unibas.ch/cs108/2026/#Milestone%201): Foundation & Design**
- Game concept and rules presentation
- Networking architecture overview
- Project mockups and requirements analysis
- Detailed project plan and team organization

### **[MS-2](https://p9.dmi.unibas.ch/cs108/2026/#Milestone%202): Networking & Server Implementation**
- Human-readable custom protocol definition and implementation
- Server implementation with multi-client support
- Client-server chat functionality
- Protocol documentation and validation
- JavaDoc code documentation and QA concepts

### **[MS-3](https://p9.dmi.unibas.ch/cs108/2026/#Milestone%203): Knowledge Checkpoints**
- Assessment of individual technical understanding through evaluation

### **[MS-4](https://p9.dmi.unibas.ch/cs108/2026/#Milestone%204): Game Logic & Working Prototype**
- Core game logic implementation
- Playable game demo (terminal or GUI)
- Command-line argument parsing
- Multiple lobby support with internal chats
- Whisper/private messaging functionality
- Build automation and executable JAR

### **[MS-5](https://p9.dmi.unibas.ch/cs108/2026/#Milestone%205): Polish & Complete User Interface**
- Full GUI implementation with JavaFX
- Complete game playability through UI
- Persistent high score list
- Comprehensive unit tests
- Game rule enforcement

### **[MS-6](https://p9.dmi.unibas.ch/cs108/2026/#Milestone%206): Final Delivery & Public Presentation**
- *Bug-free* final demo
- Complete GUI with all functionality
- Outreach materials and project documentation
- Game manual and usage instructions
- Team logo and promotional materials
- QA reports and lessons learned
