紋身工作室用戶、預約和護理後端
用戶、預約、訂金及護理工作流程
一個在Back4app上的生產就緒紋身工作室後端,包含用戶、藝術家檔案、作品集設計、預約、訂金及護理後續紀錄。包括ER圖、字段字典、JSON架構、API沙盒和一個AI代理提示以便快速啟動。
工作室要點
此範本提供您紋身工作室的後端,擁有用戶、藝術家檔案、作品設計、預約、訂金和護理記錄,讓您的團隊可以專注於預約、付款、客戶溝通和療癒後續。
- 藝術家作品集iOS — 為每位藝術家建模作品設計條目,包含標題、風格、身體部位、圖片網址、說明、標籤和是否已發布。
- 訂金追蹤 — 追蹤 Deposit.amount、貨幣、付款狀態、付款參考和 receivedAt,以便於已付的保留和退款。
- 護理記錄 — 記錄 AftercareLog.instructions、nextCheckInDate、狀態和 clientAcknowledgedAt,以便將療癒後續與預約保持關聯。
- 工作室訪問控制 — 將 ArtistProfile、Booking、Deposit 和 AftercareLog 數據範圍限定到正確的角色、客戶和藝術家指針。
- 跨平台API訪問 — 為網頁儀表板、移動藝術家工具和面向客戶的售後視圖使用一個 REST 和 GraphQL 後端。
概覽:纹身工作室藝術家應用
最好的纹身工作室團隊將客戶旅程視為數據:可衡量的、可改進的,並且在風險高昂時容易解釋。解決方案是操作性的,而非激勵性的。這裡的纹身工作室工作流程在數據上明確:Back4app 上的 ArtistProfile、PortfolioDesign、Booking、Deposit 和 AftercareLog 用結構化、可查詢的進度替代即興註釋。架構涵蓋用戶(用戶名、電子郵件、密碼、角色、顯示名稱)、ArtistProfile(用戶、簡介、專長、個人照片URL、預訂押金金額、是否接受請求)、PortfolioDesign(藝術家、標題、風格、身體位置、圖片URL、說明、是否發布、標籤)、Booking(客戶、藝術家、預約日期、狀態、設計、註釋)、Deposit(預訂、客戶、金額、貨幣、支付狀態、支付參考、收到時間)及 AftercareLog(預訂、客戶、藝術家、指示、下一次檢查日期、狀態、客戶確認時間)。連接您首選的前端,並更快發送。
最佳適用於:
刺青工作室:後端快照
高峰週揭露刺青工作室的債務:一月份覺得沒問題的捷徑成為您錯過二月份承諾的原因。
這個摘要使團隊在任何人深入研究 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輔助腳手架
快速生成模式、安全規則和範例查詢,僅需一個結構化提示。
工作室技術棧
這個刺青工作室後端模板中包含的所有內容。
Studio 實體圖
紋身工作室後端架構的實體關係模型。
涵蓋用戶、藝術家檔案、作品設計、預訂、定金和護理日誌的架構。
查看圖表來源
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
}
工作室整合流程
登錄、作品集瀏覽、預約創建、存款記錄和售後服務更新的典型運行流程。
查看圖表來源
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字段字典
紋身工作室架構中每個類別的完整字段級參考。
| 字段 | 類型 | 描述 | 必填 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自動 |
| username | String | Studio login name | |
| String | Login email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Account role, such as owner, artist, frontDesk, or client | |
| displayName | String | Public name shown in the studio app | — |
| createdAt | Date | Auto-generated creation timestamp | 自動 |
| updatedAt | Date | Auto-generated last-update timestamp | 自動 |
8 欄位在 User 中
工作室安全性和權限
ACL 和 CLP 策略如何保護用戶、藝術家、預訂、押金和售後維護記錄。
藝術家擁有的個人資料
只有指定的藝術家或工作室管理員應編輯藝術家個人資料欄位,如簡介、專業和預訂押金金額。
押金完整性
通過身份驗證的工作人員操作創建和更新押金記錄,以便金額、支付狀態和支付參考保持可靠。
客戶隱私與後續範疇
限制預訂、訂金及售後日誌的讀取權限給藝術家、前台用戶或與指針關係綁定的客戶。
JSON 架構
原始 JSON 架構定義可直接複製到 Back4app 或作為實施參考使用。
{
"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 上創建一個紋身工作室藝術家應用程序後端,其精確架構和行為如下。 架構: 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、押金追蹤、預訂詳情和售後跟進。
按一下下面的按鈕以此模板提示預填寫的內容打開代理。
這是沒有技術後綴的基本提示。您可以在之後調整生成的前端堆棧。
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 | 完整 |
設置時間反映從專案啟動到使用此模板架構的第一個作品集、預訂、訂金或售後諮詢的預期持續時間。
工作室問題
關於使用此模板建立紋身藝術家應用後端的常見問題。