Skip to content

Latest commit

 

History

History
120 lines (85 loc) · 4.33 KB

File metadata and controls

120 lines (85 loc) · 4.33 KB

Astro Feature Map Logo

Astro Feature Map

軽量で無料で使えるシンプルなフィードバックツール。

English | 日本語 | 公開ロードマップ


ユーザーや開発者が新機能を提案し、投票できるシンプルなフィードバックボード。

graph LR
    IDEAS[アイデア] --> P
    
    subgraph AFM [Astro Feature Map]
        P[提案] --> R{レビュー}
        R --> V[投票]
    end
    
    V --> D[開発]

    style AFM fill:#f8fafc,stroke:#334155,stroke-width:1px
    style P fill:#3b82f6,stroke:#1e3a8a,color:#fff
    style R fill:#3b82f6,stroke:#1e3a8a,color:#fff
    style V fill:#3b82f6,stroke:#1e3a8a,color:#fff
    style IDEAS fill:#f1f5f9,stroke:#475569
    style D fill:#10b981,stroke:#064e3b,color:#fff
Loading

主な機能

  • 🗳️ 手軽な投票: ログイン不要。IPとブラウザフィンガープリントによる重複防止。
  • 🚀 迅速な導入: 外部OAuthやAPIキーの設定不要。環境変数だけでデプロイ完結。
  • ⚡ エッジ駆動: Cloudflare D1/Pagesによる1秒未満の高速レスポンス。
  • 🗺️ マップ切り替え: 独自の「マップ」表示と従来の「ロードマップ」表示を切り替え可能。
  • 📝 Markdown対応: リアルタイムプレビュー付きのMarkdown記述をサポート。
  • 🌍 多言語対応: 英語と日本語(en, ja)を標準サポート。
  • 📊 チャート表示: 日別の投票状況のトラッキングとトレンドチャートを内蔵。
  • 🌓 アダプティブテーマ: OS設定に合わせたダーク/ライトモードの自動切り替え。

技術スタック

エッジ環境に最適化された、モダンで高性能なツールで構築。


クイックスタート

1. 前提条件

2. セットアップとインストール

pnpm install
pnpm db:migrate:local
pnpm dev

3. 環境変数

プロジェクトのルートに .dev.vars ファイルを作成。

# ダッシュボードへのログインパスワード
ADMIN_TOKEN=your-secure-token

# 内部API認証用キー
DEVELOPER_API_KEY=your-dev-api-key

# 重複投票防止(IP/フィンガープリントのハッシュ化)用のランダムなソルト
FINGERPRINT_SALT=your-random-salt

セキュリティの前提条件

  • トークンベースの管理: 複雑なOAuthやユーザー管理は不要。ADMIN_TOKEN 1つでダッシュボードを保護。
  • API保護: DEVELOPER_API_KEY により、カテゴリー管理などの機密エンドポイントの保護や、外部ツール(CLI/CI)からの自動管理が可能。
  • 投票のセキュリティ: IPハッシュ、ブラウザフィンガープリント、サーバーサイドの FINGERPRINT_SALT を組み合わせ、アカウントなしで重複投票を防止。
  • リポジトリの秘匿性: すべての機密キーは環境変数とCloudflare Secretsで管理。

デプロイ

Cloudflare Pagesへ数秒でデプロイ可能。

  1. D1データベースの作成: pnpm wrangler d1 create astro-feature-map
  2. 設定の作成: cp wrangler.toml.example wrangler.toml を実行し、database_id を記入。
  3. マイグレーションの実行: pnpm db:migrate:prod
  4. デプロイ: pnpm run pages:deploy

ライセンス

MIT