Dev Blog 21.4.2020

Vaikka korona epidemia jyllää ja pistää jäihin kaikki tapahtumat, niin se ei tarkoita että kehitystyö loppuisi. ICT-vastaavan hommissa on se etu/haitta että sisällä istuminen vain parantaa työmahdollisuuksia.

Tässä artikkelissa käydään läpi mitä kaikkea uutta tursajaisten mobiili ohjelma pitää sisällään tulevassa versio 1.1 julkaisussaan. Tämä artikkeli on dokumentaatiota minulle sekä samalla yhdistykselle.

Tietokanta muutokset.

Ensimmäisen version tietokanta oli toimiva mutta siinä käytettiin liian paljon epäsuoraan muotoon tallennettua dataa kokemuksen puutteen takia.

Tämä liittyi siihen miten tiimien pisteiden relaatio tallennettiin tietokantaan JSON formaatilla, mikä tarkoitti sitä että osaan tiedoista pääsi käsiksi vain kahdella eri query kutsulla.

Uudessa tietokannassa esitellään varsin yleinen konsepti eli relaatiopöytien käyttö. Tämä oli alussa minulle tuntematon tapa mutta osoittautuu varsin käytännölliseksi ja vähentää palvelin puolen viivettä sivun lataamisessa noin 43%

Muutoksen takia kaikki sivut piti käydä läpi ja päivittää uuteen tietokantaan. Tämä lyhensi koodin pituutta useilla sadoilla riveillä.

Visuaalinen uudistus

Versio 1.0 visuaalinen ilme oli suoraan 2000-luvun alun nettisivuilta. Tämän vuoksi päätin antaa sille modernin navigointivalikon ja käyttää merkittävästi enemmän kuvakkeita. Tässä on pari vertailu kuvaa uudesta visuaalisesta ilmeestä

Ilmoitus järjestelmä

Lisää ilmoituksia! Ohjelma ei olisi nykyaikainen, ellei se hukuttaisi sinua ilmoituksiin. Tämän järjestelmän tarkoituksena ei ole hukuttaa vaan saavuttaa kilpailijat, jos esimerkiksi rastinpitäjillä tai meillä tapahtuman järjestäjillä on asiaa mikä pitää välittää kaikille osallistujille. Rastinpitäjät voivat välittää tietoa vain niille, jotka ovat käyneet heidän rastillaan mikä mahdollistaa esim. Hukkuneiden tavaroiden ilmoittamisesta nopeasti.

Tässä on osa tietokantaa, joka on vastuussa ilmoitusten lähettämisestä.

PHP serverin ominaisuus on se, että se suorittaa koodia vain silloin kun käyttäjä lataa sivua. Tämä voi muuttua, kun opin lisää miten PHP toimii. Mutta tällä hetkellä järkevin tapa on tehdä seuraavanlainen tietokanta kysely, joka löytää sessioniin kytketyn kirjautumis tunnuksen avulla tiimin vihjeet ja tallentaa sen omaan sessio muuttujaan.

Keksejä!

Cookies eli keksit, joita kaikki nettisivut käyttävät ja joiden tietosuoja selostuksia olet kyllästynyt hyväksymään, saapuu myös meidän sivuillemme.

Keksejä käytetään automaattiseen sisäänkirjautumiseen sekä muihin pikku asioihin mitä voi tallentaa käyttäjän laitteelle suoraan. Kekseissä on muutamia sisäänrakennettuja ominaisuuksia, jotka tekevät niistä turvallisen vaihtoehdon tallentaa sisäänkirjautumisen tiedot.

Yksi tärkeimmistä kulkee nimellä SameSite. Tämä nimensä mukaisesti varmistaa että, vain se sivu millä se on annettu, pääsee käsiksi siihen. JavaScript mahdollisti tämän helposti mutta serverin PHP versio oli suhteellisen vanha ja aiheutti siksi ongelmia, jos haluttiin lisätä keksi palvelin puolelta.

PHP versio ei tukenut natiivisti SameSite asetuksen asettamista mutta sen pystyi lisämään path asetuksen perään.

Google reCAPTCHA

Tämä ominaisuus on ehkä vähän ylilyönti mutta toimi hyvänä harjoitteena, joten halusin toteuttaa myös tämän. Googlen ”I’m not a robot” widgetin saa käyttöön, kun vierailee googlen sivuilla koskien botin estoa. Rekisteröi oman nettisivunsa ja tätä kautta saa avaimet, jotka laitetaan sekä palvelin että asiakas puolelle. Kun käyttäjä tekee en ole robotti varmistuksen hän saa googlen palvelimelta avaimen, jonka hän kirjautuessaan lähettää HTO:n palvelimelle.

Kun meidän palvelimemme saa tämän avaimen, me lähetämme sen googlelle mukanamme oma salainen avain, jolla todistamme googlelle olevamme varmistava osapuoli. Koodi näyttää tältä:

Salainen avain on sutattuna ja client avain heti tämän alla

Muut muutokset

Uusien isojen muutosten myötä muuttui myös paljon pieniä asioita, johon vaikutti teidän palautteenne! Tässä lista muutoksista.

Tiimi sivut

  • Tiimin nimen maksimi pituutta pidennettiin 15 -> 25 merkkiin.
  • Vihje katoaa listalta sen jälkeen, kun siihen on annettu pisteet.
  • Tiimin nimi kortin voi kääntää näpäyttämällä sitä, jolloin pystyy nähdä oman ID numeronsa.
  • Sivuilta löytyy nyt suora palautekanava tapahtumaa koskien.

Rastinpitäjä sivut

  • Vanha id katoaa, kun valitsee haku kentän.
  • Siirrettiin tiimien maksimi pisteet 100 -> 1000 pisteeseen.
  • Rastinpitäjät näkevät nyt kuinka paljon tiimejä on käynyt/käymättä heidän rastillaan.

Tässä olivat kaikki tämänhetkiset muutokset. Toivottavasti näen teidät kaikki Tursajaisissa syksyllä!

Kommentoi

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *