シフトスケジューリング
AIエージェントで構築
シフトスケジューリングバックエンド

シフトスケジューリングアプリバックエンドテンプレート
ローテーション管理とジオフェンス付きタイムクロッキング

本番環境対応のシフトスケジューリングバックエンドがBack4appで利用可能:ユーザー、シフト、スケジュールを含む。ER図、データ辞書、JSONスキーマ、APIプレイグラウンド、そして迅速なブートストラップのためのAIエージェントプロンプトを含む。

重要なポイント

このテンプレートは、ユーザー、シフト、スケジュールを含むシフトスケジューリングバックエンドを提供し、チームが効率的なローテーション管理と時間計測に集中できるようにします。

  1. ユーザー中心のスケジューリングデザインユーザーをシフトとスケジュールで明確かつクエリ可能な構造でモデル化します。
  2. リアルタイムのスケジューリング更新Back4appのリアルタイム機能を使用して、シフト変更や通知を行います。
  3. ジオフェンスによる時間計測ジオフェンスによる正確な打刻機能で、正確な時間追跡を確保します。
  4. シフト交換ロジックユーザーが承認ワークフローを通じてシームレスにシフトを交換できるようにします。
  5. クロスプラットフォームスケジューリングバックエンドモバイルおよびウェブクライアントに対して、ユーザー、シフト、スケジュールのための単一のRESTおよびGraphQL APIを提供します。

シフトスケジューリングアプリバックエンドテンプレートとは?

Back4appは、迅速な製品提供のためのバックエンド・アズ・ア・サービス(BaaS)です。シフトスケジューリングアプリバックエンドテンプレートは、ユーザー、シフト、スケジュールのための事前構築されたスキーマです。お好みのフロントエンド(React、Flutter、Next.jsなど)を接続して、より速く出荷しましょう。

最適な用途:

シフトスケジューリングアプリケーション労働力管理プラットフォーム時間追跡と出勤管理アプリモバイルファーストのスケジューリングアプリMVPのローンチスケジューリング製品のためにBaaSを選択するチーム

概要

シフトスケジューリング製品には、ユーザープロファイル、シフト、スケジュール、タイムクロッキングが必要です。

このテンプレートは、ユーザー、シフト、スケジュールをリアルタイム機能と所有権ルールで定義しているため、チームはスケジューリングのインタラクションを迅速に実装できます。

コアシフトスケジューリング機能

このハブのすべての技術カードは、ユーザー、シフト、スケジュールを含む同じシフトスケジューリングバックエンドスキーマを使用しています。

ユーザープロファイルと役割

ユーザークラスは、ユーザー名、メール、パスワード、および役割を保存します。

シフトの作成と管理

シフトクラスは、ユーザー、開始時間、終了時間、および場所をリンクします。

スケジュールとタイムクロック

Scheduleクラスはユーザー参照と関連するシフトを保存します。

シフト交換

承認ワークフローをサポートするシフト交換。

リアルタイム通知

スケジュールの変更やシフトの更新をユーザーに通知します。

Back4appでシフトスケジューリングバックエンドを構築する理由

Back4appはユーザー、シフト、スケジュールの基本機能を提供し、インフラではなく効率的なスケジューリングと時間管理に集中できるようにします。

  • ユーザーとシフトの管理: 役割フィールドを持つユーザークラスとスケジュール管理のためのシフトクラスは、効率的なローテーション操作をサポートします。
  • ジオフェンス付きのタイムクロッキング: ジオフェンスによる出退勤機能で正確な時間追跡を確保します。
  • リアルタイム + APIの柔軟性: スケジューリングの更新にはLive Queriesを使用し、すべてのクライアントでRESTとGraphQLを利用可能にします。

すべてのプラットフォームで1つのバックエンド契約を通じて、スケジューリング機能を迅速に構築し、反復します。

主な利点

構造を犠牲にせずに迅速に反復できるスケジューリングバックエンド。

迅速なスケジューリングの開始

バックエンドをゼロから設計するのではなく、完全なユーザー、シフト、スケジュールスキーマから始めます。

リアルタイムスケジューリングサポート

ユーザーエンゲージメントを向上させるためにリアルタイム通知と更新を活用します。

柔軟なシフト管理

柔軟性のためにシフトの交換と承認ワークフローでシフトを管理します。

スケーラブルな権限モデル

ACL/CLPを使用して、ユーザーのみが自分のスケジュールとシフトを編集し、交換リクエストを管理できるようにします。

正確な時間追跡

ジオフェンシングを使用して、正確な出勤と退勤の記録を確保します。

AIブートストラップワークフロー

1つの構造化されたプロンプトでバックエンドのスキャフォールディングと統合ガイダンスを迅速に生成します。

シフトスケジューリングアプリを立ち上げる準備はできましたか?

Back4app AIエージェントにシフトスケジューリングのバックエンドをスキャフォールディングさせ、1つのプロンプトからユーザー、シフト、スケジュールを生成します。

無料で開始 — 月に50回のAIエージェントプロンプト、クレジットカード不要

技術スタック

このシフトスケジューリングバックエンドテンプレートにすべて含まれています。

フロントエンド
13以上の技術
バックエンド
Back4app
データベース
MongoDB
認証
組み込みの認証 + セッション
API
RESTとGraphQL
リアルタイム
Live Queries

ER図

シフトスケジューリングバックエンドスキーマのエンティティリレーションシップモデル。

図のソースを表示
Mermaid
erDiagram
    User ||--o{ Schedule : "user"
    User ||--o{ SwapRequest : "fromUser"
    User ||--o{ SwapRequest : "toUser"
    User ||--o{ ClockIn : "user"
    Shift ||--o{ Schedule : "shift"
    Shift ||--o{ SwapRequest : "shift"
    Shift ||--o{ ClockIn : "shift"

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

    Shift {
        String objectId PK
        String title
        Date startTime
        Date endTime
        GeoPoint location
        Date createdAt
        Date updatedAt
    }

    Schedule {
        String objectId PK
        Pointer user FK
        Pointer shift FK
        String status
        Date createdAt
        Date updatedAt
    }

    SwapRequest {
        String objectId PK
        Pointer fromUser FK
        Pointer toUser FK
        Pointer shift FK
        String status
        Date createdAt
        Date updatedAt
    }

    ClockIn {
        String objectId PK
        Pointer user FK
        Pointer shift FK
        Date clockInTime
        GeoPoint location
        Date createdAt
        Date updatedAt
    }

統合フロー

認証、ユーザープロファイル、シフト、スケジュール、タイムクロッキングの典型的なランタイムフロー。

図のソースを表示
Mermaid
sequenceDiagram
  participant User
  participant App as Shift Scheduling App
  participant Back4app as Back4app Cloud

  User->>App: Login
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: View schedule
  App->>Back4app: GET /classes/Schedule
  Back4app-->>App: Schedule data

  User->>App: Request shift swap
  App->>Back4app: POST /classes/SwapRequest
  Back4app-->>App: SwapRequest objectId

  User->>App: Clock in
  App->>Back4app: POST /classes/ClockIn
  Back4app-->>App: ClockIn confirmation

データ辞書

シフトスケジューリングスキーマ内のすべてのクラスに対する完全なフィールドレベルのリファレンス。

フィールドタイプ説明必須
objectIdStringAuto-generated unique identifier自動
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole of the user (e.g., manager, employee)
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

Userの7フィールド

セキュリティと権限

ACLとCLP戦略がユーザー、シフト、およびスケジュールをどのように保護するか。

ユーザー所有のスケジュール管理

ユーザーのみが自分のスケジュールを更新または削除できます。他の人はユーザーのシフトを変更できません。

シフトとスケジュールの整合性

作成者のみが自分のシフトとスケジュールを作成または削除できます。検証にはCloud Codeを使用してください。

スコープ付き読み取りアクセス

シフトとスケジュールの読み取りを関連する当事者に制限します(例:ユーザーは自分のスケジュールと公開シフトを確認できます)。

スキーマ(JSON)

Back4appにコピーするか、実装の参考として使用できる生のJSONスキーマ定義。

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
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Shift",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "title": {
          "type": "String",
          "required": true
        },
        "startTime": {
          "type": "Date",
          "required": true
        },
        "endTime": {
          "type": "Date",
          "required": true
        },
        "location": {
          "type": "GeoPoint",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Schedule",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "user": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "shift": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Shift"
        },
        "status": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "SwapRequest",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "fromUser": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "toUser": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "shift": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Shift"
        },
        "status": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ClockIn",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "user": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "shift": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Shift"
        },
        "clockInTime": {
          "type": "Date",
          "required": true
        },
        "location": {
          "type": "GeoPoint",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

AIエージェントで構築

このテンプレートから本物のシフトスケジューリングアプリを生成するために、Back4app AIエージェントを使用します。フロントエンド、バックエンド、認証、ユーザー、シフト、スケジュール、タイムクロッキングのフローを含みます。

Back4app AIエージェント
構築の準備ができました
Back4appでこの正確なスキーマと動作を持つシフトスケジューリングアプリのバックエンドを作成します。

スキーマ:
1. ユーザー (Back4app 組み込みを使用): ユーザー名、メール、パスワード; objectId, createdAt, updatedAt (システム)。
2. シフト: ユーザー (ユーザーへのポインタ、必須), 開始時間 (日付、必須), 終了時間 (日付、必須), 場所 (GeoPoint、オプション); objectId, createdAt, updatedAt (システム)。
3. スケジュール: ユーザー (ユーザーへのポインタ、必須), シフト (シフトへのポインタの配列、必須); objectId, createdAt, updatedAt (システム)。

セキュリティ:
- ユーザーのみが自分のスケジュールを更新/削除できます。作成者のみが自分のシフトを作成/削除できます。バリデーションにはCloud Codeを使用します。

認証:
- サインアップ、ログイン、ログアウト。

動作:
- ユーザーのリスト、シフトの作成、シフトのスケジュール、出退勤、シフトの交換管理。

配信:
- スキーマ、ACL、CLPを備えたBack4appアプリ; ユーザープロファイル、シフト、スケジュール、タイムクロッキングのフロントエンド。

下のボタンを押して、このテンプレートのプロンプトが事前に入力された状態でエージェントを開きます。

これは技術サフィックスのない基本プロンプトです。生成されたフロントエンドスタックを後で適応させることができます。

数分でデプロイ月に50回の無料プロンプトクレジットカードは不要です

APIプレイグラウンド

シフトスケジュールスキーマに対してRESTおよびGraphQLエンドポイントを試してください。レスポンスはモックデータを使用し、Back4appアカウントは必要ありません。

プレイグラウンドを読み込んでいます…

このテンプレートと同じスキーマを使用します。

技術を選択

各カードを展開して統合手順、状態パターン、データモデルの例、オフラインノートを確認してください。

Flutter シフトスケジューリングバックエンド

React シフトスケジューリングバックエンド

React ネイティブ シフトスケジューリングバックエンド

Next.js シフトスケジューリングバックエンド

JavaScript シフトスケジューリングバックエンド

Android シフトスケジューリングバックエンド

iOS シフトスケジューリングバックエンド

Vue シフトスケジューリングバックエンド

Angular シフトスケジューリングバックエンド

GraphQL シフトスケジューリングバックエンド

REST API シフトスケジューリングバックエンド

PHP シフトスケジューリングバックエンド

.NET シフトスケジューリングバックエンド

すべての技術で得られるもの

すべてのスタックは同じシフトスケジューリングのバックエンドスキーマとAPI契約を使用します。

統一されたシフトデータ構造

シフトスケジューリング 向けの一貫したデータスキーマを使用して、シフトとユーザーを簡単に管理できます。

リアルタイムスケジューリング更新

シフトスケジューリング 管理を強化するために、スケジュールの変更に関する即時通知。

安全なユーザーアクセス制御

堅牢なアクセス権限で敏感な シフトスケジューリング 情報を保護します。

REST/GraphQL APIs for シフトスケジューリング

柔軟なAPIを利用して、任意のフロントエンドとシームレスに統合されます。

自動シフトリマインダー

シフトスケジューリング の今後のシフトのための自動通知でユーザーを知らせます。

シフトスケジューリング のために拡張可能なフレームワーク

特定の シフトスケジューリング ニーズに合うように機能を簡単にカスタマイズおよび拡張できます。

シフトスケジューリングフレームワーク比較

すべてのサポートされている技術におけるセットアップ速度、SDKスタイル、AIサポートを比較します。

フレームワークセットアップ時間シフトスケジューリングの利点SDKタイプAIサポート
約5分モバイルとウェブのためのシフトスケジューリング用の単一コードベース。Typed SDKフル
5分未満シフトスケジューリングのための素早いウェブダッシュボード。Typed SDKフル
~3〜7分シフトスケジューリングのためのクロスプラットフォームモバイルアプリ。Typed SDKフル
迅速な(5分)セットアップシフトスケジューリングのためのサーバーレンダリングされたウェブアプリ。Typed SDKフル
~3分シフトスケジューリングのための軽量なウェブインテグレーション。Typed SDKフル
約5分Android のシフトスケジューリング用ネイティブアプリ。Typed SDKフル
5分未満iOS のシフトスケジューリング用ネイティブアプリ。Typed SDKフル
~3〜7分React のシフトスケジューリング用のインタラクティブウェブUI。Typed SDKフル
迅速な(5分)セットアップシフトスケジューリングのためのエンタープライズウェブアプリ。Typed SDKフル
迅速な(2分)セットアップシフトスケジューリングのための柔軟な GraphQL API。GraphQL APIフル
~2分REST API のシフトスケジューリング用インテグレーション。REST APIフル
5分未満シフトスケジューリングのためのサーバーサイド PHP バックエンド。REST APIフル
~3〜7分.NET のシフトスケジューリング用バックエンド。Typed SDKフル

セットアップ時間は、このテンプレートスキーマを使用してプロジェクトをブートストラップし、最初のスケジュールクエリを実行するまでの予想時間を反映しています。

よくある質問

このテンプレートを使用してシフトスケジューリングバックエンドを構築する際の一般的な質問。

シフトスケジューリングバックエンドとは何ですか?
シフトスケジューリングテンプレートには何が含まれていますか?
なぜスケジューリングアプリにBack4appを使用するのですか?
Flutterでユーザーとシフトのクエリを実行するにはどうすればよいですか?
Next.js Server Actionsでスケジュールを作成するにはどうすればよいですか?
React Nativeはオフラインでユーザーとシフトをキャッシュできますか?
重複するシフトを防ぐにはどうすればよいですか?
Androidでユーザープロファイルとシフトを表示する最良の方法は何ですか?
タイムクロッキングのフローはエンドツーエンドでどのように機能しますか?

世界中の開発者に信頼されています

Back4app テンプレートを使用してスケジューリング製品をより早く出荷するチームに参加しましょう

G2 Users Love Us Badge

シフトスケジューリングアプリの構築を始めましょうか?

数分でスケジューリングプロジェクトを開始できます。クレジットカードは不要です。

技術を選択