Tutorial Aplikasi Penagihan dengan Next.js, Vercel & Back4app
Dalam tutorial ini, kita akan membangun sebuah Aplikasi Penagihan menggunakan Next.js sebagai frontend, Back4App sebagai backend, dan layanan tambahan seperti Clerk untuk otentikasi, Stripe untuk pembayaran, dan Resend untuk notifikasi email. Panduan ini akan menjelaskan cara mengatur otentikasi, manajemen faktur, pemrosesan pembayaran, dan penyebaran di Vercel.
Sebelum memulai, pastikan Anda memiliki hal-hal berikut:
- Masuk ke Back4App dan buat proyek baru.
- Navigasikan ke Data Browser dan buat kelas-kelas berikut:
- objectId
- username
- email
- Buat kelas bernama Organisasi.
- Tambahkan kolom berikut:
- nama (String): Nama organisasi.
- ownerId (Pointer<_User>): Mengarah ke kelas User (dibuat secara otomatis oleh Clerk).
- anggota (Array<Pointer<_User>>): Sebuah array pengguna yang menjadi bagian dari organisasi ini.
- Buat kelas bernama Pelanggan.
- Tambahkan kolom-kolom ini:
- nama (String): Nama pelanggan.
- email (String): Email pelanggan.
- organizationId (Pointer): Organisasi tempat pelanggan ini berada.
- Buat kelas bernama Faktur.
- Tambahkan kolom-kolom ini:
- nomorFaktur (String): Pengidentifikasi faktur yang unik.
- idPelanggan (Pointer): Menghubungkan ke pelanggan.
- idOrganisasi (Pointer): Menghubungkan ke organisasi.
- jumlah (Number): Total jumlah untuk faktur.
- status (String): Opsi termasuk 'draft', 'sent', 'paid', dan 'overdue'.
- tanggalJatuhTempo (Date): Tanggal jatuh tempo faktur.
- item (Array): Daftar item dalam faktur.
- Buat kelas bernama Pembayaran.
- Tambahkan kolom-kolom ini:
- idFaktur (Pointer): Menghubungkan ke faktur terkait.
- jumlah (Number): Jumlah pembayaran.
- idSesiStripe (String): ID sesi Stripe.
- status (String): Status pembayaran (misalnya, 'pending', 'successful', 'failed').
Mulailah dengan menyiapkan proyek Next.js Anda dengan TypeScript, Tailwind CSS, dan komponen shadcn/ui.
Konfigurasikan Tailwind dengan memperbarui tailwind.config.js dan menambahkan gaya ke globals.css.
Di tailwind.config.js:
Di styles/globals.css:
Instal dependensi yang diperlukan untuk Parse, Clerk, Stripe, dan Resend.
Di pages/_app.tsx, inisialisasi Parse SDK dengan kredensial Back4App Anda:
Ganti 'YOUR_APP_ID' dan 'YOUR_JAVASCRIPT_KEY' dengan kredensial Back4App Anda.
Siapkan Clerk untuk autentikasi. Pergi ke dasbor Clerk, buat aplikasi, dan ambil kunci API Anda. Perbarui .env.local file Anda dengan kunci Clerk.
Sekarang buat pages/sign-in.tsx dan pages/sign-up.tsx untuk fungsionalitas masuk dan daftar menggunakan komponen Clerk.
Di pages/sign-in.tsx:
Di pages/sign-up.tsx:
Pengguna dapat membuat organisasi yang mereka miliki. Buat halaman pages/organizations/new.tsx untuk membuat organisasi baru.
Buat halaman manajemen pelanggan pages/customers/new.tsx untuk menambahkan pelanggan baru.
Buat halaman pembuatan faktur pages/invoices/new.tsx untuk menghasilkan faktur baru.
Buat halaman pages/invoices/index.tsx untuk melihat semua faktur dengan opsi pengurutan dan penyaringan.
Untuk memproses pembayaran, integrasikan Stripe. Di pages/invoices/[id].tsx, implementasikan pembuatan tautan pembayaran menggunakan Stripe Checkout.
Atur Resend untuk mengirim email faktur kepada klien.
Untuk menyebarkan aplikasi di Vercel, instal Vercel CLI dan lakukan penyebaran.
Konfigurasikan variabel lingkungan untuk Clerk, Stripe, Resend, dan Back4App di dasbor Vercel sebelum penyebaran.
Dalam tutorial ini, kami membangun sebuah Aplikasi Faktur yang lengkap dengan Next.js, terintegrasi dengan Back4App untuk backend, Clerk untuk otentikasi, Stripe untuk pembayaran, dan Resend untuk notifikasi email. Kami membahas manajemen pengguna dan organisasi, pembuatan faktur, pemrosesan pembayaran, dan penyebaran.