{"id":18287540,"url":"https://github.com/othytenk/typemon","last_synced_at":"2026-04-11T06:03:08.420Z","repository":{"id":210384503,"uuid":"726432482","full_name":"OthyTenk/typemon","owner":"OthyTenk","description":"Test your typing speed, type trainer and improve your speed. ","archived":false,"fork":false,"pushed_at":"2024-02-29T08:30:16.000Z","size":44734,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-15T01:14:12.017Z","etag":null,"topics":["mongodb","nextjs","prisma","pusherjs","react","server-actions","server-side-rendering","typescript","typing-game","typing-practice","typing-test","typingspeedtest","zustand"],"latest_commit_sha":null,"homepage":"https://typemon.agula.xyz","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OthyTenk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-12-02T11:36:48.000Z","updated_at":"2024-01-03T16:18:02.000Z","dependencies_parsed_at":"2023-12-07T06:29:20.857Z","dependency_job_id":"c560aa8c-7636-413f-9042-87c4a96a9f73","html_url":"https://github.com/OthyTenk/typemon","commit_stats":null,"previous_names":["othytenk/type-mon","othytenk/typemon"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OthyTenk%2Ftypemon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OthyTenk%2Ftypemon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OthyTenk%2Ftypemon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OthyTenk%2Ftypemon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OthyTenk","download_url":"https://codeload.github.com/OthyTenk/typemon/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247994068,"owners_count":21030048,"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":["mongodb","nextjs","prisma","pusherjs","react","server-actions","server-side-rendering","typescript","typing-game","typing-practice","typing-test","typingspeedtest","zustand"],"created_at":"2024-11-05T13:28:14.385Z","updated_at":"2026-04-11T06:03:08.397Z","avatar_url":"https://github.com/OthyTenk.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ⌨️ TypeMon\n\nTypeMon is a high-performance, real-time multiplayer competitive typing game. Designed for speed and accuracy, it allows players to challenge themselves and others in a dynamic typing environment.\n\n[![Live Demo](https://img.shields.io/badge/demo-online-brightgreen.svg)](https://typemon.agula.xyz/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Next.js](https://img.shields.io/badge/Next.js-14-black)](https://nextjs.org/)\n\n---\n\n## 🚀 Overview\n\nTypeMon combines the thrill of competitive gaming with the utility of typing practice. Whether you're looking to improve your WPM (Words Per Minute) or compete for the top spot on the leaderboard, TypeMon provides the tools to track your progress and hone your skills.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"100%\" alt=\"TypeMon Screenshot\" src=\"screenshot/screenshot.png\"\u003e\n\u003c/p\u003e\n\n## ✨ Key Features\n\n- **🌐 Multiplayer Battles**: Create or join lobbies with up to 4 players for real-time typing races.\n- **⚡ Real-time Feedback**: Visualize your progress and your opponents' positions instantly using Socket.IO.\n- **📊 Comprehensive Stats**: Track WPM (Words Per Minute), CPM (Characters Per Minute), and accuracy for every session.\n- **🌍 Multi-language Support**: Practice typing in various languages, with a focus on Mongolian and English.\n- **🔐 Secure Authentication**: Integrated NextAuth for secure login via Email/Password, GitHub, or Google.\n- **📈 Personal History**: Monitor your growth over time with a detailed history of your typing tests.\n\n## 🛠️ Tech Stack\n\n- **Frontend**: [Next.js 14](https://nextjs.org/) (App Router), [React](https://reactjs.org/), [Tailwind CSS](https://tailwindcss.com/)\n- **State Management**: [Zustand](https://github.com/pmndrs/zustand)\n- **Real-time**: [Socket.IO](https://socket.io/)\n- **Backend / Database**: [Node.js](https://nodejs.org/), [Prisma](https://www.prisma.io/), [MongoDB](https://www.mongodb.com/)\n- **Authentication**: [NextAuth.js](https://next-auth.js.org/)\n- **Monorepo Management**: [Turborepo](https://turbo.build/repo), [pnpm](https://pnpm.io/)\n\n## 📂 Project Structure\n\nThis project is a monorepo managed by Turborepo:\n\n- `apps/web`: The core Next.js application, including the custom Socket.IO server.\n- `packages/*`: Shared configurations and utilities (extensible for future packages).\n\n## 🚦 Getting Started\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org/) (v22.0.0 or higher)\n- [pnpm](https://pnpm.io/) (v7.0.0 or higher)\n- [MongoDB](https://www.mongodb.com/) (Local or Atlas instance)\n\n### Installation\n\n1. **Clone the repository**:\n   ```bash\n   git clone https://github.com/OthyTenk/typemon.git\n   cd typemon\n   ```\n\n2. **Install dependencies**:\n   ```bash\n   pnpm install\n   ```\n\n3. **Environment Setup**:\n   Create a `.env` file in `apps/web/` based on `.env.example`:\n   ```bash\n   cp apps/web/.env.example apps/web/.env\n   ```\n   Fill in your `DATABASE_URL`, authentication secrets, and provider keys.\n\n4. **Initialize Database**:\n   ```bash\n   pnpm --filter @typemon/web prisma generate\n   ```\n\n### Running Locally\n\nTo start the development server for the web app:\n\n```bash\npnpm dev\n```\n\nThe application will be available at `http://localhost:3000`.\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\nRefer to [CONTRIBUTING.md](CONTRIBUTING.md) for more details.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n\u003cp align=\"center\"\u003eMade with ❤️ for the typing community.\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fothytenk%2Ftypemon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fothytenk%2Ftypemon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fothytenk%2Ftypemon/lists"}