スマートフォン向けクイズアプリケーション - PWA対応・オフライン機能搭載
Your Quizは、ユーザーが投稿したクイズを楽しめるモバイルファーストなWebアプリケーションです。承認制によるクイズの品質管理と、オフライン対応によるスムーズなユーザー体験を提供します。
- 📱 スマートフォン最適化: Tinder風UIでのスワイプ操作
- 🔄 オフライン対応: PWA技術によるオフライン利用
- ⚡ 高速レスポンス: API応答時間100ms以下を実現
- 👥 匿名ユーザー中心: アカウント登録不要でのクイズ体験
- ✅ 承認制クイズ: 管理者による品質管理システム
- Framework: Next.js 15 (App Router)
- Styling: Tailwind CSS
- State Management: Jotai
- Language: TypeScript
- Framework: Hono (TypeScript)
- Database: SQLite + Cloudflare D1
- ORM: Drizzle ORM
- Validation: zod
- Error Handling: neverthrow
- Frontend Hosting: Vercel
- Backend Hosting: Cloudflare Workers
- Database: D1 Database
- CI/CD: GitHub Actions
- Test Framework: Vitest
- E2E Testing: Playwright
- Linting: Biome
- モジュラーモノリス: 小規模チームでの開発効率と将来の拡張性を両立
- ヘキサゴナルアーキテクチャ: ドメインロジックとインフラストラクチャの分離
[Browser] ↔ [Vercel CDN] ↔ [Next.js Frontend]
↓
[IndexedDB Cache] ↔ [Cloudflare Workers API (Hono)]
↓
[D1 Database (SQLite)]
- API応答時間: 100ms以下 (エッジコンピューティング)
- 同時接続: 最大100接続対応
- オフライン対応: Service Worker + IndexedDB
- PWA対応: インストール可能・プッシュ通知対応
- 技術選定 - 採用技術とその理由
- アーキテクチャパターン - システム設計の方針
- データアーキテクチャ - データ設計と一貫性方針
- 非機能要件 - パフォーマンス・可用性要件
- ADR-0003: フロントエンドフレームワーク
- ADR-0006: バックエンドフレームワーク
- ADR-0007: データベース選定
- ADR-0010: バリデーションライブラリ
- ADR-0011: HTTPクライアント
- ADR-0012: データベースホスティング
- ADR-0013: フロントエンドホスティング
- ADR-0014: APIホスティング
- Node.js 18+
- pnpm
- Cloudflare アカウント (D1 Database)
# リポジトリクローン
git clone https://github.com/tanacchi/your-quiz.git
cd your-quiz
# 依存関係インストール
pnpm install
# 環境変数設定
cp .env.example .env.local
# 開発サーバー起動
pnpm dev# フロントエンド開発サーバー
pnpm dev
# バックエンド開発 (Cloudflare Workers)
pnpm wrangler dev
# テスト実行
pnpm test
# E2Eテスト
pnpm test:e2e
# リント・フォーマット
pnpm lint
pnpm format
# ビルド
pnpm build- main ブランチへのプッシュで自動デプロイ
- PR作成時にプレビュー環境自動作成
- GitHub Actions経由で自動デプロイ
- D1 Database マイグレーション自動実行
MIT License
Created: 2025-01-27 Maintainer: @tanacchi