Journal de ramonage de cheminée
Construire avec Agent IA
Backend de journal de ramoneur

Modèle de backend d'application de journal de ramoneur
Photos d'inspection, journaux de retrait de suie et suivi des certificats de sécurité

Un backend de journal de ramoneur prêt à la production sur Back4app avec photos d'inspection, journaux de retrait de suie et suivi des certificats de sécurité. Comprend le diagramme ER, le dictionnaire de données, le schéma JSON, le terrain de jeu API et un prompt Agent IA pour un réglage rapide.

Principaux points à retenir

Ce modèle vous offre un backend de journal de ramonage avec des travaux de ramonage, des photos d'inspection, des journaux d'élimination de suie et le suivi des certificats de sécurité afin que les coordinateurs de bureau et les équipes sur le terrain restent synchronisés.

  1. Suivi des travaux de ramonageModélisez chaque travail de ramonage avec adresse, date de service et affectation d'équipe de manière à ce que les coordinateurs puissent interroger.
  2. Capture de photo d'inspectionStockez les fichiers de photo d'inspection à côté du travail de ramonage concerné afin que la preuve avant-après reste attachée à la bonne visite.
  3. Journaux d'élimination de suieEnregistrez les détails du journal d'élimination de suie tels que le conduit nettoyé, le volume de suie et les notes pour chaque appel de service.

Qu'est-ce que le modèle d'application Journal de Ramoneur ?

Le routage, les pièces et les communications avec les clients semblent faciles uniquement lorsque les données des ramoneurs sont structurées plutôt que coincées dans des PDF et des conversations parallèles. Les détails ne sont pas optionnels. Le schéma se concentre sur SweepJob, InspectionPhoto, SootRemovalLog, et SafetyCert avec des requêtes en temps réel sur Back4app, donnant aux opérateurs de ramonage une source de vérité en laquelle toute l'organisation peut avoir confiance. Le schéma couvre SweepJob (propertyName, serviceDate, technician, status), InspectionPhoto (sweepJob, photoUrl, caption), SootRemovalLog (sweepJob, sootLevel, removedBy, notes), et SafetyCert (sweepJob, certNumber, issuedAt, expiresAt, status) avec l'authentification et le support des flux de travail intégrés. Connectez votre frontend préféré et commencez à enregistrer les travaux sur le terrain plus rapidement.

Idéal pour :

Les opérations de ramonageCapture de photos d'inspectionJournaux de retrait de suieSuivi des certificats de sécuritéEnvoi de service sur le terrainLancements MVP

Comment ce backend de ramoneur est organisé

Les meilleurs tableaux de bord de ramoneur sont ennuyeux car les entités sous-jacentes sont propres - pas parce que quelqu'un a massé une feuille de calcul à minuit.

Utilisez cet aperçu pour voir comment SweepJob, InspectionPhoto et SootRemovalLog s'assemblent avant de consacrer du temps d'ingénierie à un framework client spécifique.

Fonctionnalités principales du journal de ramonage

Chaque carte technologique dans ce hub utilise le même schéma backend de ramonage avec SweepJob, InspectionPhoto, SootRemovalLog et SafetyCert.

Planification de SweepJob

SweepJob stocke propertyName, serviceDate, technician et status.

Capture InspectionPhoto

InspectionPhoto lie photoUrl, légende et sweepJob.

Entrées SootRemovalLog

Le SootRemovalLog enregistre sootLevel, removedBy, notes et sweepJob.

Suivi de SafetyCert

SafetyCert stocke certNumber, issuedAt, expiresAt, status et sweepJob.

Pourquoi construire votre application de journal de ramoneur avec Back4app ?

Back4app vous fournit les primitives de travail, photo, journal et certificat afin que votre équipe puisse se concentrer sur la qualité de service plutôt que sur la plomberie.

  • SweepJob et SafetyCert dans un seul modèle: Utilisez la classe SweepJob pour les visites de service et SafetyCert pour le suivi des certificats au lieu de répartir le statut sur des feuilles de calcul.
  • Les fichiers InspectionPhoto restent liés aux visites: Stockez photoUrl sur InspectionPhoto et reliez-le au bon SweepJob afin que les images avant-après soient faciles à consulter.
  • Mises à jour en temps réel pour les itinéraires actifs: Utilisez Live Queries pour les changements de SweepJob et de SootRemovalLog tout en gardant REST et GraphQL disponibles pour chaque client.

Construisez et mettez à jour rapidement les workflows de ramonage avec un contrat backend unique pour mobile et web.

Avantages principaux

Un backend de ramonage qui aide les équipes de terrain et les coordinateurs à rester alignés.

Prise en charge des travaux plus rapide

Commencez à partir des classes SweepJob, InspectionPhoto, SootRemovalLog et SafetyCert au lieu de concevoir chaque table depuis zéro.

Preuve de service étayée par photo

Utilisez InspectionPhoto.photoUrl pour que chaque visite de cheminée ait des preuves claires attachées au bon travail.

Transfert plus fluide entre le bureau et le terrain

Les techniciens mettent à jour les notes du SootRemovalLog pendant que les coordinateurs examinent l'état des travaux et l'état des certificats depuis le même backend.

Visibilité des certificats

Suivez SafetyCert.expiresAt et l'état pour que les renouvellements ne soient pas perdus après la clôture de la visite.

Convivial pour l'équipage et les appareils

Servez des travaux de balayage, des photos et des journaux sur des tablettes, des téléphones et des tableaux de bord web via une seule API.

Configuration assistée par IA

Générez rapidement des structures backend et des conseils d'intégration avec une seule invite structurée.

Prêt à lancer votre application de journal de ramonage de cheminée ?

Laissez l'agent AI Back4app créer votre backend d'agent de ramonage et générer des photos d'inspection, un journal de nettoyage de suie et des flux de certificats de sécurité à partir d'un seul prompt.

Gratuit pour commencer — 50 prompts d'agent AI/mois, aucune carte de crédit requise

Pile technique

Tout inclus dans ce modèle d'application de journal de ramonage.

Frontend
13+ technologies
Backend
__MARQUE0__
Base de données
__MARQUE0__
Authentification
Authentification intégrée + sessions
API
REST et __MARQUE0__
Temps réel
Live Queries

Diagramme ER

Modèle de relation d'entité pour le schéma backend du journal des ramoneurs.

Voir la source du diagramme
Mermaid
erDiagram
    SweepUser ||--o{ Property : "assignedCoordinator"
    SweepUser ||--o{ Inspection : "inspector"
    SweepUser ||--o{ InspectionPhoto : "takenBy"
    SweepUser ||--o{ SootRemovalLog : "technician"
    SweepUser ||--o{ SafetyCertificate : "issuedBy"

    Property ||--o{ Inspection : "property"
    Inspection ||--o{ InspectionPhoto : "inspection"
    Inspection ||--o{ SootRemovalLog : "inspection"
    Inspection ||--o{ SafetyCertificate : "inspection"

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

    Property {
        String objectId PK
        String propertyName
        String addressLine
        String contactName
        String contactPhone
        String assignedCoordinatorId FK
        Date createdAt
        Date updatedAt
    }

    Inspection {
        String objectId PK
        String propertyId FK
        String inspectorId FK
        Date inspectionDate
        String chimneyCondition
        String inspectionNotes
        String status
        Date createdAt
        Date updatedAt
    }

    InspectionPhoto {
        String objectId PK
        String inspectionId FK
        String photoUrl
        String caption
        String takenById FK
        Date createdAt
        Date updatedAt
    }

    SootRemovalLog {
        String objectId PK
        String inspectionId FK
        String technicianId FK
        String sootLevel
        String removalMethod
        Number amountRemoved
        String workNotes
        Date createdAt
        Date updatedAt
    }

    SafetyCertificate {
        String objectId PK
        String inspectionId FK
        String certificateNumber
        String issuedById FK
        Date issueDate
        Date expiryDate
        String certificateStatus
        Date createdAt
        Date updatedAt
    }

Flux d'intégration

Flux d'exécution typique pour la connexion, la liste des travaux de ramonage, le téléchargement de photos d'inspection, l'enregistrement de l'élimination de suie et l'émission de certificats de sécurité.

Voir la source du diagramme
Mermaid
sequenceDiagram
  participant User
  participant App as Chimney Sweep Log App
  participant Back4app as Back4app Cloud

  User->>App: Sign in as manager or technician
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: Load property list
  App->>Back4app: GET /classes/Property?include=assignedCoordinator
  Back4app-->>App: Properties with coordinator pointers

  User->>App: Open an inspection
  App->>Back4app: GET /classes/Inspection?include=property,inspector
  Back4app-->>App: Inspection rows and status values

  User->>App: Add inspection photos and soot removal log
  App->>Back4app: POST /classes/InspectionPhoto and POST /classes/SootRemovalLog
  Back4app-->>App: Saved photo and removal log objects

  User->>App: Issue a safety certificate
  App->>Back4app: POST /classes/SafetyCertificate
  Back4app-->>App: Certificate number and expiry date

Dictionnaire de données

Référence complète au niveau des champs pour chaque classe dans le schéma du journal de ramonage.

ChampTypeDescriptionRequis
objectIdStringAuto-generated unique identifierAuto
usernameStringLogin name for a coordinator, manager, or field user
emailStringEmail address for notifications and access
passwordStringHashed password (write-only)
fullNameStringDisplay name for the sweep user
roleStringRole in the chimney sweep workflow (e.g. manager, coordinator, technician)
createdAtDateAuto-generated creation timestampAuto
updatedAtDateAuto-generated last-update timestampAuto

8 champs dans SweepUser

Sécurité et autorisations

Comment la stratégie ACL et CLP protège les travaux de balayage, les photos d'inspection, les journaux de suie et les certificats de sécurité.

Records de balayage appartenant au technicien

Seul le technicien ou le coordinateur assigné doit créer, mettre à jour ou clôturer le SweepJob qu'il contrôle.

Intégrité des photos et des journaux

Utilisez Cloud Code pour vous assurer que les entrées InspectionPhoto et SootRemovalLog pointent vers un vrai SweepJob avant qu'elles ne soient enregistrées.

Contrôle d'accès aux certificats

Restreindre les lectures et les modifications de SafetyCert au personnel approuvé afin que les détails d'émission et d'expiration restent précis.

Schéma (JSON)

Définition de schéma JSON brut prête à être copiée dans Back4app ou utilisée comme référence d'implémentation.

JSON
{
  "classes": [
    {
      "className": "SweepUser",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "fullName": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Property",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "propertyName": {
          "type": "String",
          "required": true
        },
        "addressLine": {
          "type": "String",
          "required": true
        },
        "contactName": {
          "type": "String",
          "required": true
        },
        "contactPhone": {
          "type": "String",
          "required": true
        },
        "assignedCoordinator": {
          "type": "Pointer",
          "required": true,
          "targetClass": "SweepUser"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Inspection",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "property": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Property"
        },
        "inspector": {
          "type": "Pointer",
          "required": true,
          "targetClass": "SweepUser"
        },
        "inspectionDate": {
          "type": "Date",
          "required": true
        },
        "chimneyCondition": {
          "type": "String",
          "required": true
        },
        "inspectionNotes": {
          "type": "String",
          "required": false
        },
        "status": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "InspectionPhoto",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "inspection": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Inspection"
        },
        "photoUrl": {
          "type": "String",
          "required": true
        },
        "caption": {
          "type": "String",
          "required": false
        },
        "takenBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "SweepUser"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "SootRemovalLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "inspection": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Inspection"
        },
        "technician": {
          "type": "Pointer",
          "required": true,
          "targetClass": "SweepUser"
        },
        "sootLevel": {
          "type": "String",
          "required": true
        },
        "removalMethod": {
          "type": "String",
          "required": true
        },
        "amountRemoved": {
          "type": "Number",
          "required": true
        },
        "workNotes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "SafetyCertificate",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "inspection": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Inspection"
        },
        "certificateNumber": {
          "type": "String",
          "required": true
        },
        "issuedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "SweepUser"
        },
        "issueDate": {
          "type": "Date",
          "required": true
        },
        "expiryDate": {
          "type": "Date",
          "required": true
        },
        "certificateStatus": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

Construire avec l'agent AI

Utilisez l'agent AI Back4app pour générer une application de carnet de ramonage réel à partir de ce modèle, y compris le frontend, le backend, l'authentification et les flux de travail des emplois de ramonage, photo, carnet et certificat.

Agent AI Back4app
Prêt à construire
Créez un backend d'application de carnet de ramonage sur Back4app avec ce schéma et ce comportement exacts.

Schéma:
1. Utilisateur (utilisez le built-in de Back4app): nom d'utilisateur, e-mail, mot de passe; objectId, createdAt, updatedAt (système).
2. SweepJob: propertyName (String, requis), serviceDate (Date, requis), technician (Pointer to User, requis), status (String, requis), notes (String); objectId, createdAt, updatedAt (système).
3. InspectionPhoto: sweepJob (Pointer to SweepJob, requis), photoUrl (String, requis), caption (String), takenAt (Date, requis); objectId, createdAt, updatedAt (système).
4. SootRemovalLog: sweepJob (Pointer to SweepJob, requis), sootLevel (String, requis), removedBy (Pointer to User, requis), notes (String), cleanedAt (Date, requis); objectId, createdAt, updatedAt (système).
5. SafetyCert: sweepJob (Pointer to SweepJob, requis), certNumber (String, requis), issuedAt (Date, requis), expiresAt (Date, requis), status (String, requis); objectId, createdAt, updatedAt (système).

Sécurité:
- Seul le technicien ou le coordinateur affecté doit créer, mettre à jour ou clore le SweepJob qu'il contrôle. Utilisez le Cloud Code pour vérifier que les entrées InspectionPhoto et SootRemovalLog pointent vers un véritable SweepJob. Restreindre l'accès à SafetyCert au personnel approuvé.

Auth:
- Inscription, connexion, déconnexion.

Comportement:
- Lister les emplois de ramonage, télécharger des photos d'inspection, enregistrer des journaux de retrait de suie et émettre des certificats de sécurité.

Livraison:
- Application Back4app avec schéma, ACLs, CLPs; frontend pour les emplois de ramonage, les photos d'inspection, les journaux de suie et le suivi des certificats de sécurité.

Appuyez sur le bouton ci-dessous pour ouvrir l'agent avec cette invite de modèle pré-remplie.

Ceci est l'invite de base sans suffixe technologique. Vous pouvez adapter la pile frontend générée par la suite.

Déployez en quelques minutes50 requêtes gratuites / moisAucune carte de crédit requise

Playground API

Essayez les points de terminaison REST et GraphQL contre le schéma de ramoneur. Les réponses utilisent des données fictives et ne nécessitent pas de compte Back4app.

Chargement du terrain de jeu…

Utilise le même schéma que ce modèle.

Choisissez votre technologie

Développez chaque carte pour voir comment intégrer SweepJob, InspectionPhoto et SootRemovalLog avec votre pile choisie.

Flutter Journal de ramonage Backend

React Journal de ramonage Backend

React Natif Journal de ramonage Backend

Next.js Journal de ramonage Backend

JavaScript Journal de ramonage Backend

Android Journal de ramonage Backend

iOS Journal de ramonage Backend

Vue Journal de ramonage Backend

Angular Journal de ramonage Backend

GraphQL Journal de ramonage Backend

REST API Journal de ramonage Backend

PHP Journal de ramonage Backend

.NET Journal de ramonage Backend

Ce que vous obtenez avec chaque technologie

Chaque pile utilise le même schéma backend et les contrats API pour les ramoneurs.

Données de travail de ramoneur unifiées

Gérez SweepJob, InspectionPhoto, SootRemovalLog et SafetyCert avec un modèle cohérent.

Preuve de service soutenue par des photos

Gardez les photos d'inspection attachées au bon emploi de ramonage pour une révision ultérieure.

Suivi des certificats de sécurité pour les équipes

Surveillez les dates d'émission et d'expiration afin que l'état des certificats soit visible aux coordinateurs.

Flux de travail des techniciens clairs

Attribuez des emplois, enregistrez l'élimination de la suie et mettez à jour l'état des emplois avec un backend partagé.

Comparaison du cadre de nettoyage de cheminées

Comparer la vitesse de configuration, le style SDK et le support AI entre toutes les technologies prises en charge.

FrameworkTemps de configurationAvantage du ramoneurType de SDKSupport AI
Environ 5 minCode source unique pour les emplois de ramonage sur mobile et web.SDK tapéComplet
Moins de 5 minutesTableau de bord web rapide pour les coordinateurs de ramonage.SDK typéComplet
~3–7 minApplication mobile multiplateforme pour les techniciens de terrain.SDK typéComplet
Configuration rapide (5 min)Application web rendue côté serveur pour les opérations de ramonage.SDK typéComplet
~3–5 minIntégration web légère pour les journaux de balayage.SDK TapéComplet
Environ 5 minApplication native Android pour les photos d'inspection de terrain.SDK TapéComplet
Moins de 5 minutesApplication iPhone native pour les notes de service de cheminée.SDK TapéComplet
~3–7 minReact interface web pour les journaux de ramonage.SDK typéComplet
Configuration rapide (5 min)Tableau de bord des opérations pour le suivi des dispatchs et des certificats.SDK typéComplet
Moins de 2 minAPI GraphQL flexible pour les vues de travaux de ramonage imbriquées.GraphQL APIComplet
Configuration rapide (2 min)intégration REST API pour les journaux de terrain et les téléchargements.REST APIComplet
~3 minBackend PHP côté serveur pour les outils de journals de ramonage.REST APIComplet
~3–7 minBackend .NET pour les dossiers de service de cheminée.SDK TypéComplet

Le temps de configuration reflète la durée attendue depuis le démarrage du projet jusqu'à la première requête SweepJob ou InspectionPhoto utilisant ce schéma de modèle.

Questions Fréquemment Posées

Questions courantes sur la création d'une application backend de journalisation des ramonages avec ce modèle.

Où les équipes de ramonage perdent-elles le plus de temps entre le bureau et le terrain ?
Comment les ramoneurs devraient-ils modéliser les assignments, le statut et l'utilisation des pièces sans compliquer le schéma ?
Quelle est la difficulté d'adapter le schéma lorsque les offres de ramonage ou les forfaits de service changent ?
Comment exécuter des requêtes pour les travaux de nettoyage dans Flutter ?
Comment gérer l'accès des techniciens avec Next.js Server Actions ?
React Native peut-il mettre en cache les journaux de nettoyage de cheminées hors ligne ?
Comment puis-je empêcher les modifications non autorisées des certificats ?
Quelle est la meilleure façon d'afficher le statut des travaux de nettoyage sur Android ?
Comment fonctionne le flux de photo d'inspection de bout en bout ?

Fiables par des développeurs du monde entier

Rejoignez des équipes expédiant des produits de journaux de ramonage plus rapidement avec les modèles Back4app

G2 Users Love Us Badge

Prêt à construire votre application de journal de ramonage ?

Commencez votre projet de ramonage en quelques minutes. Pas de carte de crédit requise.

Choisissez la technologie