Next.js、Vercel、および Back4app を使った請求書アプリのチュートリアル
このチュートリアルでは、完全な Invoicing App を構築します。フロントエンドには Next.js を使用し、バックエンドには Back4App を使用し、認証には Clerk を、支払いには Stripe を、メール通知には Resend を使用します。このガイドでは、認証の設定、請求書管理、支払い処理、そして Vercel へのデプロイメントについて説明します。
始める前に、以下のものを用意してください:
- Back4Appにログインして新しいプロジェクトを作成します。
- データブラウザに移動し、以下のクラスを作成します:
- オブジェクトID
- ユーザー名
- メール
- 「Organization」というクラスを作成します。
- 次の列を追加します:
- 名前 (String): 組織の名前。
- ownerId (Pointer<_User>): 「User」クラスを指します(Clerkによって自動的に作成されます)。
- メンバー (Array<Pointer<_User>>): この組織に属するユーザーの配列。
- 「Customer」というクラスを作成します。
- 次の列を追加します:
- 名前 (String): 顧客の名前。
- メール (String): 顧客のメール。
- organizationId (Pointer): この顧客が属する組織。
- クラスを作成する 請求書.
- これらの列を追加します:
- invoiceNumber (文字列): ユニークな請求書識別子。
- customerId (ポインタ): 顧客へのリンク。
- organizationId (ポインタ): 組織へのリンク。
- amount (数値): 請求書の合計金額。
- status (文字列): 'ドラフト', '送信済み', '支払い済み', '期限切れ' などのオプション。
- dueDate (日付): 請求書の期限日。
- items (配列): 請求書内のアイテムのリスト。
- クラスを作成する 支払い.
- これらの列を追加します:
- invoiceId (ポインタ): 関連する請求書へのリンク。
- amount (数値): 支払い金額。
- stripeSessionId (文字列): StripeセッションのID。
- status (文字列): 支払いのステータス(例: '保留中', '成功', '失敗')。
TypeScript、Tailwind CSS、および shadcn/ui コンポーネントを使用して Next.js プロジェクトを設定します。
Tailwind を設定するには、tailwind.config.js を更新し、globals.css にスタイルを追加します。
次の内容を tailwind.config.js:
次の内容を styles/globals.css:
Parse、Clerk、Stripe、および Resend の必要な依存関係をインストールします。
次の内容を pages/_app.tsx, で Parse SDK を Back4App の資格情報で初期化します:
次の内容を置き換えます: 'YOUR_APP_ID' と 'YOUR_JAVASCRIPT_KEY' を Back4App の資格情報に置き換えます。
認証のために Clerk を設定します。Clerkのダッシュボードに移動し、アプリケーションを作成し、APIキーを取得します。Clerkキーで .env.local ファイルを更新します。
次に、Clerkコンポーネントを使用して、サインインおよびサインアップ機能のために pages/sign-in.tsx と pages/sign-up.tsx を作成します。
次に、 pages/sign-in.tsx:
次に、 pages/sign-up.tsx:
ユーザーは自分が所有する組織を作成できます。新しい組織を作成するためのページ pages/organizations/new.tsx を作成します。
新しい顧客を追加するための顧客管理ページ pages/customers/new.tsx を作成します。
新しい請求書を生成するための請求書作成ページ pages/invoices/new.tsx を作成します。
ページを作成します pages/invoices/index.tsx すべての請求書を表示し、ソートおよびフィルタリングオプションを提供します。
支払いを処理するには、Stripeを統合します。 pages/invoices/[id].tsxにおいて、Stripe Checkoutを使用して支払いリンクの作成を実装します。
「Resend」を設定して、クライアントに請求書メールを送信します。
アプリをVercelにデプロイするには、Vercel CLIをインストールしてデプロイします。
デプロイ前に、VercelダッシュボードでClerk、Stripe、Resend、Back4Appの環境変数を設定します。
このチュートリアルでは、完全な 請求書アプリをNext.jsで構築し、バックエンドに Back4Appを統合し、認証に Clerk、支払いに Stripe、メール通知に Resendを使用しました。ユーザーと組織の管理、請求書の作成、支払い処理、デプロイについて説明しました。