Skip to content

Instantly share code, notes, and snippets.

@laurensdewaele
Created March 31, 2021 11:29
Show Gist options
  • Save laurensdewaele/763397d5bf674617a02303864fd5fb18 to your computer and use it in GitHub Desktop.
Save laurensdewaele/763397d5bf674617a02303864fd5fb18 to your computer and use it in GitHub Desktop.

1) We lezen de excel file in met de excel package.

2) We bepalen hoeveel rows er omgezet moeten worden (6 t.e.m. 85)

  • Kijk of het makkelijk gaat om programmatisch in te lezen tot waar het stopt (85)
  • Testen? Checken of er geen rare input is. E.g typos of iets anders dan x.

3) We converteren elke rij naar een pad.

Het gemakkelijkste lijkt me om een pad om te zetten naar de reeds bestaande frontend state structuur.

Dus:

  roofType: {
    type: RoofTypeTypes;
    climateClass: RoofTypeClimateClasses;
  };
  roofFloor: {
    type: RoofFloorTypes;
  };
  waterproofing: {
    type: WaterproofingTypes;
  };
  securingMethods: {
    topLayer: TopLayerSecuringMethodTypes;
    bottomLayer: BottomLayerSecuringMethodTypes;
    insulation: InsulationSecuringMethodTypes;
    vaporShield: VaporShieldSecuringMethodTypes;
  };
  roofStructure: {
    topLayerMaterial: Material;
    bottomLayerMaterial: Material;
    insulationMaterial: Material;
    vaporShieldMaterial: Material;
    roofFloorMaterial: Material;
  };

We lezen elke kolom in (A t.e.m. AA) en mappen het naar onze structuur:

  • A -> roofType: {type: "${uit te lezen value}"}

  • D -> {waterproofing: {type: "${uit te lezen value}"}}

  • E -> enkel indien er een x staat -> {securingMethods: {vaporShield: "Vlamlassen"}, roofStructure: {vaporShieldMaterial: BASE_P3_TF_WELDING}}

4 We krijgen uiteindelijk een array die we in een JSON proppen

5 Bij het builden van de frontend, builden we ook de excel-parser software en steken we de JSON in onze assets folder

6 In de frontend filteren we op welke paden beschikbaar zijn op welke stap.

E.g.: We bevinden ons in Stap4 waar we de bevestigingsmethodes moeten kiezen. Voorgaande stappen: 1: Leefdak met klimaatklass 3 2: Beton 3: Bitumen

Wat zijn onze mogelijkheden?

const validPaths = paths.filter(path => path.roofType.type === "Leefdak" && path.roofType.climateClass === "III" && path.roofFloor.type === "Beton");

of

const validPaths = paths.filter(path => path.roofType.type === state.roofType.path && path.roofType.climateClass === state.roofType.climateClass && path.roofFloor.type === sttae.roofFloor.type);

Toplaag mogelijkheden:

validPaths.map(path => path.securingMethods.topLayer).unique()

Zo krijgen we alle mogelijke toplaag mogelijkheden. Hetzelfde voor de andere lagen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment