Overview
プロジェクト概要
Project Overview
Project Name
AWS 用語集アプリ
AWS Glossary
AWS Glossary
AWS(Amazon Web Services)に関する用語・サービス名・略語を一元管理し、素早く検索・参照できる内部用語集アプリ。エンジニアやビジネス担当者が AWS の学習・業務を進める際に、用語の意味や説明を即座に確認できる環境を提供する。
A centralized glossary application for AWS (Amazon Web Services) terms, service names, and abbreviations — designed for fast search and reference. It provides engineers and business stakeholders with instant access to term definitions and descriptions while learning or working with AWS.
背景 — Background
AWS は多数のサービス・概念・略語が存在し、学習コストが高い
AWS has a large number of services, concepts, and abbreviations, resulting in a steep learning curve.
既存のドキュメントは散在しており、必要な用語をすぐに見つけられない
Existing documentation is scattered across multiple sources, making it hard to find the right term quickly.
統一されたフォーマットで用語を管理し、チーム内での認識統一を図る必要がある
A unified format for managing terms is needed to ensure consistent understanding across the team.
スコープ — Scope
✓ In Scope(対象範囲)
- AWS 用語・サービス名・略語の CRUD(管理者のみ)CRUD for AWS terms, service names, and abbreviations (admin only)
- インクリメンタル検索(デバウンス 300ms)Incremental search with 300ms debounce
- 検索対象の切り替え(単語名 / 説明文)Search target toggle (term name / description)
- カテゴリによる絞り込みフィルター(チップ形式)Category filter chips
- ページング付きテーブル / カード表示切替Paged table / card view toggle
- コマンドパレットによるクイック検索Command palette for quick search
- 用語詳細ダイアログ(行 / カードクリック)Term detail dialog (row / card click)
- 説明画像のアップロード・表示(R2 + 画像最適化 Worker)Description image upload and display (R2 + image optimization Worker)
- ダークモード切替Dark mode toggle
- 管理者認証(HMAC セッション・Cookie ベース)Admin authentication (HMAC session, cookie-based)
✕ Out of Scope(対象外)
- 一般ユーザー向けのアカウント登録・ログイン機能User account registration and login for general users
- 多言語対応Multi-language support
- 外部 API との連携(AWS API 等)Integration with external APIs (e.g., AWS API)
- モバイルネイティブアプリNative mobile app
利用者 — Users
ゲスト(未ログイン)
Guest (not logged in)
読み取り専用
Read only
Read only
- 用語の閲覧Browse terms
- インクリメンタル検索Incremental search
- カテゴリフィルタリングCategory filtering
- 用語詳細ダイアログの表示View term detail dialog
- 管理者ログインの実行Execute admin login
管理者(ログイン済み)
Admin (logged in)
読み取り+書き込み
Read + Write
Read + Write
- ゲスト操作を全て実行可能All guest actions available
- 用語の追加・編集・削除Add, edit, and delete terms
- 説明画像のアップロードUpload description images
- ログアウトLogout
利用者の想定 — Target Users:
AWS を学習中のエンジニア
Engineers learning AWS AWS を利用したシステム開発に携わるチームメンバー
Team members in AWS-based development ドキュメント作成担当者
Documentation writers
Engineers learning AWS AWS を利用したシステム開発に携わるチームメンバー
Team members in AWS-based development ドキュメント作成担当者
Documentation writers
前提条件 — Prerequisites
- Node.js 24 以上のローカル開発環境(wrangler による D1 ローカルエミュレーション) Local development environment with Node.js 24+ (D1 local emulation via wrangler)
-
本番の公開先は Cloudflare Workers(OpenNext の Workers アセット出力形式)を想定する(
next startによる従来型 Node サーバー運用は採用しない) Production target is Cloudflare Workers (OpenNext Workers asset output format). Traditional Node server vianext startis not used. -
Next.js の本番ビルドは
@opennextjs/cloudflare(OpenNext の Cloudflare アダプター)を用い、opennextjs-cloudflare deployによりデプロイする Production build uses@opennextjs/cloudflare(OpenNext Cloudflare adapter) and is deployed viaopennextjs-cloudflare deploy. -
デプロイ先ランタイムは Cloudflare Workers(
main = ".open-next/worker.js"+[assets]バインディングで静的アセットを配信) Deployment runtime is Cloudflare Workers (main = ".open-next/worker.js"+[assets]binding for static asset delivery). - データベースは Cloudflare D1(サーバーレス SQLite 互換 DB)を使用 Database: Cloudflare D1 (serverless SQLite-compatible database)
-
画像ストレージは Cloudflare R2 を使用する(
env.TERM_IMAGESバインディング) Image storage: Cloudflare R2 (viaenv.TERM_IMAGESbinding) -
画像最適化は Cloudflare Queues + 専用 Worker(
image-optimize-consumer.ts)で非同期処理 Image optimization is handled asynchronously via Cloudflare Queues + dedicated Worker (image-optimize-consumer.ts). - Cloudflare アカウントおよびプロジェクトの作成が前提 A Cloudflare account and project must be created in advance.
- 認証機能: HMAC セッション(Cookie ベース)による管理者認証を実装。CRUD 操作・画像アップロードは管理者のみ実行可能。閲覧・検索はゲストに開放 Authentication: HMAC session (cookie-based) admin auth. CRUD operations and image uploads are restricted to admins. Browsing and search are open to guests.
-
パッケージマネージャは pnpm(
packageManager: pnpm@10.33.0)を使用 Package manager: pnpm (packageManager: pnpm@10.33.0)