Marketplace de Trabalho de Mudança
Construa com Agente de IA
Backend do Marketplace de Mão de Obra para Mudança

Modelo de Backend do Marketplace de Mão de Obra para Mudança
Busca de Equipe, Registro de Reserva, Atribuição e Revisão

Um backend de marketplace de mão de obra para mudança pronto para produção na Back4app com busca de CrewListing, registro de BookingRequest, logs de CrewAssignment e registros de CrewReview. Inclui diagrama ER, dicionário de dados, esquema JSON, sandbox de API e um prompt de Agente de IA para bootstrap rápido.

Principais Conclusões

Este modelo oferece um backend de marketplace de trabalho de mudança com busca de CrewListing, captação de BookingRequest e rastreamento de CrewAssignment para que os operadores possam combinar a demanda com as equipes disponíveis mais rapidamente.

  1. Busca de CrewListingModele CrewListing com hourlyRate, crewSize, heavyLiftingCapability, serviceArea, equipmentNotes e availabilityStatus para que os compradores possam comparar as equipes antes de reservar.
  2. Captação de BookingRequestArmazene BookingRequest com jobTitle, moveDate, startTime, hoursNeeded, pickupZip, dropoffZip e heavyItems para capturar os detalhes da mudança.
  3. Registros de CrewAssignmentMantenha CrewAssignment ligado a bookingRequest, crewListing, assignedBy, crewSizeLogged e arrivalStatus para cada trabalho dispatchado.
  4. Histórico do CrewReviewUse o CrewReview com avaliação, comentário e safetyFlag para rastrear resultados após registros de BookingRequest concluídos.

Entendendo o Backend do Marketplace de Mão de Obra de Mudança

No marketplace de mão de obra de mudança, a verdade operacional é o cronograma — se o calendário estiver errado, cada promessa subsequente também estará errada. Confiabilidade é um recurso, não uma nota de rodapé. Modele as entidades principais na Back4app para dar às equipes do marketplace de mão de obra de mudança um backend que pode crescer de um único pátio para operações em múltiplos locais. O esquema abrange Usuário, CrewListing, BookingRequest, CrewAssignment e CrewReview com recursos de autenticação e fluxo de trabalho do marketplace incorporados. Conecte seu frontend preferido e envie mais rápido.

Melhor para:

Marketplaces de mão de obra de mudançaPlataformas de correspondência de movidores por horaAplicativos de reserva de equipe para levantamento pesadoPainéis de controle para operadores de mudança localLançamentos MVPEquipes selecionando BaaS para marketplaces de mão de obra

Visão geral do backend do marketplace de mão de obra para mudanças

Os clientes não se importam com suas ferramentas internas; eles se importam se as promessas do marketplace de mão de obra para mudanças aparecem no horário, com os ativos certos e a documentação correta.

Este resumo orienta equipes sobre contas de usuário e funções, perfis do marketplace de listagem de equipes e a coleta de solicitações de reserva antes que alguém mergulhe em diagramas ER ou exportações JSON.

Recursos principais do mercado de mão de obra de mudança

Cada cartão de tecnologia neste hub usa o mesmo esquema de back-end de mão de obra de movimentação com User, CrewListing, BookingRequest, CrewAssignment e CrewReview.

Contas de usuário e funções

O usuário armazena nome de usuário, e-mail, função, nome de exibição, número de telefone e área de serviço.

Perfis de mercado do CrewListing

O CrewListing armazena título, taxa horária, tamanho da equipe, capacidade de levantamento pesado, área de serviço e status de disponibilidade.

Recepção de BookingRequest

O BookingRequest captura título do trabalho, data de mudança, hora de início, horas necessárias, CEP de retirada, CEP de entrega e itens pesados.

Rastreamento de Atribuição de Equipe

A Atribuição de Equipe vincula bookingRequest, crewListing, assignedBy, crewSizeLogged e arrivalStatus.

Feedback de Avaliação de Equipe

A Avaliação de Equipe armazena bookingRequest, reviewer, crewListing, rating, comment e safetyFlag.

Por que construir seu backend de marketplace de mão de obra para mudanças com Back4app?

Back4app oferece a você primitivas de Usuário, BookingRequest e CrewListing para que sua equipe possa se concentrar em combinar equipes e trabalhos de mudança em vez de conectar infraestrutura.

  • Gestão de listagens e reservas da equipe: As classes User, CrewListing e BookingRequest mantêm identidade de login, serviceArea, moveDate, pickupZip e dropoffZip em um só lugar.
  • Controle de fluxo de atribuição e revisão: Os registros de CrewAssignment e CrewReview tornam crewSizeLogged, arrivalStatus, rating e safetyFlag visíveis após o despacho.
  • Flexibilidade em tempo real + API: Use Live Queries para atualizações de BookingRequest enquanto mantém REST e GraphQL disponíveis para painéis de despacho.

Construa e itere rapidamente em recursos de mão de obra de mudança com um único contrato de backend em todas as plataformas.

Benefícios Principais

Um backend de trabalho de mudança que ajuda você a passar de lead para atribuição de equipe sem reescrever a camada de dados.

Recebimento de reservas mais rápido

Comece com BookingRequest com moveDate, startTime, hoursNeeded, pickupZip e dropoffZip em vez de inventar um novo formulário de mudança.

Verificações claras de capacidade da equipe

Use CrewListing com heavyLiftingCapability, crewSize e equipmentNotes para manter transporte de escadas, carrinhos e cintas visíveis antes do despacho.

Atribuição de equipe que você pode auditar

CrewAssignment mantém bookingRequest, crewListing, assignedBy, crewSizeLogged e arrivalStatus visíveis quando um trabalho é confirmado.

Acesso limitado para operadores e trabalhadores

Use ACL/CLP para que apenas os usuários certos possam editar as linhas de User, CrewListing, BookingRequest e CrewAssignment.

Histórico de trabalho e revisão

Armazenar as alterações de status de BookingRequest, timestamps de CrewAssignment e classificações de CrewReview sem quebrar o esquema.

Fluxo de trabalho de bootstrap de IA

Gere rapidamente a estrutura de backend e a orientação de integração com um prompt estruturado.

Pronto para lançar seu marketplace de mão de obra de mudança?

Deixe o Back4app Agente de IA estruturar seu backend de mão de obra de mudança e gerar fluxos de CrewListing, BookingRequest, CrewAssignment e CrewReview a partir de um prompt.

Grátis para começar — 50 prompts de Agente de IA/mês, sem necessidade de cartão de crédito

Tecnologia de Mão de Obra para Mudanças

Tudo incluído neste modelo de backend de mercado de mão de obra para mudanças.

Frontend
13+ tecnologias
Backend
Back4app
Banco de dados
MongoDB
Autenticação
Autenticação integrada + sessões
API
REST e GraphQL
Em tempo real
Live Queries

Diagrama de Classes do Marketplace

Modelo de relacionamento de entidades para o esquema de backend do marketplace de mão de obra em mudança.

Ver origem do diagrama
Mermaid
erDiagram
    User ||--o{ CrewListing : "owner"
    User ||--o{ BookingRequest : "buyer"
    User ||--o{ CrewAssignment : "assignedBy"
    User ||--o{ CrewReview : "reviewer"
    CrewListing ||--o{ BookingRequest : "preferredCrew"
    CrewListing ||--o{ CrewAssignment : "crewListing"
    CrewListing ||--o{ CrewReview : "crewListing"
    BookingRequest ||--o{ CrewAssignment : "bookingRequest"
    BookingRequest ||--o{ CrewReview : "bookingRequest"

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

    CrewListing {
        String objectId PK
        String title
        Number hourlyRate
        Number crewSize
        Boolean heavyLiftingCapability
        String serviceArea
        String equipmentNotes
        String availabilityStatus
        String ownerId FK
        Date createdAt
        Date updatedAt
    }

    BookingRequest {
        String objectId PK
        String jobTitle
        Date moveDate
        String startTime
        Number hoursNeeded
        String pickupZip
        String dropoffZip
        Boolean heavyItems
        String status
        String buyerId FK
        String preferredCrewId FK
        Date createdAt
        Date updatedAt
    }

    CrewAssignment {
        String objectId PK
        String bookingRequestId FK
        String crewListingId FK
        String assignedById FK
        Number crewSizeLogged
        String arrivalStatus
        Date startedAt
        Date finishedAt
        Date createdAt
        Date updatedAt
    }

    CrewReview {
        String objectId PK
        String bookingRequestId FK
        String reviewerId FK
        String crewListingId FK
        Number rating
        String comment
        Boolean safetyFlag
        Date createdAt
        Date updatedAt
    }

Sequência do Fluxo de Reserva

Fluxo de execução típico para login, busca de Listagem de Equipe, criação de Solicitação de Reserva, registro de Atribuição de Equipe e atualizações de Avaliação de Equipe.

Ver origem do diagrama
Mermaid
sequenceDiagram
  participant Buyer
  participant App as Moving Labor Marketplace App
  participant Back4app as Back4app Cloud

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

  Buyer->>App: Search crew listings by hourlyRate, crewSize, and heavyLiftingCapability
  App->>Back4app: GET /classes/CrewListing?where=...
  Back4app-->>App: Matching CrewListing rows

  Buyer->>App: Submit BookingRequest for a moveDate and hoursNeeded
  App->>Back4app: POST /classes/BookingRequest
  Back4app-->>App: BookingRequest objectId

  Operator->>App: Assign CrewAssignment and log crewSizeLogged
  App->>Back4app: POST /classes/CrewAssignment
  Back4app-->>App: Assignment saved

  App->>Back4app: Live query updates for BookingRequest status and CrewReview
  Back4app-->>App: Updated move workflow and ratings

Dicionário de Campos

Referência completa a nível de campo para cada classe no esquema do mercado de trabalho móvel.

CampoTipoDescriçãoObrigatório
objectIdStringAuto-generated unique identifierAutomático
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole of the user (buyer, seller, operator)
displayNameStringPublic name shown in the marketplace
phoneNumberStringContact phone number
serviceAreaStringPrimary metro area or region served
createdAtDateAuto-generated creation timestampAutomático
updatedAtDateAuto-generated last-update timestampAutomático

10 campos em User

Regras de Acesso para Usuários, Equipes e Reservas

Como a estratégia ACL e CLP protege Usuário, Listagem de Equipes, Solicitação de Reserva, Atribuição de Equipe e Avaliação de Equipe.

Controles do perfil do usuário

Apenas o proprietário ou operador da conta pode atualizar nome de usuário, função, nome de exibição, número de telefone e área de serviço.

Integridade de reservas

Apenas o comprador ou o despachante pode criar, editar ou cancelar linhas de BookingRequest e CrewAssignment.

Visibilidade de revisão restrita

Restringir as leituras de CrewReview aos participantes correspondentes do BookingRequest e operadores aprovados.

Esquema JSON

Definição de esquema JSON bruta pronta para copiar para Back4app ou usar como referência de implementação.

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": true
        },
        "phoneNumber": {
          "type": "String",
          "required": false
        },
        "serviceArea": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "CrewListing",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "title": {
          "type": "String",
          "required": true
        },
        "hourlyRate": {
          "type": "Number",
          "required": true
        },
        "crewSize": {
          "type": "Number",
          "required": true
        },
        "heavyLiftingCapability": {
          "type": "Boolean",
          "required": true
        },
        "serviceArea": {
          "type": "String",
          "required": true
        },
        "equipmentNotes": {
          "type": "String",
          "required": false
        },
        "availabilityStatus": {
          "type": "String",
          "required": true
        },
        "owner": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "BookingRequest",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "jobTitle": {
          "type": "String",
          "required": true
        },
        "moveDate": {
          "type": "Date",
          "required": true
        },
        "startTime": {
          "type": "String",
          "required": true
        },
        "hoursNeeded": {
          "type": "Number",
          "required": true
        },
        "pickupZip": {
          "type": "String",
          "required": true
        },
        "dropoffZip": {
          "type": "String",
          "required": true
        },
        "heavyItems": {
          "type": "Boolean",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "buyer": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "preferredCrew": {
          "type": "Pointer",
          "required": false,
          "targetClass": "CrewListing"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "CrewAssignment",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "bookingRequest": {
          "type": "Pointer",
          "required": true,
          "targetClass": "BookingRequest"
        },
        "crewListing": {
          "type": "Pointer",
          "required": true,
          "targetClass": "CrewListing"
        },
        "assignedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "crewSizeLogged": {
          "type": "Number",
          "required": true
        },
        "arrivalStatus": {
          "type": "String",
          "required": true
        },
        "startedAt": {
          "type": "Date",
          "required": false
        },
        "finishedAt": {
          "type": "Date",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "CrewReview",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "bookingRequest": {
          "type": "Pointer",
          "required": true,
          "targetClass": "BookingRequest"
        },
        "reviewer": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "crewListing": {
          "type": "Pointer",
          "required": true,
          "targetClass": "CrewListing"
        },
        "rating": {
          "type": "Number",
          "required": true
        },
        "comment": {
          "type": "String",
          "required": false
        },
        "safetyFlag": {
          "type": "Boolean",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

Construir com Agente de IA

Use o Agente de IA Back4app para gerar um aplicativo real de mercado de trabalho móvel a partir deste template, incluindo frontend, backend, autenticação, e fluxos de CrewListing, BookingRequest, CrewAssignment e CrewReview.

Agente de IA Back4app
Pronto para construir
Crie um aplicativo de mercado seguro para mão de obra móvel no Back4app com este esquema e comportamento exatos.

Esquema:
1. Usuário: nomeDeUsuário (String, obrigatório), email (String, obrigatório), senha (String, obrigatório), papel (String, obrigatório), nomeExibido (String, obrigatório), númeroDeTelefone (String, opcional), áreaDeServiço (String, opcional); objectId, criadoEm, atualizadoEm (sistema).
2. ListaDeEquipes: título (String, obrigatório), taxaHorária (Número, obrigatório), tamanhoDaEquipe (Número, obrigatório), capacidadeDeLevantamentoPesado (Booleano, obrigatório), áreaDeServiço (String, obrigatório), notasDeEquipamento (String, opcional), statusDeDisponibilidade (String, obrigatório), proprietário (Ponteiro para Usuário, obrigatório); objectId, criadoEm, atualizadoEm (sistema).
3. SolicitaçãoDeReserva: títuloDoTrabalho (String, obrigatório), dataDeMudança (Data, obrigatório), horaDeInício (String, obrigatório), horasNecessárias (Número, obrigatório), cepDeRetirada (String, obrigatório), cepDeEntrega (String, obrigatório), itensPesados (Booleano, obrigatório), status (String, obrigatório), comprador (Ponteiro para Usuário, obrigatório), equipePreferida (Ponteiro para ListaDeEquipes, opcional); objectId, criadoEm, atualizadoEm (sistema).
4. AtribuiçãoDeEquipe: solicitaçãoDeReserva (Ponteiro para SolicitaçãoDeReserva, obrigatório), listaDeEquipes (Ponteiro para ListaDeEquipes, obrigatório), atribuídoPor (Ponteiro para Usuário, obrigatório), tamanhoDaEquipeRegistrado (Número, obrigatório), statusDeChegada (String, obrigatório), iniciadoEm (Data, opcional), finalizadoEm (Data, opcional); objectId, criadoEm, atualizadoEm (sistema).
5. RevisãoDeEquipe: solicitaçãoDeReserva (Ponteiro para SolicitaçãoDeReserva, obrigatório), revisor (Ponteiro para Usuário, obrigatório), listaDeEquipes (Ponteiro para ListaDeEquipes, obrigatório), avaliação (Número, obrigatório), comentário (String, opcional), sinalDeSegurança (Booleano, opcional); objectId, criadoEm, atualizadoEm (sistema).

Segurança:
- Compradores podem criar registros de SolicitaçõesDeReserva e ler suas próprias reservas.
- Vendedores podem gerenciar seus próprios registros de ListaDeEquipes.
- Operadores podem criar registros de AtribuiçõesDeEquipe e atualizar o status de SolicitaçõesDeReserva.
- Registros de RevisãoDeEquipe devem ser criados somente após uma reserva concluída.

Comportamento:
- Pesquisar equipes por taxaHorária, tamanhoDaEquipe, capacidadeDeLevantamentoPesado e áreaDeServiço.
- Criar solicitações de reserva com dataDeMudança e horasNecessárias.
- Atribuir equipes e registrar tamanhoDaEquipeRegistrado.
- Coletar avaliações pós-trabalho e feedback de segurança.

Entregar:
- aplicativo Back4app com esquema, ACLs, CLPs e fluxos de UI para compradores, vendedores e operadores, incluindo busca por ListaDeEquipes, intake de SolicitaçõesDeReserva, rastreamento de AtribuiçãoDeEquipe e captura de RevisãoDeEquipe.

Pressione o botão abaixo para abrir o Agente com este prompt de template pré-preenchido.

Este é o prompt base sem um sufixo de tecnologia. Você pode adaptar a pilha frontend gerada depois.

Implantar em minutos50 prompts gratuitos / mêsNenhum cartão de crédito necessário

API Sandbox

Experimente os endpoints REST e GraphQL contra o esquema do mercado de trabalho dinâmico. As respostas usam dados fictícios e não exigem uma conta Back4app.

Carregando playground…

Usa o mesmo esquema que este modelo.

Escolha sua pilha

Expanda cada cartão para ver como integrar CrewListing, BookingRequest e CrewAssignment com sua pilha escolhida.

Flutter Mercado de Mão de Obra

React Mercado de Mão de Obra

React Nativo Mercado de Mão de Obra

Next.js Mercado de Mão de Obra

JavaScript Mercado de Mão de Obra

Android Mercado de Mão de Obra

iOS Mercado de Mão de Obra

Vue Mercado de Mão de Obra

Angular Mercado de Mão de Obra

GraphQL Mercado de Mão de Obra

REST API Mercado de Mão de Obra

PHP Mercado de Mão de Obra

.NET Mercado de Mão de Obra

O que você recebe com cada tecnologia

Cada pilha usa o mesmo esquema de backend de mão de obra móvel e contratos de API.

Estrutura unificada de dados de mão de obra móvel

Gerencie facilmente User, CrewListing, BookingRequest, CrewAssignment e CrewReview com um esquema consistente.

Correspondência de tripulação por taxa e tamanho

Compare as linhas de CrewListing e atribua o tamanho de equipe correto para cada solicitação de mudança.

Rastreamento da capacidade de levantamento pesado

Mantenha a capacidade de levantamento pesado e notas de equipamentos anexadas a cada listagem de equipe.

Fluxos de trabalho do operador personalizáveis

Defina níveis de acesso e permissões adaptados a compradores, vendedores e operadores.

Comparação de Estruturas do Mercado de Mão de Obra

Compare a velocidade de configuração, o estilo do SDK e o suporte a IA em todas as tecnologias suportadas.

EstruturaTempo de ConfiguraçãoBenefício do Mercado de Mão de ObraTipo de SDKSuporte de IA
Cerca de 5 minCódigo único para despachar movimentadores em mobile e web.SDK TipadoCompleto
Menos de 5 minutosPainel web rápido para listagens de equipes e reservas.SDK TipadoCompleto
~3–7 minAplicativo móvel multiplataforma para despacho de movimentação.SDK DigitadoCompleto
Configuração rápida (5 min)Aplicativo web renderizado no servidor para operações de mão de obra de mudança.SDK DigitadoCompleto
~3–5 minIntegração web leve para correspondência de mão de obra.SDK DigitadoCompleto
Cerca de 5 minAplicativo nativo Android para transportadores e despachantes.SDK DigitadoCompleto
Menos de 5 minutosAplicativo nativo iOS para coordenação de mudanças.SDK DigitadoCompleto
~3–7 minInterface web Reactive para operações do mercado de trabalho.SDK DigitadoCompleto
Configuração rápida (5 min)Aplicativo web empresarial para fluxos de trabalho de despachante.SDK DigitadoCompleto
Menos de 2 minAPI flexível GraphQL para correspondência de mão de obra.GraphQL APICompleto
Configuração rápida (2 min)Integração REST API para sistemas de movimentação de mão de obra.REST APICompleto
~3 minBackend PHP do lado do servidor para despacho de mão de obra.REST APICompleto
~3–7 min.NET backend para operações de mão de obra de mudanças.SDK DigitadoCompleto

O tempo de configuração reflete a duração esperada desde a inicialização do projeto até a primeira consulta de CrewListing ou BookingRequest usando este esquema de template.

Centro de Ajuda

Perguntas comuns sobre como construir um backend de mercado de mão-de-obra para mudança com este template.

O que os operadores de mercado de trabalho de mudança devem instrumentar primeiro ao expandir para um segundo local?
Como o mercado de trabalho de mudança deve modelar reservas, conflitos e depósitos em um gráfico coerente?
Como é a migração quando a complexidade do catálogo do mercado de trabalho de mudança salta de estação para estação?
Como faço para executar consultas para equipes e reservas com Flutter?
Como gerencio o acesso ao mercado de trabalho de mudança com Next.js Server Actions?
React pode armazenar em cache listas de equipe e solicitações de mudança offline?
Como posso prevenir alterações não autorizadas nas atribuições da equipe?
Qual é a melhor maneira de mostrar equipes e atribuições na Android?
Como funciona o fluxo de trabalho da mão de obra de mudança do começo ao fim?

Confiável por desenvolvedores em todo o mundo

Junte-se a equipes que estão lançando produtos de mercado de mão de obra de mudanças mais rápido com os templates do Back4app

G2 Users Love Us Badge

Pronto para construir seu mercado de mão de obra de mudanças?

Inicie seu projeto de mão de obra de mudanças em minutos. Nenhum cartão de crédito necessário.

Escolha a Tecnologia