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
- Beschrijving: Het minimaal aantal bieren dat geselecteerd moet worden.
- Werking: Als er minder bieren zijn geselecteerd dan het minimum, krijg je een waarschuwing wanneer je probeert het formulier te versturen.
maxbeers
- Beschrijving: Het maximaal aantal bieren dat geselecteerd kan worden.
- Werking: Als je meer bieren selecteert dan het maximum, verschijnt er onmiddellijk een waarschuwing.
Verborgen Velden
- Beschrijving: De volgende velden zijn verborgen en kunnen via de URL worden meegegeven. De verborgen velden worden dor het formulier meegestuurd en verschijnen in de email.
- eigenaar: De eigenaar van het biermerk.
- merk: De naam van het biermerk.
- set: De naam van de set die in de titel van het formulier verschijnt.
t (Testmodus)
- Beschrijving: Hiermee kun je de testmodus van het formulier instellen. aan t kunnen de volgende waarden worden gegeven:
- 0: Normale werking (dezelfde als geen waarde opgegeven).
- 1: Alle verplichte velden zijn niet meer verplicht en het formulier wordt niet per e-mail verzonden.
- 2: Alle verplichte velden zijn niet meer verplicht en het formulier wordt wel per e-mail verzonden
options
- Beschrijving: Een lijst van opties die als een komma-gescheiden lijst moeten worden opgegeven. Deze opties worden getoond op het formulier.
beerfilter
- Beschrijving: Een filter om bieren op naam te selecteren.
- Werking: Als de waarde 'none' is, wordt de gehele bierselectie niet getoond. Je kunt meerdere filters specificeren, bijvoorbeeld:
beerfilter=amstel,brand
.
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
-
- Orginele laadtijd: 5,4 seconden (1.8 MB plaatjes)
- Img cache v no cache 2600/3500 ms - 2 ms
- API call cache v no cache: 1700 ms - 2 ms
- na cache plaatjes/ api calls 2 ms
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