NextJS Templates

Tutorial Aplikasi Penagihan dengan Next.js, Vercel & Back4app

26min

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.

1. Prasyarat

Sebelum memulai, pastikan Anda memiliki hal-hal berikut:

2. Mengatur Backend (Back4App)

2.1 Buat Proyek Baru di Back4App

  1. Masuk ke Back4App dan buat proyek baru.
  2. Navigasikan ke Data Browser dan buat kelas-kelas berikut:

2.2 Model Data (Kelas)

2.2.1 Pengguna (Ditangani secara otomatis oleh Clerk)

  • objectId
  • username
  • email

2.2.2 Organisasi

  1. Buat kelas bernama Organisasi.
  2. 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.

2.2.3 Pelanggan

  1. Buat kelas bernama Pelanggan.
  2. Tambahkan kolom-kolom ini:
    • nama (String): Nama pelanggan.
    • email (String): Email pelanggan.
    • organizationId (Pointer): Organisasi tempat pelanggan ini berada.

2.2.4 Faktur

  1. Buat kelas bernama Faktur.
  2. 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.

2.2.5 Pembayaran

  1. Buat kelas bernama Pembayaran.
  2. 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').

3. Menyiapkan Frontend (Next.js)

3.1 Buat Proyek Next.js

Mulailah dengan menyiapkan proyek Next.js Anda dengan TypeScript, Tailwind CSS, dan komponen shadcn/ui.

Bash


3.2 Siapkan Tailwind CSS

Konfigurasikan Tailwind dengan memperbarui tailwind.config.js dan menambahkan gaya ke globals.css.

Di tailwind.config.js:

JS


Di styles/globals.css:

CSS


3.3 Instal Parse SDK dan Layanan Tambahan

Instal dependensi yang diperlukan untuk Parse, Clerk, Stripe, dan Resend.

Bash


3.4 Inisialisasi Parse SDK di Next.js

Di pages/_app.tsx, inisialisasi Parse SDK dengan kredensial Back4App Anda:

TypeScript


Ganti 'YOUR_APP_ID' dan 'YOUR_JAVASCRIPT_KEY' dengan kredensial Back4App Anda.

4. Mengimplementasikan Autentikasi Pengguna

4.1 Integrasi Clerk untuk Autentikasi

Siapkan Clerk untuk autentikasi. Pergi ke dasbor Clerk, buat aplikasi, dan ambil kunci API Anda. Perbarui .env.local file Anda dengan kunci Clerk.

Bash


Sekarang buat pages/sign-in.tsx dan pages/sign-up.tsx untuk fungsionalitas masuk dan daftar menggunakan komponen Clerk.

Di pages/sign-in.tsx:

Text


Di pages/sign-up.tsx:

Text


5. Manajemen Organisasi dan Pelanggan

5.1 Buat Organisasi

Pengguna dapat membuat organisasi yang mereka miliki. Buat halaman pages/organizations/new.tsx untuk membuat organisasi baru.

Text


5.2 Mengelola Pelanggan

Buat halaman manajemen pelanggan pages/customers/new.tsx untuk menambahkan pelanggan baru.

Text


6. Manajemen Faktur

6.1 Buat Faktur

Buat halaman pembuatan faktur pages/invoices/new.tsx untuk menghasilkan faktur baru.

Text


6.2 Melihat Faktur

Buat halaman pages/invoices/index.tsx untuk melihat semua faktur dengan opsi pengurutan dan penyaringan.

Text


7. Pemrosesan Pembayaran (Integrasi Stripe)

7.1 Siapkan Stripe Checkout

Untuk memproses pembayaran, integrasikan Stripe. Di pages/invoices/[id].tsx, implementasikan pembuatan tautan pembayaran menggunakan Stripe Checkout.

Text


8. Notifikasi Email (Integrasi Kirim Ulang)

8.1 Mengirim Email Faktur

Atur Resend untuk mengirim email faktur kepada klien.

Text


9. Penyebaran di Vercel

Untuk menyebarkan aplikasi di Vercel, instal Vercel CLI dan lakukan penyebaran.

Bash


Konfigurasikan variabel lingkungan untuk Clerk, Stripe, Resend, dan Back4App di dasbor Vercel sebelum penyebaran.

10. Kesimpulan

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.