zaterdag 13 september 2014

case study: autowasstraten online verkoop

Als PHP-programmeur ben ik breed inzetbaar. Hieronder vindt u een beknopte beschrijving van één van de door mij uitgevoerde opdrachten.

Project: autowasstraten online verkoop
Opdrachtgever: webbio.nl

Opdracht:
Een keten van auto-wasstraten in het westen van het land had al een website. Men wilde echter diverse zaken via internet gaan verkopen:
  • losse wasbeurten
  • abonnementen
  • prepaid saldokaarten
Ook wilde men dat de diverse wasstraat-vestigingen middels eigen software ook abonnementen en prepaid waspassen konden gaan verkopen. Bovendien moest de afhandeling van alle aangekochte producten volledig web-based kunnen worden afgehandeld.
Als laatste moest er een beheersysteem worden gebouwd waarin de eigenaar van de wasstraten het beheer kon voeren over vestigingen, klanten, abonnementen en marketingacties.

Een standaard webshop is niet geschikt voor het verkopen van abonnementen en prepaid saldokaarten. Een maatwerk oplossing moest gebouwd worden.

Uitvoering:
Ik heb bestaande, door mijzelf ontwikkelde webshopsoftware aangepast en sterk uitgebreid zodat het voldoet aan de wensen van de opdrachtgever.

Zo kunnen klanten losse wasbeurten kopen, maar ook abonnementen voor een door de klant zelf te bepalen periode en ingangsdatum. Bovendien kan men online een prepaid waspas aanschaffen, opwaarderen of de transacties op de prepaid kaart bekijken.

De verkochte losse wasbeurten, abonnementen of prepaid waspas worden automatisch direct na ontvangst van de betaling (via iDeal of PayPal kan men betalen) via email uitgeleverd aan de klant. Men ontvangt dan een afhaalbon (pdf) met daarop een unieke afhaalcode, in de vorm van een QR-code. Deze afhaalbon kan de klant printen en meenemen naar de autowasstraat, maar men kan hem ook op de smartphone laten staan.

De medewerker op de wasstraat leest met een barcodescanner de QR-code in, vanaf papier of rechtstreeks vanaf het beeldscherm van de smartphone. De software herkent de gescande afhaalcode en controleert of de code nog geldig is. De medewerker ziet op zijn scherm precies welk product de klant online heeft aangekocht en kan de wasbeurt leveren.

In geval van een prepaid waspas wordt de waarde van een wasbeurt afgeboekt van het pre-paid saldo en ontvangt de klant per email netjes een bevestiging van zijn transactie.
Uiteraard kan de medewerker op de wasstraat zelf ook online prepaid waspassen en abonnementen verkopen.

Aan het eind van de dag worden alle transacties netjes op een dagstaat verzameld.

Voor de eigenaar van de wasstraten heb ik software gebouwd waarmee hij inzicht krijgt in de transacties die hebben plaatsgevonden op de wasstraten. Men kan o.a. resultaten opvragen per periode, per wasstraat of per marketing-actie (mailing). Maar ook het toevoegen/wijzigen/verwijderen van wasstraat-vestigingen en gebruikers is mogelijk gemaakt.

case study: beheer van vaccinatietrajecten

Als PHP-programmeur ben ik breed inzetbaar. Hieronder vindt u een beknopte beschrijving van één van de door mij uitgevoerde opdrachten.


Project: beheer van vaccinatietrajecten
Opdrachtgever: Een opdrachtgever in de medische branche

Opdracht:
Opdrachtgever voert vaccinatie-programma's uit. Voornamelijk op onderwijsinstellingen, maar ook voor particulieren. Denk daarbij aan vaccinatietrajecten voor Hepatitis B of aan vaccinaties voor reizigers naar exotische bestemmingen waarbij vaccinaties aangeraden worden of verplicht zijn.

Een vaccinatietraject bestaat vaak uit een reeks van vaccinaties gedurende een bepaalde periode, gevolgd door bijvoorbeeld een bloedafname om de titerwaarde te kunnen bepalen.

Opdrachtgever hield voorheen alle vaccinatietrajecten bij middels excel-documenten maar wilde een andere, meer werkbare oplossing. Bovendien wilde opdrachtgever dat het verwerken en administreren van uitgevoerde vaccinaties online zou plaatsvinden omdat men erg vaak op locatie de vaccinaties uitvoerde met meerdere gebruikers.

Uitvoering:
Een uitgebreide database met bijbehorend beheersysteem werd door mij ontworpen op basis van de wensen van de opdrachtgever. Zo werd het mogelijk om vaccinatietrajecten te definiëren, klanten en hun eventuele vestigingen in te voeren en te beheren, assistenten en contactpersonen te beheren enzovoorts.

Per klant of vestiging kunnen vaccinatieprojecten worden gekoppeld waaraan dan weer een aantal cliënten kan worden toegevoegd (handmatig of door middel van het importeren van excel-documenten). Uitgevoerde vaccinaties worden automatisch geregistreerd in het systeem waardoor voor alle gebruikers altijd actueel inzicht is wie wanneer en door wie er is gevaccineerd.

Opdrachtgever kan middels managementlijsten inzicht krijgen in de status van vaccinatieprojecten en gebruikt deze gegevens als basis voor zijn facturatie.

De web-applicatie biedt verder mogelijkheden als het versturen van mailings (gepersonaliseerd en indien gewenst met bijlages) naar cliënten, en beschikt over een nieuwsberichten-systeem om gebruikers in informeren, al of niet gepersonaliseerd.



Een complete en uitgebreide web-applicatie is het resultaat. Voor opdrachtgever een aanzienlijke verbetering van de workflow, minder kans op administratieve fouten en daardoor een structureel betere bedrijfsvoering.

case study: klantbeheer voor online taalcursussen

Als PHP-programmeur ben ik breed inzetbaar. Hieronder vindt u een beknopte beschrijving van één van de door mij uitgevoerde opdrachten.


Project: klantbeheer voor online taalcursussen
Opdrachtgever: addisco.nl

Opdracht:
Opdrachtgever is een bedrijf dat talencursussen geeft (Latijn en Grieks).
Men wilde een systeem waarbij het mogelijk werd ook online talencursussen aan te bieden. Men beschikte al over een website en ook de online cursussen waren al gereed voor gebruik. Wat nog ontbrak was een systeem om de toegang tot de online cursussen te beheren.

Uitvoering:
Een web-applicatie werd door mij ontworpen die onder andere de volgende mogelijkheden biedt:
  • Opdrachtgever kan cursussen definiëren, een aanmeldlinks genereren waarmee cursisten zichzelf kunnen aanmelden voor een cursus.
  • Hij kan beheren welke cursisten toegang hebben tot welke online cursussen en gedurende welke periode die toegang geldig is.
  • Cursisten kunnen inloggen om een online-cursus te openen. Er is ervoor gezorgd dat een cursist niet vaker dan 1x tegelijk ingelogd kan zijn en een cursist krijgt alleen toegang binnen de door opdrachtgever gedefinieerde periode.
  • De front-end pagina's voor de cursisten zijn meertalig (Nederlandstalig en Engelstalig).


Met deze web-app heeft opdrachtgever haar dienstenpakket uitgebreid met online cursussen en zijn er mogelijkheden geopend voor verdere uitbreiding van de bedrijfsactiviteiten.

maandag 24 maart 2014

css-tip: steeds de laatste css-versie aanbieden met php

Tijdens het wijzigen van de opmaak van een website zal je als designer geregeld de css-code aanpassen. En je weet ook dat je, om de nieuwe css te laten renderen, de webpagina met de F5-toets (windows) moet verversen. Doe je dat niet, dan gebruikt de browser nog de oude css-code omdat die nog in de cache staat.

Je weet dus ook dat wanneer je je css-bestand gewijzigd hebt en op je webserver geplaatst, dat dan de bezoekers van je website in principe ook niet meteen de nieuwe css-code krijgt, en dus geen bijgewerkte opmaak. En dat is niet wat je wilt natuurlijk.

Er zijn verschillende oplossingen. De meest voor de hand liggende (en beste)  oplossing is om de naam van je css-bestand te wijzigen zodra je wijzigingen in je css-bestand heb aangebracht. De browsercache van de bezoekers kent die nieuwe naam niet en zal dus het nieuwe bestand downloaden en renderen.
Alleen soms is dat een beetje gedoe, zeker als je regelmatig kleine wijzigingen aanbrengt.

Er is een simpel trucje om niet steeds de bestandsnaam te hoeven wijzigen. Wanneer je in je html de aanroep naar het css-bestand uitbreidt met een klein stukje PHP-code dan wordt altijd de meest recente css-versie van de server gehaald en gerenderd.

De oorspronkelijke aanroep is bijvoorbeeld:
<link rel="stylesheet" type="text/css" href="css/mijncss.css" media="screen, projection">

Wijzig deze aanroep door dit kleine stukje code in te voegen: ?v=<?php echo time()?>

De nieuwe aanroep wordt dus:
<link rel="stylesheet" type="text/css" href="css/paqqa2.css?v=<?php echo time()?>" media="screen, projection">

Nu is de url van het css-bestand bij elke pagina-aanroep anders, en dus krijgt de bezoeker elke pagina-aanroep het meest recente css-bestand te zien.

Let op: dit is slechts een trucje wat handig is als je in je 'live' website aan het werken bent en je je bezoekers gelijk het aangepaste css-bestand wil aanbieden. Nadeel is natuurlijk dat bij elke pagina-aanroep het css-bestand geladen moeten worden en dat vertraagt de weergave van je website, en het kost onnodige bandbreedte.

Dus zodra je wijzigingen definitief zijn: wijzig de naam van je css-bestand alsnog daadwerkelijk (en je aanroep in de html natuurlijk ook). Op die manier zal geen enkele gebruiker nog de oude css te zien krijgen.