Brand-Brothers

Documentatie web site Brand-Brothers

Forms

Handleiding

Deze handleiding beschrijft de verschillende parameters die je kunt gebruiken bij het configureren van een bier selectie formulier.

Het form wordt aangeroepen door middel van een URL en alle parameters worden in de URL meegegeven.

Voorbeeld:

https://....../.../brand-brothers/forms/?eigenaar=naam&merk=Texels&set=Texels-vuurtorenbar&minbeers=3&beerfilter=amstel&options=1,2,3,4,25,26&t=1&maxbeers=3

Spaties in URL

In de gehele URL moeten spaties worden gecodeerd als %20.

Parameters

De parameters zoals in het voorbeeld getoond, worden hieronder beschreven. Elke parameter is rood gemarkeerd.

minbeers
maxbeers
Verborgen Velden
t (Testmodus)
options
beerfilter

Options aanpassen

Om options aan te passen kan deze URL worden gebruikt:

https://....../.../brand-brothers/forms/options

of nieuwe interface

https://....../.../brand-brothers/forms/options/index2.php
Optienummer

Elke optie heeft een nummer. Aan de hand van dit nummer wordt de optie op het formulieer geplaatst. De nummers hoeven niet uniek te zijn. Wanneer meerdere opties hetzelfde nummer hebben, worden alle opties op het fomrulier getoond wanneer deze optie wordt gekozen.

Optienaam

De naam van de optie is de naam die op de aanvraag verschijnt (email).

Optielabel

Het label is de de naam zoals die op het formulier verschijnt.

Extra naam

De extra naam is de (open) vraag die wordt gesteld indien de optie wordt geslecteerd. De naam is de naam zoals die op het aanvraag (email) verschijnt.

Extra label

Het extra label is de (open) vraag die wordt gesteld indien de optie wordt geslecteerd. Het label is de naam zoals die op het formulier verschijnt.

URL naar options (back-up)

De 'database' waarin de options worden opgeslagen kun je via de volgende URLs controleren:

https://.../.../brand-brothers/forms/options/options.js
https://.../.../brand-brothers/forms/options/options.json

Deze bestanden zou je ook als (extra) back-up kunnen gebruiken.

De twee bestanden bevatten dezelfde informatie, maar zijn om technische redenen op een andere wijze vormgegeven.

Options kunnen niet worden aangepast?

Als de opties niet kunnen worden aangepast, controleer dan de twee bestanden. Zijn de wijzigingen in deze bestanden wel aangepast dan zorgt de cache van de browser ervoor dat de wijzigingen niet (direct) worden getoond. Laadt de pagina dan opnieuw en leeg de browser cache (dit werkt op elke browser anders).

Beers aanpassen

(dit is nog nooit in productie getest)

https://............/brand-brothers/forms/beers

of nieuwe interface

https://............/brand-brothers/forms/beers/index2.php

Een beer heeft een ID en een naam zoals dat op het form te zien is. Zorg ervoor dat de ID's uniek blijven.

--

Equipment

Equipmentlist

(in ontwikkeling)

https://..../brand-brothers/equipment-list/folders.php

--

Technical (Equipment )

Equipment

folder -> equipment -> 

Performance

Plaatjes

Plaatjes staan in Amazon Cloud en zijn 200kb tot 500kb.

No Cache, no optimazation

Het laden van 5 items duurt 1 tot 2.5 seconden afhankelijk van de grootte van de plaatjes.

Async laden plaatjes

Laadtijden per 5 items tussen de 0.6 en 1.2 seconden zijn.  

Plaatjes kleiner maken (optimized for web)

Het laden van 5 items duurt 2 ms.. 200 to 500 maal sneller.

API Call optimization

API calls naar rentman kosten gemiddeld 120 ms per call (dat is snel); voor elk item heb je wel 3 call nodig (item data, plaatje data, calender data).
Dat is dus 360 ms per item.

Via cache is dat < 1 ms.

Mogleijk optimalisatie is parrallel async  verwerking.

Implementation
all getc api calls are cached. The cache has a predefiend TTL $cache_ttl = 3600
the raw return value of the API is json encoded written to file.

There is code to delete all the cache (not tested yet)

Rerender plaatje sop server

Let op dat de GD library op de server actief moet zijn.

Amazon picture load

TLS Handshake and Connection Setup: 100 ms
s3-eu-west-1.amazonaws.com - ping time 27 ms
server processing - 10 ms
Network tranfer speed 0.8 sec/KB

Cache of rentman API

all getc api calls are cached. The cache has a predefiend TTL $cache_ttl = 3600
the raw return value of the API is json encoded written to file.
There is code to delete all the cache (not tested yet)

Images cache

Images are cached as images (binaries) and are re-rendered at a lower resolution.
Images are cached under the name [equipment-id]-[image-modified].jpg
When equipment ids are not valid any more, there could be orphan images in the cache.

When the image is updated for an exisitng equipment id, there will be two files with the same equipment-id,
the one with the lowest image-modified timestamp can be deleted.
There is no code for this yet.

Performance test

Rechten op directory (Ubuntu)

// create new group
sudo groupadd shared-www

// add users to group
sudo usermod -aG shared-www www-data
sudo usermod -aG shared-www max

// set shared group as owner
sudo chown -R :shared-www /path/to/shared-directory
sudo chmod -R 770 /path/to/shared-directory

// Ensure that any new files or directories created inside the shared directory inherit the group ownership of shared-group.
sudo chmod g+s /path/to/shared-directory