9 Commits

Author SHA1 Message Date
tiennm99 cbad690565 docs,chore: single-port 1999 websocket protobuf
Phase 05 — sync infrastructure and documentation with the typed-protobuf
refactor:
- docker-compose.yml: drop 1024/1025 mappings, single "1999:1999"
- server/Dockerfile: EXPOSE 1999, -p 1999 entrypoint
- README.md: rewrite transport description, architecture diagram, protocol
  section, server options, project structure, add proto:gen script note
- docs/project-overview.md: update transport + dependencies sections
- docs/system-architecture.md: rewrite diagrams + pipeline + file inventory
  for the WebSocket-only typed-dispatch path
- docs/codebase-summary.md: refresh file tree, java package inventory,
  gradle deps, vite deps, networking and game-flow sections
- docs/deployment-guide.md: single-port walkthrough for local / docker /
  systemd / nginx; remove all 1024/1025 firewall and troubleshooting
- docs/code-standards.md: replace dead ServerEventListener_CODE_* class-name
  example, fix sample ws:// URL to port 1999
2026-04-11 08:33:46 +07:00
tiennm99 45e22124ac chore: bump version to 0.0.1 and replace "frontend" with "client"
Version change:
- Drop the "-beta" suffix across all version declarations.
- server/build.gradle.kts: version = "0.0.1"
- client/package.json: "version": "0.0.1"
- client/package-lock.json: regenerated
- server/Dockerfile: COPY path references the new jar filename
- All docs + README refer to caro-server-0.0.1.jar.

Terminology cleanup:
- Replace the word "frontend" with "client" so the whole project uses
  one consistent term (server / client).
- README.md Credits section: "Frontend build tool" -> "Client build tool".
- No other "frontend" occurrences found in code or docs.

Also correct two lingering Maven-era stale paths in deployment-guide.md
("server/target/..." -> Gradle output location) that slipped past the
earlier Maven-to-Gradle commit.

Versioning note in codebase-summary.md simplified to plain MAJOR.MINOR.PATCH
(dropped the "-beta suffix during pre-1.0" clause).

Validation: gradlew clean shadowJar + test passes (37 tests on Java 25);
client build succeeds with new package name/version.
2026-04-10 20:55:29 +07:00
tiennm99 b7ff184387 refactor: convert server from Maven to Gradle
Replace server/pom.xml with Gradle 9.2.1 (Kotlin DSL) + Shadow plugin
for fat jar packaging.

New files:
- server/build.gradle.kts   (Kotlin DSL script)
- server/settings.gradle.kts
- server/gradle/wrapper/    (committed wrapper, pinned to 9.2.1)
- server/gradlew, gradlew.bat

Deleted:
- server/pom.xml

Gradle config:
- plugins: java, com.gradleup.shadow 8.3.5
- toolchain: JavaLanguageVersion.of(25) (auto-provisions if missing)
- deps: netty-all 4.1.115.Final, protobuf-java 3.25.5, gson 2.11.0,
  junit-bom 5.11.3 + junit-jupiter (test)
- compiler: -parameters, UTF-8
- test: useJUnitPlatform()
- shadowJar: main class com.miti99.caro.server.SimpleServer,
  mergeServiceFiles(), append META-INF/io.netty.versions.properties
- default assembly depends on shadowJar

Output path migration:
- server/target/caro-server-0.0.1-beta.jar moves under Gradle output conventions.

Infrastructure:
- server/Dockerfile: eclipse-temurin:25-jdk + committed wrapper
  (no Maven image); runtime stage unchanged. COPY order optimized.
- .github/workflows/build.yml: setup-java temurin 25 +
  gradle/actions/setup-gradle, run gradlew with -p server.
- .gitignore: add .gradle/, whitelist wrapper jar after *.jar rule.

Docs + README fully updated to Gradle commands across:
README.md, codebase-summary.md, code-standards.md, deployment-guide.md,
project-overview.md, system-architecture.md.

Validation: gradlew clean assemble check passes all 37 tests on Java 25.
2026-04-10 20:50:53 +07:00
tiennm99 1f7133526f docs: rename project-overview-pdr.md to project-overview.md
The PDR suffix was unclear (Product Design Requirements). Plain
project-overview.md matches the file's contents better and aligns
with the naming of the other docs.

Also update the directory tree in codebase-summary.md.
2026-04-10 20:04:26 +07:00
tiennm99 5b2c3dd0e8 docs: remove roadmap and sync remaining docs with current project state
- Delete docs/project-roadmap.md (no longer maintained).
- project-overview-pdr.md: drop Roadmap & Status table; tweak PVP
  feature description (remove non-existent chat); update Success
  Criteria to reference CI instead of CI/CD with deploy.
- codebase-summary.md: drop project-roadmap.md from directory tree.
- system-architecture.md: simplify static handler note to describe
  current pipeline state instead of refactor history.
2026-04-10 20:01:54 +07:00
tiennm99 4feee3b858 chore: remove deploy-pages workflow and cleanup unused files
- Remove .github/workflows/deploy-pages.yml. Docker Compose is now the
  canonical deployment path.
- Delete unreferenced demo.gif (tracked, no markdown references).
- Delete stale landlords-client/ leftover from pre-refactor Maven cache.
- Delete empty client/public/ directory.
- Drop demo.gif entry from .dockerignore.
- Clean up .gitignore: dedupe target/.project/.classpath/.settings/.DS_Store
  entries, remove stale /ratel-landlords/.project line, group by purpose.
- Bump client/README.md Node.js requirement 18+ to 22+ (aligns with CI).
- Update docs to drop GitHub Pages references:
  - codebase-summary.md: drop deploy-pages.yml from tree and CI section.
  - deployment-guide.md: replace Option A (GH Pages) with Docker Compose.
  - project-overview-pdr.md: Phase 4 no longer mentions GH Pages.
  - project-roadmap.md: Phase 6 describes CI-only, notes deploy-pages
    removal; Phase 7 entry lists cleanup items; maintenance schedule
    now says rebuild Docker images.
  - system-architecture.md: deployment diagram shows Docker Compose only.

Validation: mvn -f server/pom.xml clean verify passes 37 tests on Java 25.
2026-04-10 19:48:19 +07:00
tiennm99 a69fccbaf0 docs: sweep all docs + README for post-refactor state
Update root README + all 6 docs in ./docs/ to reflect the completed
monorepo refactor (server/ + client/, Java 25, gson, JUnit 5,
com.miti99.caro.{common,server}.*, caro-server 0.0.1-beta).

- README.md: quickstart commands, project structure, architecture
  diagram; drop CLI + built-in web UI sections. Credits preserved
  verbatim (Ratel/ainilili historical attribution).
- docs/codebase-summary.md: full rewrite — new directory tree,
  package layout, build config, CI, version.
- docs/code-standards.md: package prefix (com.miti99.caro), Java 25
  tools, modernization guidelines (records, var, switch expressions),
  JUnit 5.
- docs/deployment-guide.md: full rewrite — Java 25 prereqs,
  docker-compose path, standalone jar commands, nginx reverse proxy
  updated, JUnit 5 test output, zero-downtime update flow.
- docs/project-overview-pdr.md: tech stack (Java 25 + gson + JUnit 5
  + shade), features matrix (no CLI/built-in UI), architecture
  diagram, deps table, version history, quick start commands.
- docs/project-roadmap.md: add Phase 7 (2026-04-10 refactor) with
  full change list; mark Phase 4 built-in UI as removed; update
  version history with 0.0.1-beta; Decision 1 updated to Java 25.
- docs/system-architecture.md: full rewrite — Netty pipeline without
  StaticFileHandler, new package layout, single-module dependency
  graph, gson on WebSocket, Msg as record, deployment diagram with
  docker-compose services, proto files staged for future use.

Grep verification: all remaining mentions of legacy names
(landlords-, org.nico.ratel, StaticFileHandler, I18nHelper, noson,
1.4.0) appear only in:
  - the Phase 7 refactor description in project-roadmap.md
    (intentional historical context)
  - protoc-generated ClientTransferData.java / ServerTransferData.java
    internal variable names and embedded descriptor byte strings
    (public Java package is correct; preserving wire format)
2026-04-10 19:33:00 +07:00
tiennm99 ac4bb07d65 docs: reflect Docker Compose setup, GAME_OVER payload, build.yml rename 2026-04-10 18:21:14 +07:00
tiennm99 ce101bd778 docs: add comprehensive project documentation
- project-overview-pdr.md: PDR, goals, features, tech stack
- system-architecture.md: diagrams, protocol, event codes, data flow
- codebase-summary.md: module breakdown, key classes, test structure
- code-standards.md: Java/JS conventions, JSDoc, Git rules
- deployment-guide.md: build, run, CI/CD, troubleshooting
- project-roadmap.md: completed phases, future ideas, decision log
2026-04-10 13:37:54 +07:00