Työnäytteitä

Referensseinä joitakin tekemiämme projekteja (ei NDA-projektit), joista olemme erityisen ylpeitä. Projekteissa on toteutettu jotakin normaaleista tai tavanomaisista projekteista poikkeavaa, mistä voit lukea alta enemmän.

Kuvaus

Habinator App julkaistiin Apple Storessa ja Google Playssä muutama kuukausi sitten. Kännykkäsovellus "Digitaalinen Terveysavustaja ja Life-Coach" käyttäjän saavuttaa henkilökohtaisia maaleja ja tehdä elämäntapamuutoksia - joka on ainut keino tulla oikeasti terveeksi. App kehitettiin React Native teknologialla. Backendinä on Drupal 8, jonka tukena Google Firebase, sosiaalisen median rajapintoja nopeaan kirjautumiseen, sekä ulkoinen sähköpostipalvelu tehokkaaseen markkinointiin.

Projekti tehtiin käyttäen parhaita käytäntöjä ja työkaluja kuten Fastlane:a, jonka mahdollistaa julkaisun (release) tekemisen ja sen lataamisen molempiin kauppoihin minuuteissa - yhdellä komennolla. Lisäksi konfiguroimme optimoidun TIP Solutionsin hosting-pakan (stack) AWS CloudFrontin kanssa, jotta voidaan palvella käyttäjiä maailmanlaajuisesti nopealla data-liikenteellä. 

Hyödyt

Koska Drupal 8.7:ssa on JSON API ja REST-moduulit coressa, datan pyyntö (GET) ja lähettäminen (POST) sovelluksen ja backendin välillä ei voisi olla helpompaa. Lisäksi uuden rajapinnan luonti kestää noin kaksi minuuttia.

Autentikaatio ja datan salaus on tehty OAUTH -moduulilla (ja sen riippuvuuksilla), joka anonymisoi käyttäjän ( 

Authentication and data encryption is done with an OAUTH module and it's dependencies which even anonymize the user (yleinen tietosuoja-asetus, GDPR-vaatimus).

Coren oletus taksonomia,- entity reference,- ja node systeemit ovat tunnetusti erittäin laadukas työkalu data-arkkitehtuurin tekoon, jota voidaan käyttää hyväksi kuten normaaleissakin projekteissa. Lisäetuna käyttämällä Drupalia sisältöä voidaan luoda käyttäen WYSIWYG-editoria ja muita normaaleja sisällönluonti työkaluja, jonka jälkeen dataa voidaan käyttää Appissa. Käännökset ja monikielisyys on helppo rakentaa kuten aina.

Haasteet

Backendin rakentaminen vaati kuuden custom-moduulin rakentamista, joka vei noin kuukauden. Näitä olivat muun muassa sosiaalisen kirjautumisen ja käyttäjätilin luonti käyttäen Twitteriä ja Facebookkia. Drupal yhteisön push-notifikaatio moduulit eivät myöskään käynyt meille, mutta löysimme ilmaisen Firebase PHP -kirjaston, jota käyttäen loimme täydellisen notifikaatio-koneiston. Lisäksi tietoturvatoimet vaativat hieman lisätöitä, koska emme anna App-käyttäjien kirjautua sivustolle.

Yhteenveto

Ihmiset ovat kyselleet, että sopiiko Drupal 8 mobiilisovelluksen backendiksi?

Me olimme myös skeptisia asian suhteen ja emme olisi koskaan suositelleet Drupalin 7. versiota, mutta versio 8 on täysin eri järjestelmä. Yhteisön dokumentaatio mobiili-appin kehityksestä antaa esimakua.

Vastaus näyttää olevan "kyllä, se on erittäin sopiva" - jopa tehokkuuden ja nopeuden alueella. Yleinen luulo on, että "Drupal on hidas", mutta ihmiset eivät käsitä, että Drupal on vain PHP-koodia, joka käyttää tietokantaa ja on olemassa sovelluksia kuten Redis, joka tekee siitä erittäin nopean, jos sivusto on rakennnettu oikein.

Kuvaus

Saatuamme valmiiksi Kylpylähotelli Kunnopaikkan verkkosivun rakensimme siihen verkkokaupan käyttäen Drupal Commercia, joka on optimaalinen ratkaisu monimutkaisille nettikaupoille. Hotelli käyttää Hotellinx ERP:iä hallinnoimaan kaikki huonevaraukset, myynnin, myytävien pakettien kuvaukset jne. Haluttu tila henkilökunnalle olisi, että he voisivat myytäviä huoneita ja tarjouksia ainoastaan Hotellinxissä ja nämä "paketit" ilmestyisivät kauppaan automaattisesti myytäväksi. Julkaisimme osasta teknistä toteutusta artikkelisarjan muille Drupal-ammattilaisille.

Myytävät "paketit" eli tarjoukset olisi mahdollista rajoittaa ostettavaksi vain kampanjakoodilla tai niihin pitäisi voida laittaa muita kriteerejä (esimerkiksi ajanjakso tai täsmällinen määrä öitä). Pakettien pitäisi lisäksi tukea monikielisyyttä kansainväliselle myynnille.

Etuna järjestelmässä olisi, että he voisivat itse hallita ja päivittää huoneita, sekä tehdä tarjouksia myyntiin ilman kolmannen osapuolen apua. Lisäksi online myyjät (kuten booking.com) ottavat noin 10-25% palkkion kaikesta myynnistä! Lisäetuna he voivat luoda tarjouspaketteja, jotka pitää maksaa välittömästi verkkokaupassa tai kun asiakas kirjautuu sisään hotelliin. Näin rahat saadaan nopeammin (vaikka asiakas jättää tulematta paikalle).

 

Hotellinx ERP and Drupal Commerce as webstore

 

 

Seuraava päivitys tulee sisältämään ylimääräisen askeleen varausprosessiin, jossa asiakas voi ostaa lisäpalveluita - kuten shampanjaa tai varata hieronnan - varaukseensa. Tavoitteena ei ole pelkästään lisätä kokonaismyyntiä, vaan tehdä varauksen hallinta helpommaksi henkilökunnalle ja tarjota asiakkaille parempaa palvelua.

Yhteenveto

Verkkokauppa on täysin toiminnassa ja ilman minkäälaista lisämarkkinointia varauksia on tullut ensimmäisestä päivästä lähtien. Hotelli on varattu täyteen useimpina päivinä viikosta, mutta onneksi siihen on rakennettu bufferi, joka rajoittaa kapasiteetin ylimyynnin (tai mahdollisesti jätetään tilaa odottamattomille asiakkaille.

Bonuksena myyntihenkilökunnalle optimoimme sähköposti flown ja varauksenhallinnan tehokkaammaksi.

Kuvaus

Kunnonpaikka on yli sata henkilö työllistävä hyvinvointikeskus, joka tarjoaa laajan valikoiman palveluja kuten kuntoutusta, kokoustiloja yrityksille, ravintoloita ja monia urheilumahdollisuuksia. Uuden verkkosivuston tarve oli ollut jo jonkin aikaa, koska entinen julkaisujärjestelmä ei tarjonnut enää nykypäivän tarpeita ja moniin muokkaustarpeisiin tarvittiin palveluntarjoajan avustusta. Toisin sanoen entinen sisällönhallintajärjestelmä (CMS) ei ollut tarpeeksi joustavasti konfiguroitavissa itse asiakkaan puolelta. CMS:ien vertailun jälkeen Kunnonpaikka valitsi Drupal-alustan, koska joustavuus mm. rooleissa ja käyttöoikeuksissa, sekä monikielisyydessä on edellä esimerkiksi Wordressiä.

Kunnonpaikalla on oma graafinen ohjeistus (styleguide) ja käyttäen entistä sivustoa lähtökohtana laadittiin kohdeyleisölle sopiva, hieman modernisoitu layout. Koska järjestelmän pitää palvella kaikkia kylpylähotellin osastoja, jotka tarjoaa suuren määrän erilaisia sivuston osia (kuten eri värimaailmalla toteutettu kuntoutusosio) käytettiin apuna Panelizeria. Tällöin ylläpitäjä-roolilla toimivat käyttäjät voivat itse klikkailla kasaan toisistaan poikkeavia sivuja ja näyttää vierailijalla vaikkapa eri nostoja riippuen kontekstista.

Sivusto käyttää hyväksi ajastustoimintoja mm. viikoittaisten lounasmenujen oikeanaikaiseen julkaisuun. Tällöin menut voidaan laatia valmiiksi jo edellisellä viikolla vaikka itse kokin toimesta (jolla ainoastaan on oikeus muokata listoja) ja ilman edellistä kokemusta sisällönhallinnasta muokkaaminen on ollut "yllättävän helppoa".

Eniten työtä projektissa vaativat kaksi erilaista kalenteria, koska etusivun kuukausikalenteri ja liikuntakalenteri ovat sivuston eniten vierailtuja sivuja. Ja Drupal yhteisö ei rakennushetkellä tarjonnut valmista moduulia kaikkeen haluttuun toiminnallisuuteen. Mutta kuten aina ratkaisu löytyi käyttäen Views + Exposed filter + Calendar + Quicktabs moduuleita, sekä hieman Javascriptiä.

Yhteenveto

Suurin haaste projektissa oli tarjota palvelut kaikille Kunnonpaikan osapuolille, jotka sivustoa käyttävät ja jossa he palveluitaan tarjoavat. Tämä tarkoittaa, että sivustoa päivittävät eri tasoiset ja eri tehtävissä toimivat henkilöt. Joskus asia on ratkaistu käyttämällä multisivustoja, jolloin yrityksen eri osastoilla on täysin eri verkkosivustot. Tai yrityksessä on 1-2-henkilöä, jotka päivittävät sivustoa muiden puolesta, joka johtaa turhiin sähköpostikeskusteluihin ja ajanhukkaan. Vaikka Drupal-alustaa on kritsoitu huonosta editointikokemuksesta, niin Drupal 8 näyttäisi osaltaan ratkaisseen tämän ongelman.

Kuvaus

XRG Simulation on Hampurilainen yritys, joka tarjoaa ohjelmistoja mallintamisen ja simulaatiohin. Heillä on tuotteita moniin erilaisiin teollisuuden aloihin kuten voimalaitoksiin, lentokoneiden kehitykseen ja autoteollisuuteen. Uuden sisällönhallintajärjestelmän tarkoitus on toimia markkinointityökaluna ja tarjoja informaatiota heidän asiakkailleen.

Brändäys ja design -materiaalit XRG oli toteuttnut valmiiksi yhdessä E D W A R D T O N Y :n kanssa. Meidän työmme oli rakentaa suunnitelman mukainen verkkosivu ja tehdä migraatio entisestä järjestelmästä.

Uuden sivuston rakentaminen oli perus CMS-projekti, jossa on monikielisyyden tuki, responsiivisyys kaikille laitteille, sekä perus hakukoneoptimointi. Rakensimme sivuston käyttäen Paragraphs-moduulia, joka ratkaisee ongelman, että sivuston loppukäyttäjä voi rikkoa sivuston muotoilun (mobiililaitteille) lisätessään sisältöä WYSIWYG-editorin kautta. Käyttäen Paragraphia ja Responsive image -moduulia sivusto osaa aina mukauttaa lisätyn sisällön optimoidusti oikein.

Yhteenveto

Isoin yksittäinen asia sivustolle oli toteuttaa etusivun karuselli, jossa esitellään XRG:n tarjoamat tuotteet ja saada se toimimaan fiksusti kaikilla laitteilla. Kirjoitimme asiasta blogipostin, koska toteutuksen vaativuus tuli yllätyksenä.

Olemme erittäin tyytyväisiä Paragraph-moduulin toimintaan, jota käytämme nyt kaikissa projekteissamme ja josta olemme saanut vain positiivista palautetta sivustojen loppukäyttäjiltä. Moduuli näyttää ratkaisevan "haasteen", että kaikki sisältö lisätään WYSIWYG editorin läpi yhteen tai useampaan tekstikenttään. Investointi kirjoittaa hieman enemmän CSS (tai SASS/LESS) koodia ennen sivuston julkaisua on paljon parempi ratkaisu kuin että loppukäyttäjä taistelee aina kerta lisätessään uutta sisältöä tai että sivuston CSS-koodia joudutaan optimoimaan sivuston julkaisun jälkeen.

Projekti on toteutettu käyttäen Drupalin composer mallia ja Config split -moduulia, jotka yhdessä käytettynä tarjoavat sivuston nopean ja luotettavan jatkokehityksen.

Kuvaus

Finn-US ja Halmari ovat yrityksiä, jonka pääasiallinen liiketoiminta on lähettää rahtia (kuten autoja, moottoripyöriä ja merikontteja) USA:sta Suomeen ja maailmalle. Koska liiketoiminta on jaettu kahteen eri yritykseen, oli tarve kahdelle eri sivustolle. Ensin toteutettiin finn-us.com, josta saatiin nopeasti kloonattua toinen samaa konseptia käyttävä sivusto.

Projektissa päivitettiin entinen verkkosivusto Drupal-alustalle ja uudistettiin ulkonäköä, sekä tehtiin migraatiot custom Wordpress plugineille. Haastavimpana työtä oli sivustolla toimiva rahtilaskuri, jolla voi laskea tilaus- ja lähetyskustannukset, jonka jälkeen voi välittömästi siirtyä tilaamaan haluttua palvelua.

Toinen ohjelmointityö oli tehdä varasto-osoitteen luominen Magaya-järjestelmään, jolla käyttäjä voi seurata muun muassa omien lähetyksiensä edistämistä. Tässä käytettiin Webform moduulia, jonka rinnalle ohjelmoitiin custom-moduuli.

Designissa kiinnitettiin huomiota erityisesti toimivuuteen kaikilla laitteilla kuten tableteilla, sekä että sivusto olisi erittäin helppokäyttöinen ja tuttu vierailijoille.

TIP Solutions toteutti projektin kokonaisuudessaan.

Yhteenveto

Kehitystyössä eniten työtunteja vaati custom-moduulien porttaus ja sivuston käytettävyyden optimoiminen kohdeyleisölle käyttäjäystävälliseksi. Välittömästi sivun julkistuksen jälkeen Finn-US:n asiakkailta on tullut erittäin positiivistä palautetta tilausprosessin toimivuudesta.

Sivusto toteutettiin monikieliseksi, johon voidaan myöhemmin helposti lisätä muita kieliä, kun liiketoiminta-alueet laajenevat.

Hosting-ratkaisuna on TIP Solutionsin käyttämä default Drupal-optimoitu pakka.