4 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 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 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 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