https://github.com/haotool/app
🛠️ HaoTool Apps - Modern React 19 Monorepo | 匯率換算 (RateWise) · 日本名字產生器 (NihonName) · 專案平台 (HaoTool)
https://github.com/haotool/app
currency-converter monorepo pnpm pwa react react19 tailwindcss typescript vite
Last synced: 13 days ago
JSON representation
🛠️ HaoTool Apps - Modern React 19 Monorepo | 匯率換算 (RateWise) · 日本名字產生器 (NihonName) · 專案平台 (HaoTool)
- Host: GitHub
- URL: https://github.com/haotool/app
- Owner: haotool
- License: other
- Created: 2025-10-12T18:54:24.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-01-16T11:23:09.000Z (2 months ago)
- Last Synced: 2026-01-16T11:25:26.758Z (2 months ago)
- Topics: currency-converter, monorepo, pnpm, pwa, react, react19, tailwindcss, typescript, vite
- Language: TypeScript
- Homepage: https://app.haotool.org
- Size: 18.2 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# haotool Apps
**Modern React Applications Monorepo**
[](https://github.com/haotool/app/actions/workflows/ci.yml)
[](https://www.gnu.org/licenses/gpl-3.0)
[](https://www.typescriptlang.org/)
[](https://react.dev/)
[](https://vitejs.dev/)
[](https://pnpm.io/)
[English](#english) · [繁體中文](#繁體中文)
---
## 繁體中文
### 專案概述
haotool Apps 是一個專業的 pnpm Monorepo,包含多個高品質的 React 19 應用程式。所有應用程式共享統一的工程標準、CI/CD 管線和開發工具鏈。
「HAO」取自中文「好」的拼音,我們的核心理念是打造真正的「好工具」。
### 應用程式
| 應用 | 描述 | 狀態 | 連結 |
| ---------------------------------------- | --------------------------------- | ---- | --------------------------------------------------------------------- |
| **[RateWise](./apps/ratewise/)** | 即時匯率換算工具,支援 30+ 種貨幣 | Live | [app.haotool.org/ratewise](https://app.haotool.org/ratewise/) |
| **[NihonName](./apps/nihonname/)** | 日本名字產生器,探索皇民化歷史 | Live | [app.haotool.org/nihonname](https://app.haotool.org/nihonname/) |
| **[Quake-School](./apps/quake-school/)** | 互動式地震科學教育平台 | Live | [app.haotool.org/quake-school](https://app.haotool.org/quake-school/) |
| **[haotool](./apps/haotool/)** | 專案展示平台,3D 互動首頁 | Live | [app.haotool.org](https://app.haotool.org/) |
### 應用特色
#### RateWise - 匯率好工具
基於臺灣銀行牌告匯率的即時匯率 PWA 應用
- 雙模式換算:單幣別與多幣別同時換算
- 即時匯率:每 5 分鐘同步臺灣銀行牌告匯率
- 趨勢圖表:30 天歷史匯率走勢視覺化
- PWA 支援:可安裝至手機,支援離線使用
- 收藏管理:自訂常用貨幣快速存取
#### NihonName - 皇民化改姓生成器
探索 1940 年代台灣皇民化運動的歷史改姓對照
- 姓名變換所:查詢歷史上的日式改姓對照
- 歷史專區:皇民化運動、馬關條約、舊金山和約
- 諧音梗名字:500+ 趣味諧音日本名
- 和紙質感 UI:日式傳統美學設計
#### Quake-School - 地震知識小學堂
互動式地震科學教育網站
- 地震模擬器:互動式調整規模與深度,即時視覺化影響
- 分級課程:幼兒園到進階程度的地震知識
- 知識測驗:互動問答測驗,驗證學習成效
- 震度視覺化:台灣震度分級圖表
- 地震波動畫:P 波、S 波視覺化展示
#### haotool - 專案平台
3D 互動展示平台,介紹所有專案
- Three.js 3D 效果:沉浸式視覺體驗
- 響應式設計:完美適配各種裝置
- 極致效能:Lighthouse 95+ 全類別
---
### 技術棧
| 類別 | 技術 |
| ------------ | ---------------------------- |
| **框架** | React 19.2 + TypeScript 5.9 |
| **建置工具** | Vite 7.3 + vite-react-ssg |
| **樣式** | Tailwind CSS 3.4 |
| **測試** | Vitest 4.0 + Playwright 1.57 |
| **套件管理** | pnpm 9.10.0 (Monorepo) |
| **CI/CD** | GitHub Actions (6 workflows) |
| **部署** | Docker + Zeabur / Vercel |
| **安全** | Gitleaks + Trivy + SARIF |
### 品質指標
| 指標 | 數值 |
| -------------- | ----------- |
| **測試數量** | 1000+ |
| **測試覆蓋率** | 92%+ |
| **TypeScript** | Strict Mode |
| **ESLint** | 0 警告 |
| **Lighthouse** | 95+ 全類別 |
| **CI 管線** | 6 個全通過 |
### 快速開始
#### 環境需求
- **Node.js**: >= 24.0.0
- **pnpm**: >= 9.10.0
#### 安裝與開發
```bash
# 複製儲存庫
git clone https://github.com/haotool/app.git
cd app
# 安裝依賴
pnpm install
# 啟動所有應用開發模式
pnpm dev
# 或啟動特定應用
pnpm --filter @app/ratewise dev # RateWise (http://localhost:4173)
pnpm --filter @app/nihonname dev # NihonName (http://localhost:3002)
pnpm --filter @app/quake-school dev # Quake-School (http://localhost:3003)
pnpm --filter @app/haotool dev # haotool (http://localhost:3000)
```
#### 建置與測試
```bash
# 建置所有應用
pnpm build
# 執行測試
pnpm test
# TypeScript 檢查
pnpm typecheck
# ESLint 檢查
pnpm lint
```
### 專案結構
```
haotool-app/
├── apps/
│ ├── ratewise/ # 匯率換算工具
│ ├── nihonname/ # 日本名字產生器
│ ├── quake-school/ # 地震知識小學堂
│ ├── haotool/ # 專案展示平台
│ └── shared/ # 共用模組
├── docs/ # 文檔
├── scripts/ # 自動化腳本
├── .github/
│ └── workflows/ # CI/CD 管線
│ ├── ci.yml # 主要 CI 流程
│ ├── release.yml # 版本發布
│ ├── seo-audit.yml # SEO 審查
│ ├── seo-production.yml # 生產環境 SEO
│ ├── update-historical-rates.yml # 歷史匯率更新
│ └── update-latest-rates.yml # 最新匯率更新
├── package.json # Monorepo 根配置
├── pnpm-workspace.yaml # pnpm workspace 配置
└── tsconfig.base.json # 共用 TypeScript 配置
```
### 文檔
| 文檔 | 描述 |
| ---------------------------------------------- | -------------------- |
| [AGENTS.md](./AGENTS.md) | Agent 工具與工作流程 |
| [LINUS_GUIDE.md](./LINUS_GUIDE.md) | Linus 風格開發指南 |
| [CONTRIBUTING.md](./CONTRIBUTING.md) | 貢獻指南 |
| [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) | 行為準則 |
| [SECURITY.md](./SECURITY.md) | 安全政策 |
| [COMMIT_CONVENTION.md](./COMMIT_CONVENTION.md) | 提交規範 |
### 貢獻
歡迎提交 Issue 和 Pull Request!請先閱讀 [貢獻指南](./CONTRIBUTING.md)。
### 授權
本專案採用 [GPL-3.0](./LICENSE) 授權。
### 團隊
- **作者**: [haotool](https://haotool.org)
- **Threads**: [@azlife_1224](https://www.threads.net/@azlife_1224)
- **Email**: haotool.org@gmail.com
---
## English
### Overview
haotool Apps is a professional pnpm Monorepo containing multiple high-quality React 19 applications. All applications share unified engineering standards, CI/CD pipelines, and development toolchains.
"HAO" comes from the Chinese word "好" (good). Our core philosophy is to build truly **good tools**.
### Applications
| App | Description | Status | Link |
| ---------------------------------------- | ----------------------------------------------- | ------ | --------------------------------------------------------------------- |
| **[RateWise](./apps/ratewise/)** | Real-time currency converter, 30+ currencies | Live | [app.haotool.org/ratewise](https://app.haotool.org/ratewise/) |
| **[NihonName](./apps/nihonname/)** | Japanese name generator, historical exploration | Live | [app.haotool.org/nihonname](https://app.haotool.org/nihonname/) |
| **[Quake-School](./apps/quake-school/)** | Interactive earthquake science education | Live | [app.haotool.org/quake-school](https://app.haotool.org/quake-school/) |
| **[haotool](./apps/haotool/)** | Project showcase with 3D interactive homepage | Live | [app.haotool.org](https://app.haotool.org/) |
### Tech Stack
- **Framework**: React 19.2 + TypeScript 5.9
- **Build**: Vite 7.3 + vite-react-ssg
- **Styling**: Tailwind CSS 3.4
- **Testing**: Vitest 4.0 + Playwright 1.57
- **Package Manager**: pnpm 9.10.0 (Monorepo)
- **CI/CD**: GitHub Actions (6 workflows)
- **Deployment**: Docker + Zeabur / Vercel
- **Security**: Gitleaks + Trivy + SARIF
### Quick Start
```bash
# Clone repository
git clone https://github.com/haotool/app.git
cd app
# Install dependencies
pnpm install
# Start development
pnpm dev
```
### License
This project is licensed under [GPL-3.0](./LICENSE).
---
**Built with ❤️ by [haotool](https://app.haotool.org/)**
[Website](https://haotool.org) · [GitHub](https://github.com/haotool/app) · [Threads](https://www.threads.net/@azlife_1224)