同人誌即売会用のレジアプリです.Kiradopay および Kiradopay2 を原型としています.
以下の説明は開発者向けです.利用者向けの説明はこちら.
- TypeScript
- Next.js:フロントエンドおよびバックエンド
- React:フロントエンド
- MUI:UI フレームワーク
- Apollo:GraphQL サーバー・クライアント
- Prisma:ORM
- 準備
- Node.js をインストールしてください.
npm install
を実行してください.- 環境変数の項を参照して
.env.local
を作成してください.
- 実行:
npm run dev
を実行してください.
ホスティングにはVercelを利用することを想定しています.
デプロイ方法については公式ドキュメントを参照してください.
また,Next.js の SSR および API Route が動作する他のプラットフォームでも動作すると考えられます.
データベースにはSupabaseを利用することを想定しています.なお,データベース以外の機能は利用しません.
デプロイするには,プロジェクトを作成し,Prismaで利用するための公式のガイドを参照してください.
また,VercelとのIntegrationが公式に提供されています.
なお,Prisma スキーマを変更することで,他のデータベースでも動作すると考えられます.スキーマは Supabase 向けに調整されていることに注意してください.
マイグレーションは自動化されていません.適宜npm run migrate:deploy
を実行してください.詳しくは公式ドキュメントを参照してください.
認証にはDiscordを利用します.
通常の Discord ボットとは異なり,Client ID と Client Secret を利用して OAuth2 認証を行います.
Discord Developer Portalでアプリケーションを用意してください.
Vercel 上で設定し,Vercel CLIでダウンロードすることを想定しています.
データベースの接続情報は,Production向けにはVercelとSupabaseとのIntegrationにより自動的に設定されます.Development向けには,Vercel上で設定するか,ダウンロードした後に手動で設定してください.
NEXT_PUBLIC_HOST
:OAuth2 認証に利用するホスト名です.スキーマとホスト名を含んでください.- Vercel 上では,Production および Preview 環境では Vercel のホスト名を,Development 環境では
http://localhost:3000
を指定してください.
- Vercel 上では,Production および Preview 環境では Vercel のホスト名を,Development 環境では
DISCORD_CLIENT_ID
:Discord の OAuth2 認証に利用します.DISCORD_CLIENT_SECRET
:Discord の OAuth2 認証に利用します.KEY_PAIR
:JWT の署名・検証に利用する鍵のペアです.node scripts/key.mjs
を実行すると,鍵のペアが生成され,環境変数に設定すべき値が表示されます.
vercel login
が完了していることを確認してください.vercel link
を実行してください.vercel env pull .env
を実行してください.