NextJS Шаблоны

Учебник по созданию приложения для выставления счетов с Next.js, Vercel и Back4app

26min

В этом учебном пособии мы создадим полное Invoicing App с использованием Next.js в качестве фронтенда, Back4App в качестве бэкенда и дополнительных сервисов, таких как Clerk для аутентификации, Stripe для платежей и Resend для уведомлений по электронной почте. Это руководство проведет вас через настройку аутентификации, управление счетами, обработку платежей и развертывание на Vercel.

1. Предварительные требования

Перед началом убедитесь, что у вас есть следующее:

2. Настройка бэкенда (Back4App)

2.1 Создание нового проекта в Back4App

  1. Войдите в Back4App и создайте новый проект.
  2. Перейдите в Data Browser и создайте следующие классы:

2.2 Модели данных (Классы)

2.2.1 Пользователь (Автоматически обрабатывается Clerk)

  • идентификатор объекта
  • имя пользователя
  • электронная почта

2.2.2 Организация

  1. Создайте класс под названием Организация.
  2. Добавьте следующие столбцы:
    • имя (Строка): Имя организации.
    • идентификатор владельца (Указатель<_Пользователь>): Указывает на класс Пользователь (создан автоматически Clerk).
    • участники (Массив<Указатель<_Пользователь>>): Массив пользователей, принадлежащих этой организации.

2.2.3 Клиент

  1. Создайте класс под названием Клиент.
  2. Добавьте эти столбцы:
    • имя (Строка): Имя клиента.
    • электронная почта (Строка): Электронная почта клиента.
    • идентификатор организации (Указатель): Организация, к которой принадлежит этот клиент.

2.2.4 Счет-фактура

  1. Создайте класс под названием Счет-фактура.
  2. Добавьте эти столбцы:
    • номерСчета (Строка): Уникальный идентификатор счета.
    • идентификаторКлиента (Указатель): Ссылка на клиента.
    • идентификаторОрганизации (Указатель): Ссылка на организацию.
    • сумма (Число): Общая сумма счета.
    • статус (Строка): Опции включают 'черновик', 'отправлено', 'оплачено' и 'просрочено'.
    • срокПлатежа (Дата): Дата платежа по счету.
    • позиции (Массив): Список позиций в счете.

2.2.5 Платеж

  1. Создайте класс под названием Платеж.
  2. Добавьте эти столбцы:
    • идентификаторСчета (Указатель): Ссылка на связанный счет.
    • сумма (Число): Сумма платежа.
    • идентификаторСессииStripe (Строка): Идентификатор сессии Stripe.
    • статус (Строка): Статус платежа (например, 'ожидание', 'успешно', 'неудачно').

3. Настройка фронтенда (Next.js)

3.1 Создание проекта Next.js

Начните с настройки вашего проекта Next.js с TypeScript, Tailwind CSS и компонентами shadcn/ui.

Bash


3.2 Настройка Tailwind CSS

Настройте Tailwind, обновив tailwind.config.js и добавив стили в globals.css.

В tailwind.config.js:

JS


В styles/globals.css:

CSS


3.3 Установка Parse SDK и дополнительных сервисов

Установите необходимые зависимости для Parse, Clerk, Stripe и Resend.

Bash


3.4 Инициализация Parse SDK в Next.js

В pages/_app.tsx, инициализируйте Parse SDK с вашими учетными данными Back4App:

TypeScript


Замените 'YOUR_APP_ID' и 'YOUR_JAVASCRIPT_KEY' на ваши учетные данные Back4App.

4. Реализация аутентификации пользователей

4.1 Интеграция Clerk для аутентификации

Настройте Clerk для аутентификации. Перейдите на панель управления Clerk, создайте приложение и получите свои API-ключи. Обновите свой .env.local файл с ключами Clerk.

Bash


Теперь создайте pages/sign-in.tsx и pages/sign-up.tsx для функциональности входа и регистрации, используя компоненты Clerk.

В pages/sign-in.tsx:

Text


В pages/sign-up.tsx:

Text


5. Управление организацией и клиентами

5.1 Создание организаций

Пользователи могут создавать организации, которыми они владеют. Создайте страницу pages/organizations/new.tsx для создания новых организаций.

Text


5.2 Управление клиентами

Создайте страницу управления клиентами pages/customers/new.tsx для добавления новых клиентов.

Text


6. Управление счетами

6.1 Создание счетов

Создайте страницу создания счета pages/invoices/new.tsx для генерации новых счетов.

Text


6.2 Просмотр счетов

Создайте страницу pages/invoices/index.tsx для просмотра всех счетов с возможностями сортировки и фильтрации.

Text


7. Обработка платежей (Интеграция с Stripe)

7.1 Настройка Stripe Checkout

Для обработки платежей интегрируйте Stripe. В pages/invoices/[id].tsx, реализуйте создание платежной ссылки с использованием Stripe Checkout.

Text


8. Уведомления по электронной почте (Интеграция повторной отправки)

8.1 Отправка счетов по электронной почте

Настройте Resend для отправки счетов по электронной почте клиентам.

Text


9. Развертывание на Vercel

Чтобы развернуть приложение на Vercel, установите Vercel CLI и разверните.

Bash


Настройте переменные окружения для Clerk, Stripe, Resend и Back4App в панели управления Vercel перед развертыванием.

10. Заключение

В этом учебном пособии мы создали полное Invoicing App с использованием Next.js, интегрировали Back4App для бэкенда, Clerk для аутентификации, Stripe для платежей и Resend для уведомлений по электронной почте. Мы рассмотрели управление пользователями и организациями, создание счетов, обработку платежей и развертывание.