紋身工作室
使用 AI 代理建立
紋身工作室後端

紋身工作室用戶、預約和護理後端
用戶、預約、訂金及護理工作流程

一個在Back4app上的生產就緒紋身工作室後端,包含用戶、藝術家檔案、作品集設計、預約、訂金及護理後續紀錄。包括ER圖、字段字典、JSON架構、API沙盒和一個AI代理提示以便快速啟動。

工作室要點

此範本提供您紋身工作室的後端,擁有用戶、藝術家檔案、作品設計、預約、訂金和護理記錄,讓您的團隊可以專注於預約、付款、客戶溝通和療癒後續。

  1. 藝術家作品集iOS為每位藝術家建模作品設計條目,包含標題、風格、身體部位、圖片網址、說明、標籤和是否已發布。
  2. 訂金追蹤追蹤 Deposit.amount、貨幣、付款狀態、付款參考和 receivedAt,以便於已付的保留和退款。
  3. 護理記錄記錄 AftercareLog.instructions、nextCheckInDate、狀態和 clientAcknowledgedAt,以便將療癒後續與預約保持關聯。
  4. 工作室訪問控制將 ArtistProfile、Booking、Deposit 和 AftercareLog 數據範圍限定到正確的角色、客戶和藝術家指針。
  5. 跨平台API訪問為網頁儀表板、移動藝術家工具和面向客戶的售後視圖使用一個 REST 和 GraphQL 後端。

概覽:纹身工作室藝術家應用

最好的纹身工作室團隊將客戶旅程視為數據:可衡量的、可改進的,並且在風險高昂時容易解釋。解決方案是操作性的,而非激勵性的。這裡的纹身工作室工作流程在數據上明確:Back4app 上的 ArtistProfile、PortfolioDesign、Booking、Deposit 和 AftercareLog 用結構化、可查詢的進度替代即興註釋。架構涵蓋用戶(用戶名、電子郵件、密碼、角色、顯示名稱)、ArtistProfile(用戶、簡介、專長、個人照片URL、預訂押金金額、是否接受請求)、PortfolioDesign(藝術家、標題、風格、身體位置、圖片URL、說明、是否發布、標籤)、Booking(客戶、藝術家、預約日期、狀態、設計、註釋)、Deposit(預訂、客戶、金額、貨幣、支付狀態、支付參考、收到時間)及 AftercareLog(預訂、客戶、藝術家、指示、下一次檢查日期、狀態、客戶確認時間)。連接您首選的前端,並更快發送。

最佳適用於:

纹身工作室藝術家應用作品集和畫廊工具存款追蹤儀表板售後跟進系統諮詢排程應用程式BaaS 為工作室產品選擇的團隊

刺青工作室:後端快照

高峰週揭露刺青工作室的債務:一月份覺得沒問題的捷徑成為您錯過二月份承諾的原因。

這個摘要使團隊在任何人深入研究 ER 圖或 JSON 匯出之前,圍繞 ArtistProfile、PortfolioDesign 和 Booking 進行定向。

刺青工作室核心功能

這個中心中的每一個技術卡片都使用相同的刺青工作室後端架構,包含用戶、藝術家檔案、作品集設計、預訂、訂金和售後服務記錄。

用戶角色和藝術家資料

用戶存儲用戶名、電子郵件、角色和顯示名稱,而藝術家資料則添加簡介和專業技能。

PortfolioDesign 作品管理

PortfolioDesign 連結了藝術家、標題、風格、身體位置、圖片網址、標題、標籤,並標記為已發布。

預訂的訂金追蹤

訂金追蹤預訂、客戶、金額、貨幣、付款狀態、付款參考和收到時間。

售後服務記錄跟進

售後服務記錄捕捉指示、下次檢查日期、狀態和客戶確認時間。

為什麼使用Back4app來構建你的刺青工作室後端?

Back4app 為你提供工作室專屬的數據原語,讓你的團隊能夠專注於藝術展示、預約處理、付款跟進和售後護理,而不是後端設置。

  • ArtistProfile和PortfolioDesign記錄: 使用 ArtistProfile.user、ArtistProfile.specialties、PortfolioDesign.title 和 PortfolioDesign.imageUrl 來展示閃圖、癒合作品和特色作品。
  • 預約和押金工作流程: 連接 Booking.appointmentDate、Booking.status、Deposit.amount 和 Deposit.paymentStatus,以減少錯過的確認,並保持付款決策可見。
  • AftercareLog 透過靈活的 API 更新: 使用 Live Queries 或 REST 刷新 AftercareLog.instructions、AftercareLog.nextCheckInDate 和 AftercareLog.clientAcknowledgedAt,同時員工查看客戶恢復筆記。

圍繞 User、Booking、Deposit 和 AftercareLog 構建刺青工作室後端,而不是通用的 CRUD 畫面。

工作室福利

一個刺青工作室後端,從第一次諮詢開始保持用戶、作品集設計、預訂、訂金和售後服務記錄的有序。

更快的作品集發布

使用 PortfolioDesign 紀錄,包括標題、圖像網址、樣式和標籤,而不是在每個前端重新建立畫廊內容。

更簡潔的存款跟進

儲存 Deposit.amount、paymentStatus、paymentReference 和 receivedAt,這樣接待人員就可以確認誰已付款。

更有用的療癒備註

將 AftercareLog.instructions、nextCheckInDate 和 clientAcknowledgedAt 附加到預訂中,以便作客戶特定的跟進。

工作室訪問邊界

應用 ACL 和 CLP 規則,以確保 User、ArtistProfile、Booking、Deposit 和 AftercareLog 紀錄對正確的員工可見。

共享真相來源

一個後端在每個設備之間保持 Booking.appointmentDate、PortfolioDesign 和 AftercareLog 的同步。

AI輔助腳手架

快速生成模式、安全規則和範例查詢,僅需一個結構化提示。

準備好啟動您的紋身工作室應用程式了嗎?

讓Back4app AI代理對您的紋身工作室後端進行腳手架搭建,並從一個提示中生成作品集、預訂、訂金和售後護理流程。

免費開始 — 每月50個AI代理提示,無需信用卡

工作室技術棧

這個刺青工作室後端模板中包含的所有內容。

前端
13+ 種技術
後端
Back4app
數據庫
MongoDB
身份驗證
內建身份驗證 + 會話
API
REST 和 GraphQL
實時
Live Queries

Studio 實體圖

紋身工作室後端架構的實體關係模型。

查看圖表來源
Mermaid
erDiagram
    User ||--o{ ArtistProfile : "user"
    User ||--o{ PortfolioDesign : "artist"
    User ||--o{ Booking : "client"
    User ||--o{ Booking : "artist"
    User ||--o{ Deposit : "client"
    User ||--o{ AftercareLog : "client"
    User ||--o{ AftercareLog : "artist"
    PortfolioDesign ||--o{ Booking : "design"
    Booking ||--o{ Deposit : "booking"
    Booking ||--o{ AftercareLog : "booking"

    User {
        String objectId PK
        String username
        String email
        String password
        String role
        String displayName
        Date createdAt
        Date updatedAt
    }

    ArtistProfile {
        String objectId PK
        String userId FK
        String bio
        Array specialties
        String profilePhotoUrl
        Number bookingDepositAmount
        Boolean isAcceptingRequests
        Date createdAt
        Date updatedAt
    }

    PortfolioDesign {
        String objectId PK
        String artistId FK
        String title
        String style
        String bodyPlacement
        String imageUrl
        String caption
        Boolean isPublished
        Array tags
        Date createdAt
        Date updatedAt
    }

    Booking {
        String objectId PK
        String clientId FK
        String artistId FK
        Date appointmentDate
        String status
        String designId FK
        String notes
        Date createdAt
        Date updatedAt
    }

    Deposit {
        String objectId PK
        String bookingId FK
        String clientId FK
        Number amount
        String currency
        String paymentStatus
        String paymentReference
        Date receivedAt
        Date createdAt
        Date updatedAt
    }

    AftercareLog {
        String objectId PK
        String bookingId FK
        String clientId FK
        String artistId FK
        String instructions
        Date nextCheckInDate
        String status
        Date clientAcknowledgedAt
        Date createdAt
        Date updatedAt
    }

工作室整合流程

登錄、作品集瀏覽、預約創建、存款記錄和售後服務更新的典型運行流程。

查看圖表來源
Mermaid
sequenceDiagram
  participant User
  participant App as Tattoo Studio Artist App
  participant Back4app as Back4app Cloud

  User->>App: Sign in as artist or front desk
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: Open portfolio board
  App->>Back4app: GET /classes/PortfolioDesign?order=-createdAt
  Back4app-->>App: Published designs

  User->>App: Create a booking with a design link
  App->>Back4app: POST /classes/Booking
  Back4app-->>App: Booking objectId

  User->>App: Record the deposit
  App->>Back4app: POST /classes/Deposit
  Back4app-->>App: Deposit objectId

  User->>App: Send aftercare notes
  App->>Back4app: POST /classes/AftercareLog
  Back4app-->>App: AftercareLog objectId

字段字典

紋身工作室架構中每個類別的完整字段級參考。

字段類型描述必填
objectIdStringAuto-generated unique identifier自動
usernameStringStudio login name
emailStringLogin email address
passwordStringHashed password (write-only)
roleStringAccount role, such as owner, artist, frontDesk, or client
displayNameStringPublic name shown in the studio app
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

8 欄位在 User 中

工作室安全性和權限

ACL 和 CLP 策略如何保護用戶、藝術家、預訂、押金和售後維護記錄。

藝術家擁有的個人資料

只有指定的藝術家或工作室管理員應編輯藝術家個人資料欄位,如簡介、專業和預訂押金金額。

押金完整性

通過身份驗證的工作人員操作創建和更新押金記錄,以便金額、支付狀態和支付參考保持可靠。

客戶隱私與後續範疇

限制預訂、訂金及售後日誌的讀取權限給藝術家、前台用戶或與指針關係綁定的客戶。

JSON 架構

原始 JSON 架構定義可直接複製到 Back4app 或作為實施參考使用。

JSON
{
  "classes": [
    {
      "className": "User",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "displayName": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ArtistProfile",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "user": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "bio": {
          "type": "String",
          "required": true
        },
        "specialties": {
          "type": "Array",
          "required": true
        },
        "profilePhotoUrl": {
          "type": "String",
          "required": false
        },
        "bookingDepositAmount": {
          "type": "Number",
          "required": false
        },
        "isAcceptingRequests": {
          "type": "Boolean",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "PortfolioDesign",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "artist": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "title": {
          "type": "String",
          "required": true
        },
        "style": {
          "type": "String",
          "required": true
        },
        "bodyPlacement": {
          "type": "String",
          "required": false
        },
        "imageUrl": {
          "type": "String",
          "required": true
        },
        "caption": {
          "type": "String",
          "required": false
        },
        "isPublished": {
          "type": "Boolean",
          "required": true
        },
        "tags": {
          "type": "Array",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Booking",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "artist": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "appointmentDate": {
          "type": "Date",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "design": {
          "type": "Pointer",
          "required": false,
          "targetClass": "PortfolioDesign"
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Deposit",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "booking": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Booking"
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "amount": {
          "type": "Number",
          "required": true
        },
        "currency": {
          "type": "String",
          "required": true
        },
        "paymentStatus": {
          "type": "String",
          "required": true
        },
        "paymentReference": {
          "type": "String",
          "required": false
        },
        "receivedAt": {
          "type": "Date",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "AftercareLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "booking": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Booking"
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "artist": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "instructions": {
          "type": "String",
          "required": true
        },
        "nextCheckInDate": {
          "type": "Date",
          "required": false
        },
        "status": {
          "type": "String",
          "required": true
        },
        "clientAcknowledgedAt": {
          "type": "Date",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

與 AI 代理一起構建

使用 Back4app AI 代理從此模板生成一個真正的紋身工作室應用,包括前端、後端、身份驗證,以及作品集、預訂、訂金和售後流程。

Back4app AI 代理
準備構建
在 Back4app 上創建一個紋身工作室藝術家應用程序後端,其精確架構和行為如下。

架構:
1. 用戶:用戶名(字符串,必填),電子郵件(字符串,必填),密碼(字符串,必填),角色(字符串,必填),顯示名稱(字符串); objectId,createdAt,updatedAt(系統)。
2. 藝術家檔案:用戶(指向用戶的指針,必填),個人簡介(字符串,必填),專長(字符串數組,必填),個人照片網址(字符串),預訂押金金額(數字),是否接受請求(布爾,必填); objectId,createdAt,updatedAt(系統)。
3. 投資組合設計:藝術家(指向用戶的指針,必填),標題(字符串,必填),風格(字符串,必填),身體位置(字符串),圖片網址(字符串,必填),說明(字符串),是否已發布(布爾,必填),標籤(字符串數組); objectId,createdAt,updatedAt(系統)。
4. 預訂:客戶(指向用戶的指針,必填),藝術家(指向用戶的指針,必填),預約日期(日期,必填),狀態(字符串,必填),設計(指向投資組合設計),備註(字符串); objectId,createdAt,updatedAt(系統)。
5. 押金:預訂(指向預訂的指針,必填),客戶(指向用戶的指針,必填),金額(數字,必填),貨幣(字符串,必填),付款狀態(字符串,必填),付款參考(字符串),接收時間(日期); objectId,createdAt,updatedAt(系統)。
6. 售後護理日誌:預訂(指向預訂的指針,必填),客戶(指向用戶的指針,必填),藝術家(指向用戶的指針,必填),指導(字符串,必填),下一次檢查日期(日期),狀態(字符串,必填),客戶確認時間(日期); objectId,createdAt,updatedAt(系統)。

安全性:
- 只有指定的藝術家或工作室管理員可以編輯藝術家檔案記錄。
- 限制預訂、押金和售後護理日誌的訪問僅限於相關藝術家、前台用戶或客戶。
- 僅通過經過身份驗證的工作人員操作來創建和更新押金記錄。

身份驗證:
- 註冊、登錄、登出。

行為:
- 列出投資組合設計、創建預訂、記錄押金和更新售後護理日誌。

交付:
- Back4app 應用程序,具有架構、ACL、CLP;藝術家投資組合的前端 iOS、押金追蹤、預訂詳情和售後跟進。

按一下下面的按鈕以此模板提示預填寫的內容打開代理。

這是沒有技術後綴的基本提示。您可以在之後調整生成的前端堆棧。

幾分鐘內部署每月 50 個免費提示不需信用卡

API 操場

嘗試針對紋身工作室架構的 REST 和 GraphQL 端點。響應使用模擬數據,並不需要 Back4app 帳號。

載入遊樂場...

使用與此模板相同的架構。

選擇您的技術

展開每張卡片以查看如何將 ArtistProfile、PortfolioDesign 和 Booking 與您選擇的技術堆棧集成。

Flutter 文身工作室後端

React 文身工作室後端

React 原生 文身工作室後端

Next.js 文身工作室後端

JavaScript 文身工作室後端

Android 文身工作室後端

iOS 文身工作室後端

Vue 文身工作室後端

Angular 文身工作室後端

GraphQL 文身工作室後端

REST API 文身工作室後端

PHP 文身工作室後端

.NET 文身工作室後端

每種技術所獲得的內容

每個技術堆棧都使用相同的紋身工作室後端架構和 API 合約。

統一的紋身工作室數據結構

使用一致的架構輕鬆管理用戶、藝術家簡介、作品集設計、預訂、定金和售後服務。

作品集發布給 studiOS

展示藝術家作品,包含 imageUrl、標籤和精彩的 PortfolioDesign 條目。

定金和售後工作流程

在一個後端中跟蹤預訂確認和療癒跟進。

基於角色的工作室團隊訪問

為藝術家、前台工作人員和客戶定義有關預訂和押金數據的訪問級別。

REST/GraphQL API 用於工作室應用程式

使用靈活的API無縫集成網頁、移動和儀表板前端。

紋身工作室堆棧比較

比較所有支持技術的設置速度、SDK風格和AI支持。

框架設置時間紋身工作室好處SDK 類型AI 支持
約 5 分鐘為藝術家作品集iOS和移動網頁上的售後服務提供單一代碼庫。已輸入的 SDK完整
少於 5 分鐘快速的網頁儀表板,適用於 studio portfoliOS 和存款。輸入的 SDK完整
~3–7 分鐘跨平台的藝術家和接待的移動應用程序。輸入的 SDK完整
快速(5 分鐘)設置伺服器呈現的工作室管理員,用於預訂和後續聯絡。輸入的 SDK完整
~3–5 分鐘輕量級網頁集成,適用於工作室工作流程。輸入的 SDK完整
約5分鐘適用於藝術家的原生 Android 應用程式,供在工作場所使用。類型化的SDK完整
少於5分鐘適用於作品集審核和後續關懷的原生 iOS 應用程式。類型化的SDK完整
約3至7分鐘適用於工作室作品集管理的 React 網頁UI。類型化的SDK完整
快速(5分鐘)設置企業工作室儀表板,用於存款和跟進。類型化的SDK完整
少於2分鐘靈活的GraphQL API,用於紋身工作室記錄。GraphQL API完整
快速(2分鐘)設置REST API 集成用於紋身工作室工作流程。REST API完整
約3分鐘伺服器端 PHP 後端,用於預訂和售後服務。REST API完整
~3–7分鐘.NET 後端,用於藝術家和客戶操作。類型化 SDK完整

設置時間反映從專案啟動到使用此模板架構的第一個作品集、預訂、訂金或售後諮詢的預期持續時間。

工作室問題

關於使用此模板建立紋身藝術家應用後端的常見問題。

實際上對刺青工作室交付重要的指標是什麼,而不只是「繁忙」?
刺青工作室團隊應如何建模客戶、事務和內部交接,以避免模糊不清?
這個刺青工作室 CRM 層能否隨著新的事務類型和接收渠道而成長?
我如何在 Flutter 查詢作品設計?
我如何在 Next.js Server Actions 管理定金?
React 原生應用能否離線快取預訂和護理數據?
我該如何防止未經授權訪問客戶備註?
在 Android 上展示紋身作品集 iOS 的最佳方式是什麼?
紋身工作室的護理流程是如何從頭到尾運作的?
這個紋身工作室藝術家應用範本使用了哪些類別?

全球開發者信賴

與 Back4app 模板一起加入團隊,更快推出紋身工作室產品

G2 Users Love Us Badge

準備好建構您的紋身工作室藝術家應用程式了嗎?

在幾分鐘內開始您的紋身工作室項目。不需要信用卡。

選擇技術