Mercato Attrezzature da Laboratorio
Costruisci con Agente AI
Backend del Marketplace di attrezzature da laboratorio

Marketplace di attrezzature da laboratorio con ResearchInstitution, EquipmentListing e VerificationRequest
Calibrazione, servizio e verifica dell'istituzione di ricerca

Un backend del marketplace di attrezzature da laboratorio pronto per la produzione su Back4app con ResearchInstitution, EquipmentListing, CalibrationLog, ServiceRecord e VerificationRequest. Include diagramma ER, guida di campo, schema JSON, sandbox API e un prompt AI Agent per un avvio rapido.

Punti chiave per l'inventario di laboratorio

Questo modello ti fornisce un backend per il marketplace delle attrezzature da laboratorio con ResearchInstitution, EquipmentListing, CalibrationLog, ServiceRecord e VerificationRequest in modo che acquirenti, venditori e recensori possano coordinarsi con meno lavoro manuale.

  1. Elenco prioritario di calibrazioneMonitora ogni EquipmentListing con lastCalibrationDate, CalibrationLog.result e nextDueAt prima che un acquirente invii una richiesta.
  2. Storia del servizio su ogni unitàUsa le voci di ServiceRecord con attrezzature, serviceType, serviceDate e status per mantenere la manutenzione visibile.
  3. Verifica dell'istituzioneVerifica i record di ResearchInstitution con verificationStatus e note del revisore prima che possano elencare strumenti regolamentati.

Comprendere il backend del marketplace delle attrezzature da laboratorio

La doppia prenotazione non è solo imbarazzante nel marketplace delle attrezzature da laboratorio; erode la fiducia più velocemente di qualsiasi campagna di marketing possa ricostruirla. Usa ResearchInstitution, EquipmentListing, CalibrationLog, ServiceRecord e VerificationRequest su Back4app per codificare la disponibilità, i prezzi e i registri di evasione nel marketplace delle attrezzature da laboratorio in un unico backend coeso. Lo schema copre ResearchInstitution(nome, tipoIstituzione, statoVerifica, urlSitoWeb, emailContatto), EquipmentListing(titolo, tipoAttrezzatura, condizione, prezzo, venditore, numeroSeriale, statoDisponibilità, dataUltimaCalibrazione), CalibrationLog(attrezzatura, calibratoIl, prossimoScadutoIl, eseguitoDa, urlCertificato, risultato, note), ServiceRecord(attrezzatura, tipoServizio, dataServizio, nomeProvider, stato, urlFattura, riepilogo), e VerificationRequest(istituzione, attrezzatura, richiestoDa, stato, noteRevisione, revisionatoIl) con flussi di lavoro di autenticazione, verifica e marketplace integrati. Collega il tuo frontend preferito e spedisci più velocemente.

Migliore per:

Marketplace di attrezzature da laboratorioPiattaforme di rivendita di strumenti di ricercaApp per il tracciamento della calibrazione e della manutenzioneFlussi di lavoro di verifica delle istituzioniLanci di MVPTeam che scelgono BaaS per prodotti specializzati nel marketplace

Panoramica del backend del marketplace di attrezzature da laboratorio

Buone abitudini nel marketplace di attrezzature da laboratorio assomigliano alla disciplina: gli stessi campi, lo stesso linguaggio del ciclo di vita e la stessa traccia di audit ogni volta.

Aspettati la stessa ResearchInstitution, EquipmentListing e CalibrationLog che tu parta da Flutter, React, Next.js o da un'altra via supportata.

Funzionalità principali del Marketplace dei Laboratori

Ogni scheda tecnologica in questo hub utilizza lo stesso schema del mercato delle attrezzature da laboratorio con ResearchInstitution, EquipmentListing, CalibrationLog, ServiceRecord e VerificationRequest.

Catalogo delle attrezzature con tracciabilità

EquipmentListing memorizza titolo, equipmentType, condition, price, seller, serialNumber, availabilityStatus e lastCalibrationDate.

Elenco del mercato e prezzi

Il link dell'EquipmentListing mostra venditore, prezzo, condizione e stato di disponibilità.

Registri di calibrazione

Il CalibrationLog tiene traccia dell'attrezzatura, della data di calibrazione, della prossima scadenza e del risultato per ciascun elenco.

Storia del servizio

ServiceRecord memorizza attrezzatura, tipo di servizio, data di servizio, nome Provider, stato e riepilogo.

Verifica dell'istituzione di ricerca

ResearchInstitution e VerificationRequest registrano nome, tipo di istituzione, stato di verifica, richiesto da e stato.

Tracciamento del flusso di lavoro della verifica

VerificationRequest collega istituzione, attrezzatura, richiesto da, stato, note di revisione e data di revisione.

Perché costruire il tuo marketplace di attrezzature da laboratorio con Back4app?

Back4app ti fornisce primitive di marketplace per attrezzature, calibrazione e verifica in modo che il tuo team possa concentrarsi sulla fiducia e sull'abbinamento dell'offerta con la domanda invece che sull'infrastruttura.

  • Gestione di ResearchInstitution e listing: Le classi ResearchInstitution e EquipmentListing mantengono verificationStatus, equipmentType, serialNumber, price, condition e availabilityStatus disponibili per la ricerca e moderazione nel marketplace.
  • Calibrazione e percorsi di servizio: I campi CalibrationLog e ServiceRecord come calibratedAt, nextDueAt, performedBy, serviceDate e notes rendono esplicita la storia di manutenzione.
  • Verifica e controllo accessi: I record ResearchInstitution e VerificationRequest ti aiutano ad approvare i laboratori prima che possano pubblicare o richiedere attrezzature regolamentate.

Costruisci e itera rapidamente sulle funzionalità del marketplace dei laboratori con un contratto backend su tutte le piattaforme.

Benefici principali per acquirenti e venditori di laboratori

Un backend di mercato che ti aiuta a lanciare con segnali di fiducia già modellati.

Lancio più rapido per inventari specializzati

Inizia dalle classi ResearchInstitution e EquipmentListing invece di progettare uno schema di inventario di laboratorio da zero.

Dettagli di manutenzione tracciabili

Utilizza le voci di CalibrationLog e ServiceRecord per presentare calibratedAt, nextDueAt, serviceDate e summary senza fogli di calcolo manuali.

Verifica integrata nel flusso di lavoro

Monitora ResearchInstitution.verificationStatus e VerificationRequest.status in modo che le inserzioni ad alto rischio possano essere controllate prima del checkout.

Proprietà e moderazione a livello di autorizzazione

Mantieni allineati i record di EquipmentListing, CalibrationLog e ServiceRecord controllati dal venditore con le politiche ACL e CLP.

Dati di mercato ricercabili

Interroga serialNumber, equipmentType, availabilityStatus, price e risultati per supportare il filtraggio e l'ordinamento.

Avvio assistito da AI

Genera rapidamente impalcature backend e linee guida per l'integrazione con un'unica richiesta strutturata.

Pronto per lanciare il tuo marketplace di attrezzature da laboratorio?

Lascia che l'agente AI di Back4app realizzi l'impalcatura del backend del tuo marketplace di attrezzature da laboratorio e generi flussi di calibrazione, servizio e verifica da un'unica richiesta.

Gratuito per iniziare — 50 suggerimenti per agenti AI/mese, nessuna carta di credito richiesta

Stack tecnico del mercato Lab

Tutto incluso in questo modello di backend per il mercato delle attrezzature da laboratorio.

Frontend
13+ tecnologie
Backend
Back4app
Database
MongoDB
Autenticazione
Autenticazione integrata + sessioni
API
REST e GraphQL
In tempo reale
Live Queries

Diagramma ER delle attrezzature di ricerca

Modello di relazione tra entità per lo schema backend del marketplace di attrezzature da laboratorio.

Visualizza sorgente del diagramma
Mermaid
erDiagram
    ResearchInstitution ||--o{ EquipmentListing : "seller"
    ResearchInstitution ||--o{ VerificationRequest : "institution"
    EquipmentListing ||--o{ CalibrationLog : "equipment"
    EquipmentListing ||--o{ ServiceRecord : "equipment"
    EquipmentListing ||--o{ VerificationRequest : "equipment"

    ResearchInstitution {
        String objectId PK
        String name
        String institutionType
        String verificationStatus
        String websiteUrl
        String contactEmail
        Date createdAt
        Date updatedAt
    }

    EquipmentListing {
        String objectId PK
        String title
        String equipmentType
        String condition
        Number price
        String sellerId FK
        String serialNumber
        String availabilityStatus
        Date lastCalibrationDate
        Date createdAt
        Date updatedAt
    }

    CalibrationLog {
        String objectId PK
        String equipmentId FK
        Date calibratedAt
        Date nextDueAt
        String performedBy
        String certificateUrl
        String result
        String notes
        Date createdAt
        Date updatedAt
    }

    ServiceRecord {
        String objectId PK
        String equipmentId FK
        String serviceType
        Date serviceDate
        String providerName
        String status
        String invoiceUrl
        String summary
        Date createdAt
        Date updatedAt
    }

    VerificationRequest {
        String objectId PK
        String institutionId FK
        String equipmentId FK
        String requestedBy
        String status
        String reviewNotes
        Date reviewedAt
        Date createdAt
        Date updatedAt
    }

Flusso di integrazione del marketplace

Flusso di esecuzione tipico per login, revisione delle richieste di verifica, elenchi di attrezzature, log di calibrazione e registri di servizio.

Visualizza sorgente del diagramma
Mermaid
sequenceDiagram
  participant User
  participant LabApp as Lab Equipment Marketplace App
  participant Back4app as Back4app Cloud

  User->>LabApp: Sign in to review lab inventory
  LabApp->>Back4app: POST /login
  Back4app-->>LabApp: Session token

  User->>LabApp: Load verified equipment listings
  LabApp->>Back4app: GET /classes/EquipmentListing?include=seller
  Back4app-->>LabApp: EquipmentListing rows with seller details

  User->>LabApp: Open a calibration log
  LabApp->>Back4app: GET /classes/CalibrationLog?include=equipment
  Back4app-->>LabApp: CalibrationLog history and due dates

  User->>LabApp: Submit a verification request
  LabApp->>Back4app: POST /classes/VerificationRequest
  Back4app-->>LabApp: VerificationRequest objectId

  LabApp->>Back4app: Watch live updates on service records
  Back4app-->>LabApp: ServiceRecord changes

Guida di Campo

Riferimento completo a livello di campo per ogni classe nello schema del mercato delle attrezzature da laboratorio.

CampoTipoDescrizioneRichiesto
objectIdStringAuto-generated unique identifierAuto
nameStringInstitution or lab name
institutionTypeStringType of institution (e.g., university, biotech, hospital)
verificationStatusStringVerification state for marketplace access
websiteUrlStringPublic institution website
contactEmailStringInstitutional contact email
createdAtDateAuto-generated creation timestampAuto
updatedAtDateAuto-generated last-update timestampAuto

8 campi in ResearchInstitution

Accesso e Permessi alla Ricerca

Come la strategia ACL e CLP protegge gli aggiornamenti di ResearchInstitution, EquipmentListing, VerificationRequest, CalibrationLog e ServiceRecord.

Controlli dell'account di proprietà dell'istituzione

Solo l'account autenticato può aggiornare il suo contatto Email, websiteUrl o verificationStatus della ResearchInstitution attraverso flussi di lavoro approvati.

Proprietà del venditore per attrezzature e annunci

Solo il puntatore del venditore su EquipmentListing può creare, aggiornare o eliminare quell'annuncio e il suo serialNumber di EquipmentListing collegato.

Azioni di mercato con verifica

Utilizza Cloud Code per richiedere ResearchInstitution.verificationStatus = verificato prima di pubblicare righe di EquipmentListing regolamentati o approvare articoli di VerificationRequest.

Schema JSON

Definizione dello schema JSON grezzo pronta da copiare in Back4app o utilizzare come riferimento per l'implementazione.

JSON
{
  "classes": [
    {
      "className": "ResearchInstitution",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "name": {
          "type": "String",
          "required": true
        },
        "institutionType": {
          "type": "String",
          "required": true
        },
        "verificationStatus": {
          "type": "String",
          "required": true
        },
        "websiteUrl": {
          "type": "String",
          "required": false
        },
        "contactEmail": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "EquipmentListing",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "title": {
          "type": "String",
          "required": true
        },
        "equipmentType": {
          "type": "String",
          "required": true
        },
        "condition": {
          "type": "String",
          "required": true
        },
        "price": {
          "type": "Number",
          "required": true
        },
        "seller": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ResearchInstitution"
        },
        "serialNumber": {
          "type": "String",
          "required": false
        },
        "availabilityStatus": {
          "type": "String",
          "required": true
        },
        "lastCalibrationDate": {
          "type": "Date",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "CalibrationLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "equipment": {
          "type": "Pointer",
          "required": true,
          "targetClass": "EquipmentListing"
        },
        "calibratedAt": {
          "type": "Date",
          "required": true
        },
        "nextDueAt": {
          "type": "Date",
          "required": false
        },
        "performedBy": {
          "type": "String",
          "required": true
        },
        "certificateUrl": {
          "type": "String",
          "required": false
        },
        "result": {
          "type": "String",
          "required": true
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ServiceRecord",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "equipment": {
          "type": "Pointer",
          "required": true,
          "targetClass": "EquipmentListing"
        },
        "serviceType": {
          "type": "String",
          "required": true
        },
        "serviceDate": {
          "type": "Date",
          "required": true
        },
        "providerName": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "invoiceUrl": {
          "type": "String",
          "required": false
        },
        "summary": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "VerificationRequest",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "institution": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ResearchInstitution"
        },
        "equipment": {
          "type": "Pointer",
          "required": false,
          "targetClass": "EquipmentListing"
        },
        "requestedBy": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "reviewNotes": {
          "type": "String",
          "required": false
        },
        "reviewedAt": {
          "type": "Date",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

Costruisci con AI Agent

Utilizza l'Agente AI Back4app per generare un'app di mercato per attrezzature di laboratorio reale da questo modello, inclusi frontend, backend, autenticazione, e flussi di calibrazione, servizio e verifica.

Back4app Agente AI
Pronto per costruire
Crea un backend per un'app di mercato per attrezzature di laboratorio su Back4app con questo schema e comportamento esatti.

Schema:
1. ResearchInstitution: objectId (Stringa, di sistema), name (Stringa, obbligatoria), institutionType (Stringa, obbligatoria), verificationStatus (Stringa, obbligatoria), websiteUrl (Stringa, facoltativa), contactEmail (Stringa, facoltativa), createdAt (Data, di sistema), updatedAt (Data, di sistema).
2. EquipmentListing: objectId (Stringa, di sistema), title (Stringa, obbligatoria), equipmentType (Stringa, obbligatoria), condition (Stringa, obbligatoria), price (Numero, obbligatoria), seller (Puntatore a ResearchInstitution, obbligatorio), serialNumber (Stringa, facoltativa), availabilityStatus (Stringa, obbligatoria), lastCalibrationDate (Data, facoltativa), createdAt (Data, di sistema), updatedAt (Data, di sistema).
3. CalibrationLog: objectId (Stringa, di sistema), equipment (Puntatore a EquipmentListing, obbligatorio), calibratedAt (Data, obbligatoria), nextDueAt (Data, facoltativa), performedBy (Stringa, obbligatoria), certificateUrl (Stringa, facoltativa), result (Stringa, obbligatoria), notes (Stringa, facoltativa), createdAt (Data, di sistema), updatedAt (Data, di sistema).
4. ServiceRecord: objectId (Stringa, di sistema), equipment (Puntatore a EquipmentListing, obbligatorio), serviceType (Stringa, obbligatoria), serviceDate (Data, obbligatoria), ProviderName (Stringa, obbligatoria), status (Stringa, obbligatoria), invoiceUrl (Stringa, facoltativa), summary (Stringa, facoltativa), createdAt (Data, di sistema), updatedAt (Data, di sistema).
5. VerificationRequest: objectId (Stringa, di sistema), institution (Puntatore a ResearchInstitution, obbligatorio), equipment (Puntatore a EquipmentListing, facoltativo), requestedBy (Stringa, obbligatoria), status (Stringa, obbligatoria), reviewNotes (Stringa, facoltativa), reviewedAt (Data, facoltativa), createdAt (Data, di sistema), updatedAt (Data, di sistema).

Sicurezza:
- Solo i record di ResearchInstitution verificati possono pubblicare voci di EquipmentListing.
- CalibrationLog e ServiceRecord dovrebbero essere scrivibili dal venditore o dal personale autorizzato.
- VerificationRequest dovrebbe supportare aggiornamenti solo per revisori per cambiamenti di stato.
- Proteggere serialNumber, contactEmail e certificateUrl dove la politica di accesso lo richiede.

Autenticazione:
- Iscrizione, accesso, disconnessione.

Comportamento:
- Naviga tra le inserzioni, crea o modifica post di attrezzature, registra log di calibrazione, cattura cronologia del servizio e invia o riesamina richieste di verifica.
- Utilizza permessi a livello di classe Back4app, ACL e restrizioni basate sul ruolo per venditori, acquirenti e revisori.

Consegna:
- App Back4app con schema, ACL, CLP; frontend per navigazione del mercato, pagine di dettaglio delle attrezzature, cronologia di calibrazione, cronologia del servizio e flussi di verifica delle istituzioni.

Premi il pulsante qui sotto per aprire l'Agente con questo prompt del modello precompilato.

Questo è il prompt base senza un suffisso tecnologico. Puoi adattare lo stack frontend generato in seguito.

Distribuisci in pochi minuti50 prompt gratuiti / meseNessuna carta di credito richiesta

API Sandbox

Prova gli endpoint REST e GraphQL contro lo schema del mercato delle attrezzature di laboratorio. Le risposte utilizzano dati fittizi e non richiedono un account Back4app.

Caricamento playground…

Utilizza lo stesso schema di questo modello.

Scegli il tuo stack

Espandi ciascuna scheda per vedere come integrare ResearchInstitution, EquipmentListing e CalibrationLog con il tuo stack scelto.

Flutter Mercato dell'attrezzatura da laboratorio Backend

React Mercato dell'attrezzatura da laboratorio Backend

React Nativo Mercato dell'attrezzatura da laboratorio Backend

Next.js Mercato dell'attrezzatura da laboratorio Backend

JavaScript Mercato dell'attrezzatura da laboratorio Backend

Android Mercato dell'attrezzatura da laboratorio Backend

iOS Mercato dell'attrezzatura da laboratorio Backend

Vue Mercato dell'attrezzatura da laboratorio Backend

Angular Mercato dell'attrezzatura da laboratorio Backend

GraphQL Mercato dell'attrezzatura da laboratorio Backend

REST API Mercato dell'attrezzatura da laboratorio Backend

PHP Mercato dell'attrezzatura da laboratorio Backend

.NET Mercato dell'attrezzatura da laboratorio Backend

Cosa ottieni con ogni tecnologia

Ogni stack utilizza lo stesso schema di backend del marketplace per le attrezzature da laboratorio e contratti API.

Struttura dei dati dell'inventario di laboratorio unificata

Gestisci ResearchInstitution, EquipmentListing, CalibrationLog, ServiceRecord e VerificationRequest con uno schema.

Verifica dell'istituzione per la fiducia nel marketplace

Approva i record di ResearchInstitution prima che sia consentita l'attività su apparecchiature di alto valore.

Visibilità della calibrazione e del servizio

Mostra nextDueAt, status, reviewedAt e collegamenti certificateUrl per ogni strumento.

Flussi di marketplace consapevoli dei ruoli

Supporta acquirenti, venditori e revisori con diversi permessi e visualizzazioni.

API REST/GraphQL per il commercio nel laboratorio

Integra strumenti web, mobili e back-office attraverso API flessibili.

Architettura estensibile per le operazioni di laboratorio

Aggiungi moduli di spedizione, ispezione o approvvigionamento senza reimpostare lo schema di base.

Confronto del Framework del Mercato del Laboratorio

Confronta la velocità di configurazione, lo stile SDK e il supporto AI tra tutte le tecnologie supportate.

FrameworkTempo di ConfigurazioneVantaggio del Mercato del LaboratorioTipo di SDKSupporto AI
Circa 5 minCodice sorgente unico per le app di acquisto e vendita.SDK tipizzatoCompleto
Meno di 5 minutiDashboard del marketplace veloce per la navigazione delle attrezzature.SDK tipizzatoCompleto
~3–7 minApp mobile multipiattaforma per il commercio di attrezzature da laboratorio.SDK tipizzatoCompleto
Impostazione rapida (5 min)Marketplace renderizzato dal server per pagine di dettaglio elenco.SDK digitatoCompleto
~3–5 minIntegrazione web leggera per la ricerca di attrezzature.SDK digitatoCompleto
Circa 5 minApp nativa Android per acquirenti e venditori in campo.SDK digitatoCompleto
Meno di 5 minutiApp iOS nativa per flussi di lavoro di approvvigionamento in laboratorio.SDK digitatoCompleto
~3–7 minInterfaccia web Reactive per la storia dell'attrezzatura e dei servizi.SDK digitatoCompleto
Installazione rapida (5 min)App web per le operazioni di marketplace per le imprese.SDK digitatoCompleto
Meno di 2 minAPI GraphQL flessibile per visualizzazioni di attrezzature annidate.API GraphQLCompleto
Installazione rapida (2 min)Integrazione di REST API per inserzioni e verifica.REST APICompleto
~3 minBackend PHP lato server per strumenti di amministrazione del marketplace.REST APICompleto
~3–7 minBackend .NET per sistemi di approvvigionamento e verifica.SDK tipizzatoCompleto

Il tempo di configurazione riflette la durata prevista dal bootstrap del progetto alla prima richiesta di attrezzatura o verifica utilizzando questo schema di template.

Domande frequenti sul Lab Marketplace

Domande comuni sulla creazione di un backend per un mercato di attrezzature da laboratorio con questo modello.

Come fanno i team del marketplace di attrezzature da laboratorio a mantenere onesta la disponibilità quando i ritorni ritardano o gli asset vanno in manutenzione?
Qual è il modo corretto per collegare il catalogo delle attrezzature con la tracciabilità, le inserzioni del marketplace e la pricing, i log di calibrazione alle ispezioni di adempimento e ritorno?
Come possiamo aggiungere nuove strutture tariffarie o bundle per il mercato delle attrezzature di laboratorio senza riscrivere la logica di prenotazione?
Come posso visualizzare i dati delle attrezzature e delle calibrazioni con Flutter?
Come gestisco lo stato del marketplace in Next.js?
Può il servizio di caching offline di React conservare la cronologia dei servizi?
Come posso fermare le approvazioni di verifica non autorizzate?
Qual è il modo migliore per mostrare l'attrezzatura da laboratorio su Android?
Come funziona il flusso degli affari per acquirenti e venditori?

Affidato da sviluppatori in tutto il mondo

Unisciti ai team che spedicono i prodotti del marketplace di attrezzature da laboratorio più velocemente con i modelli di Back4app

G2 Users Love Us Badge

Pronto per costruire il tuo marketplace di attrezzature da laboratorio?

Inizia il tuo progetto di marketplace di attrezzature da laboratorio in pochi minuti. Nessuna carta di credito richiesta.

Scegli tecnologia