Next.js, Vercel 및 Back4app을 사용한 청구서 앱 튜토리얼
이 튜토리얼에서는 Invoicing App을 구축할 것입니다. Next.js를 프론트엔드로, Back4App을 백엔드로, 그리고 Clerk를 인증을 위한 추가 서비스로, Stripe를 결제를 위한 서비스로, Resend를 이메일 알림을 위한 서비스로 사용할 것입니다. 이 가이드는 인증 설정, 인보이스 관리, 결제 처리 및 Vercel에 배포하는 과정을 안내할 것입니다.
시작하기 전에 다음 사항을 확인하세요:
- Back4App에 로그인하고 새 프로젝트를 만드세요.
- 데이터 브라우저 Data Browser로 이동하여 다음 클래스를 만드세요:
- 객체 ID
- 사용자 이름
- 이메일
- 다음과 같은 클래스를 생성합니다: 조직.
- 다음 열을 추가합니다:
- 이름 (문자열): 조직의 이름.
- 소유자 ID (Pointer<_User>): 사용자 클래스(Clerk에 의해 자동으로 생성됨)를 가리킵니다.
- 구성원 (Array<Pointer<_User>>): 이 조직에 속한 사용자 배열.
- 다음과 같은 클래스를 생성합니다: 고객.
- 다음 열을 추가합니다:
- 이름 (문자열): 고객의 이름.
- 이메일 (문자열): 고객의 이메일.
- 조직 ID (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 키를 가져옵니다. .env.local 파일을 Clerk 키로 업데이트합니다.
이제 pages/sign-in.tsx 및 pages/sign-up.tsx를 생성하여 Clerk 구성 요소를 사용한 로그인 및 회원가입 기능을 구현합니다.
다음은 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을 사용했습니다. 사용자 및 조직 관리, 송장 생성, 결제 처리 및 배포를 다루었습니다.