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:
+105
@@ -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
|
||||||
@@ -1,9 +1,91 @@
|
|||||||
# README
|
<div align="center">
|
||||||
This is a readme file. It typically includes some information about your project.
|
<img src="documents/images/logo.png" alt="Game Logo" width="200"/>
|
||||||
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>
|
||||||
|
|
||||||
Readme files are typically formatted in Markdown.
|
<br/>
|
||||||
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.
|
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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 (1–6)** 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 |
Reference in New Issue
Block a user