Merge branch 'feat/housekeeping' into 'main'

Feat/housekeeping

See merge request cs108-fs26/Gruppe-13!1
This commit was merged in pull request #157.
This commit is contained in:
Lars Simon Winzer
2026-03-03 17:20:08 +00:00
6 changed files with 281 additions and 7 deletions
+105
View File
@@ -0,0 +1,105 @@
## Java
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*
## Gradle
# Gradle files
.gradle
**/build/
!**/src/**/build/
# Ignore Gradle GUI config
gradle-app.setting
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar
# Avoid ignore Gradle wrappper properties
!gradle-wrapper.properties
# Cache of project
.gradletasknamecache
# Eclipse Gradle plugin generated files
# Eclipse Core
.project
# JDT-specific (Eclipse Java Development Tools)
.classpath
## MacOS
# General
.DS_Store
__MACOSX/
.AppleDouble
.LSOverride
Icon[]
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
## Windows
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
## Jenv
.java-version
+89 -7
View File
@@ -1,9 +1,91 @@
# README
This is a readme file. It typically includes some information about your project.
For more information about readmes, you can either [read a guide](https://github.com/18F/open-source-guide/blob/18f-pages/pages/making-readmes-readable.md) or have a look at the readmes of popular open-source projects such as [Swift by Apple](https://github.com/apple/swift) or [Tensorflow](https://github.com/tensorflow/tensorflow).
<div align="center">
<img src="documents/images/logo.png" alt="Game Logo" width="200"/>
</div>
Readme files are typically formatted in Markdown.
However, there are platform-specific flavors, so for this project, you can make full use of the [Gitlab markdown syntax](https://docs.gitlab.com/ee/user/markdown.html), for example when talking about a :bug: (bug) or if your code is slow like a :snail:.
You can also tag people using @username and reference issues using '#1', where 1 is the issue number. For more features, consult the linked Gitlab syntax guide.
<br/>
If you don't like reading documentation, [here's a cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet).
<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
│ ├── 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
+41
View File
@@ -0,0 +1,41 @@
# Erste Teambesprechung
## Was gemacht wurde
### Installation benötigter Software zur Projektleitung
- Openproject zur Koordinattion und Dokumentierung
- Wireguard um die lokale Kommunikation zwischen den Entwicklern zu ermöglichen
### Spielidee und Name
- Es soll ein Poker Spiel entwickelt werden (mit standard Poker Regeln)
- Der Name der Gruppe ist "Syntax Syndicate"
- Der Name des Spiels ist "Casono"
- Pixel Art
### Arbeitsteilung
- Backend: Lars, Mathis
- Netzwerk:
- Logic:
- Engine:
- Frontend: Jona, Julian
- Presentation in UI:
- Logic:
- Artist: Julian, Jona
### Netzwerkprotokoll
- Rundenbasiert
- Textbasiert und lesbar
- Request udn Response (synchron)
- Client-Server Modell
#### Client:
- Display für den Spielzustand
- führt eigenständig Abfragen beim Server durch
- "heartbeat" Artiger Ansatz, prüft beim Server regelmässig nach Zustandsänderungen
- einfache Input validation
#### Server:
- Verwaltet den Spielzustand
- Verwaltet die Spiele
- Nimmt Anfragen entgegen und verarbeitet diese
- Stellt global und lobby chat bereit
- Setzt Spielregeln durch
+12
View File
@@ -0,0 +1,12 @@
# zweites Teammeeting
## UI / Frontend
- UI sketch erstellt
- grundlegende Entscheidungen getroffen ueber den Aufbau der UI mit anschliessender Vorstellung in der gesamten Gruppe (alle zufrieden :D )
## Netzwerk
- Struktur und Aufbau des Transferprotokolls besprochen
- Network Listener und Manager (ähnlich dem Aufbau von Discord)
- Nachrichten IDs
- Nutzung von hooks der "einen Listener beim Manager einhakt und die Nachricht abgreift"
- Nutzung von Action Commands
+34
View File
@@ -0,0 +1,34 @@
# Meeting Diary
This folder holds the notes and documentation of all team meetings throughout the project.
The notes are organised by **milestones (16)** so that everyone can easily see what was discussed and decided at each stage. Each sub-header below links to the actual Markdown file containing the details.
## Milestone 1
### [24. February 2026](24-02.md)
- Project idea
- Assignment of roles
- First draft of network protocol
### [27. February 2026](27-02.md)
- UI mockup
- Finalizing structure of network protocol
## Milestone 2
*(Meeting notes to be added here when available)*
## Milestone 3
*(Meeting notes to be added here when available)*
## Milestone 4
*(Meeting notes to be added here when available)*
## Milestone 5
*(Meeting notes to be added here when available)*
## Milestone 6
*(Meeting notes to be added here when available)*
Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB