Vape specification database proposal

badbee

Well-Known Member
Some of the most common questions regarding vapes are about sizes, specifications and compatibilities between units. Answers are given and then quickly forgotten, lost in the pile. What we need is a database where we can put these facts so they can be easily referenced for next time.

A custom and complicated database solution will fall apart as soon as the original creator stops maintaining it. To avoid that the datastore needs to be a single portable file in a format that is both machine readable as well as human readable and editable. That leaves JSON as probably the most suitable data format. Tech familiar users can maintain it directly and anyone who wants to make the presentation pretty can easily do so using standard tools. Adding a queryable and filterable UI layer on top would be fairly easy.

Below is the first draft of a logical schema for the data store entries for vape units and stems. This is intended only for objective information about vapes and is intended to be as simple as possible while covering 95% of the information people care about. Some non-standard vapes and properties won't fit here, and that's acceptable. We want to keep this as simple as possible in order to be useful and maintainable.

If I've missed things, and I probably have, that should be covered to reach that 95% coverage goal, let me know. Highly subjective qualities and things that won't achieve broad agreement should be avoided.

Edit: Used a CODE block to preserve formatting

Logical Schema Proposal v1​


Code:
VapeUnit
    Manufacturer
        Name [String]
        IsCraftMaker [Yes, No (oneof)]
    Name [String]
    Version [FloatValue]
    DerivedFrom [String (vape name)]   /* Comment: List prior version of this vape or base model for clone family  */
    ReleaseYear [IntegerValue(year)]
    EndProductionYear [IntegerValue(year)]
   
    PowerSource [Battery, Externalcontroller, WallPowered, DirectFlame, IndirectFlame, IH (oneof)]
    DominantHeatingType [Conduction, Convection, Mixed (oneof)]
    SessionType [Session, OnDemand, Both (oneof)]
    ControlsType [Analog, Digital, External, Manual (oneof)]
    WifiApp [Yes, No (oneof)]
   
    Battery
        Replaceable [Yes, No (oneof)]
        Chemistry [LiIon, LiPo (oneof)]
        Capacity [IntegerValue (mAh)]
        CellType [18650, 21700, Pouch, Other (oneof)]
        CellCount [IntegerValue]
       
    Charging [Required, NA]
        ChargePortType [Barrel, USB-B, MiniUSB, USB-C, Other (oneof)]
        SupportsUSBCPD [true, false (oneof)]
        ChargeRateMin [FloatValue (A)]
        ChargeRateMax [FloatValue (A)]
        ChargerVoltage [Integer(V), USB (oneof)]
        ChargerWattage [Integer(W), USB (oneof)]
       
    WallPowerSupply [FixedVoltage, VariableVoltage, NA (oneof)]
        FixedVoltage [Integer(V), NA]
        VariableMin [Integer(V)]
        VariableMax [Integer(V)]
        SupplyWattage [Integer(W)]
       
   
    HeatSource [Embeddedcoil, Freecoil, Ribbon, HalogenBulb, External (oneof)]
    HeaterMaterial [Stainless, Kanthal, NiChrome, Titanium, Unknown, NA (oneof)]
    HeaterPower [IntegerValue(W)]
   
    PhysicalProperties
        Body
            Width [IntegerValue(mm)]
            Height [IntegerValue(mm)]
            Length [IntegerValue(mm)]      
            Weight [IntegerValue(g)]
            StemDiameter [IntegerValue(mm), NA]
           
        Screens
            Screen
                Location [String]
                Diameter [IntegerValue(mm)]
                Mesh [Coarse, Medium, Fine (oneof)]
                Material [Stainless, Brass, Titanium, Unknown, Other (oneof)]
               
        ORings
            ORing
                Location [String]
                InsideDiameter [FloatValue(mm)]
                CrossSection [FloatValue(mm)]
       
    LoadSizeTypical [FloatValue(g)]
   
    Capsules [Yes, No]
        CapsuleSource [Manufacturer, Other (oneof)]
       
        /* Comment: this is an incomplete sample list, should it just be free text rather an enum list? */
        KnownCompatible [Mighty, Venty, Rogue, TinyMight, Other (anyof)]
   
    WaterPipeAdapter [ReplacesStem, ReplacesTop, StemToWhipOnly, BuiltIn, NotAvailable, NA (oneof)]
    LoadType [Stemload, Chamberload, PotsOnly, Other (oneof)]
    StirringTypical [Yes, No, UserPreference]  /* Comment: can this be answered objectively? Just skip it? */
    MouthPieceType [SeparateStem, IntegratedStem, WhipStandard, Bags (anyof)]
   
   
Stems
    SimpleStem  /* Comment: definition for simple and mostly one piece stems  */
        Manufacturer
            Name [String]
            IsCraftMaker [Yes, No (oneof)]
        Name [String]
        Length [IntegerValue(mm)]
        InsideDiameter [FloatValue(mm), NA]
        OutsideDiameter [FloatValue(mm), NA]
        Material [SodaGlass, BoroGlass, Quartz, Stainless, Titanium, Wood, Ceramic, Other (oneof)] /* Comment: can it be any combo of these? */
        IntegratedScreen [Yes, No]
        ChamberDepth [FloatValue(mm), NA]
        Modifications [Pinches, Bends, Beads, Pills, SpiralInsert, OtherInsert, Decoration (anyof)]
        TargetedVape [String (vape name)]
        WPACompatibility [10mm, 14mm, 18mm (anyof)]
        KnownCompatibleVapes [String (list of vapes)]
       
        ORings
            ORing
                Location [String]
                InsideDiameter [FloatValue(mm)]
                CrossSection [FloatValue(mm)]

        BasketScreenCompatibility [StandardRimmed, CustomRimmedOnly, FormedBaskets, Other, NA (anyof)]
 
Last edited:
Top Bottom