{"id":21184463,"url":"https://github.com/pspanoudakis/tichu-ts","last_synced_at":"2026-04-10T14:35:23.405Z","repository":{"id":263586134,"uuid":"889618723","full_name":"pspanoudakis/tichu-ts","owner":"pspanoudakis","description":"Multiplayer simulation of the Tichu card game 🃏","archived":false,"fork":false,"pushed_at":"2025-02-01T15:16:09.000Z","size":1787,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-14T19:52:33.950Z","etag":null,"topics":["docker","docker-compose","event-driven","expressjs","nodejs","reactjs","socket-io","tichu","typescript","vite","yarn","yarn-workspaces","zod"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pspanoudakis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-16T19:33:26.000Z","updated_at":"2025-02-01T15:16:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"25486a15-187c-4efe-ae71-7bdba1c27e7f","html_url":"https://github.com/pspanoudakis/tichu-ts","commit_stats":null,"previous_names":["pspanoudakis/tichu-ts"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pspanoudakis/tichu-ts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pspanoudakis%2Ftichu-ts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pspanoudakis%2Ftichu-ts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pspanoudakis%2Ftichu-ts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pspanoudakis%2Ftichu-ts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pspanoudakis","download_url":"https://codeload.github.com/pspanoudakis/tichu-ts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pspanoudakis%2Ftichu-ts/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264787463,"owners_count":23663937,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","event-driven","expressjs","nodejs","reactjs","socket-io","tichu","typescript","vite","yarn","yarn-workspaces","zod"],"created_at":"2024-11-20T18:08:53.819Z","updated_at":"2025-12-30T18:59:42.279Z","avatar_url":"https://github.com/pspanoudakis.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tichu-TS\n\nMultiplayer implementation of the famous\n[Tichu card game](https://en.wikipedia.org/wiki/Tichu),\nwhich has many rule variations. This particular implementation rules are described\n[here](http://www.gamecabinet.com/rules/Tichu.html).\n\n## Tech Stack\n- Game Server: Node.js, [Express](https://expressjs.com/), TypeScript\n- Game Client: React.js, [Vite](https://vite.dev/), TypeScript\n- Event-driven implementation using [Socket.IO](https://socket.io/)\n- [zod](https://zod.dev/) as runtime type-checker\n- [yarn](https://yarnpkg.com/) as package manager\n- [yarn workspaces](https://yarnpkg.com/features/workspaces) to share business\nlogic and schemas between server and client\n- Docker\n\n## Project Structure\nThe project uses a monorepo structure.\nEach subproject is defined as yarn workspace:\n- `client`: Game Client app (React) code\n- `server`: Game Server app (Node.js) code\n- `shared`: Yarn workspace with business logic and definitions used\nboth by client and server\n\n## Build \u0026 Deployment process\n- In project root folder, run `docker-compose up`\n- This will create 2 separate containers:\n    - `tichu-ts-server`, exposed on port 8080\n    - `tichu-ts-client`, exposed on port 3000\n- In your browser, visit http://localhost:3000 to play\n\n## Previous projects\nInitially, client and server were separate repositories:\n- Client: [tichu-js](https://github.com/pspanoudakis/tichu-js)\n\n    The client app started as a single-player simulation, without server.\n    It is currently deployed on [Netlify](https://www.netlify.com/),\n    you can check it out [here](https://lucid-williams-1b1e7c.netlify.app/).\nThe look and feel of the UI has not changed in this project.\n- Server: [tichu-ts-server](https://github.com/pspanoudakis/tichu-ts-server)\n\n## Development \u0026 Testing\n- Developed in WSL2, using Visual Studio Code \u0026 Node.js 22.11.0,\n- Tested in Firefox Developer Edition ~133 \u0026 Microsoft Edge ~130\n- Build \u0026 Deployment process tested using Docker v27.3.1, build ce12230\nand Docker Compose v2.29.7-desktop.1\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpspanoudakis%2Ftichu-ts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpspanoudakis%2Ftichu-ts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpspanoudakis%2Ftichu-ts/lists"}