Kalenterin luominen ohjelmistolle, joka toimii useilla aloilla

Avatar

Aloitimme yksinkertaisen ratkaisun kalenteriin. Varaa päivämäärä, ja se ei ole käytettävissä, kun olet tehnyt sen. Ymmärsin kuitenkin nopeasti, että kaikki kymmenen ensimmäistä asiakastamme halusivat jotain monimutkaisempaa.

Yrityksillä on erityisiä tarpeita ajan suhteen. Saimme esimerkiksi kyselyitä, kuten “Voinko saada asiakkaan varaamaan 3 päivää kerralla ja tehdä sen toistuvaksi joka kuukausi”. Yrityksen omistajana vastasin “tietysti”, mutta kehittäjänä pääni pyörii. 

Lopulta muotoilimme koko kalenterimme ja saatavuusrakenteemme. Tässä se on murtunut paloiksi.

Ydinrakenne

Meillä on kaksi asiaa, jotka yhdessä muodostavat kalenteriratkaisumme; Lähetykset ja tapahtumakokonaisuudet. Lähetyksissä on kaikki lähetystiedot, kuten varausmaksun tiedot, hinta ja muut asiaan liittyvät tiedot. Tapahtumayksiköt sisältävät kaiken aikaan liittyvän tiedon.

Tapahtumat tarvitsevat omat tietokokonaisuutensa. Jokaisella ratkaisumme kautta tehdyllä lähetyksellä tai varauksella on oma “kokonaisuus”, joka tallentaa kaikki tiedot. Alun perin sisällytin aikatiedot kyseiseen kokonaisuuteen, mutta myöhemmin tajusin, että sitä ei voida skaalata. Tajusin, että tarvitaan erikoistunut tietokokonaisuus, joka hallitsee tapahtumiin liittyvät tiedot.

Tapahtumapaikat ovat hyvin yksinkertaisia

Tietokokonaisuuden tavoitteena on erottaa päivämäärätiedot muista tiedoista, mutta silti linkittää se pitääkseen yhtenäisenä kokonaisuutena. Tässä on tietoja, jotka tallennamme joka kerta tapahtumiin. 

Ohjelmallinen nimi – Tätä käytetään etsimään yksikköä
Alkaen – Toisaalta  – Tapahtuman tallentaminen aikaleiman muodossa
linkistä lähettämiseen  – Linkki siihen liittyviin lähetysohjeisiin
–  Tämän avulla käyttäjä voi lisätä muistiinpanoja jokaiseen tapahtumaan
Tiimin jäsen  – Vaikka ei aina Tarvittaessa lisäsimme tiimin jäsenkentän, jonka voit määrittää tiimin jäsenelle, joka vastaa tietystä tapahtumasta.


Käyttöliittymän rakentaminen on vaikeaa

Koska kalenteritoiminnot muuttuvat yhä monimutkaisemmiksi, käyttöliittymän rakentaminen sen tukemiseksi on erittäin vaikeaa.

Kalenteri muodonmuodostajana ja chat-rakentajana

Tämä osoittautui koko prosessin monimutkaisimmaksi osaksi. Tämä tarkoittaa, että kun kalenteri on näkyvissä yritykselle ja rakennat lomaketta. Meillä oli niin monenlaisia ​​asiakkaita, että tarvitsemme niin monia erilaisia ​​ominaisuuksia tuettavaksi pitäen sen käytön yksinkertaisena. Tukemme ominaisuudet ovat seuraavat:

Usean päivämäärän varaukset
Meidän piti tukea usean päivämäärän varaamista. Esimerkiksi henkilö haluaa varata catering kahdelle tapahtumalle kerralla. Rakensin tämän toistamalla kalenterin asettamalla sen vain taulukkoon jsoniin niin monta kertaa, että käyttäjä on antanut sen varata moninkertaisesti.

Valitse ajanjakso
Jotkut yritykset halusivat myös ajanjakson valitsimen, joten tarjoamme tämän vaihtoehdon kalenterityyppinä. Ensimmäinen napsautus valitsee ensimmäisen päivämäärän ja toinen napsauttaa toista. Emme sallineet aikavarauksia ajanjaksolla.

Toistuvat tapahtumat
Toistuvat tapahtumat ovat tapahtumia, jotka toistuvat korkeintaan 6 kuukautta. Toistuva aika voidaan asettaa viikoittain tai kuukausittain.

Slot pituus
Annamme sinun asettaa aikavälin pituus kullekin varaustyypille, jota hallinnoit lomakkeessa. Joten ratkaisujesi perusteella voit varata 30 ja 90 minuuttia ja nähdä saatavuuden tämän perusteella. Kirjoitin katkelman sisältävän blogiviestin siitä, kuinka kalenterien aikavälejä luodaan JavaScriptiin,  jos olet kiinnostunut siitä lisää.

Varhaisin varauspäivämäärä
Jotkut asiakkaistamme eivät halua sallia seuraavien päivien varauksia, ja siksi 

dynaaminen hinnoittelu.
Tarkoitan dynaamisella hinnoittelulla käyttäjän mahdollisuutta asettaa mikä tahansa päivä tai toistuva viikonpäivä ja antaa numeerinen tai prosenttimääräinen nousu tai lasku kyseisenä päivänä. Esimerkiksi jos asiakas haluaa varata maanantaina, hän voi asettaa hinnan -20 tai -20%. Annamme myös ulkoisen kirjaston laajennuksen ja tarjoamme dynaamisen hinnoittelun, joka palauttaa arvon välillä 0 – 1.

Rakennamme tämän katkelmaan

Kun aloin lomakkeen etuosan rakentamisen, törmäsin tämän vaiheen. Tämä tarkoittaa sitä, mitä lomakkeen loppukäyttäjälle näytetään. Halusin pitää asiat yksinkertaisina, mikä tarkoittaa, ettei ulkoisia kirjastoja ole paikallaan. Joku kutsui minut siitä hulluksi. Logiikani oli rakentaa kaikki vanilja javascriptiin kolmen asian varmistamiseksi; täysi selaimen yhteensopivuus, tieto asioiden toiminnasta ja varmistaminen, ettei meidän tarvitse ladata ulkoisia kirjastoja.

Lopuksi rakensin kalenterin vanilja javascript-kalenterin perusteella täältä:  https : // github . com / vanilja – kalenteri / vanilja – kalenteri . Shoutout on  https : // GitHub. com / bennias minulle etuajan antamiseksi. Versiomme alkoi samasta logiikasta, mutta on nyt laajentunut omaksi petokseen. Toivottavasti minulla on aikaa osallistua takaisin lähtökohtaan.

Kaikkia vaiheen 1 logiikoita on mahdollista selata tässä kalenterissa. Meillä on kalenteriin 3 tyyppisiä pääkäyttöliittymiä; kalenteri, kalenteri aikavalitsimella ja etäisyyskeräimellä.

Tausta ja tapahtumien hallinta

Aloitimme FullCalendaren käytöstä taustallamme, koska se on testattu ja tuettu ratkaisu. https : // täysi kalenteri . io / . Muokkasimme tätä ratkaisuamme sopivaksi. Fullcalendar on loistava ratkaisu taustaohjelmiin. Meillämme on liiketoiminnan edessä oleva johdon osa. 

Osien koottaminen

Kaikkien osien ja logiikan vetäminen yhteen, kun sitä ei ollut suunniteltu get-go-palvelusta, oli haaste ja kaikki yhdessä luultavasti yksi monimutkaisimmista asioista, joita olen rakentanut. Nyt voin kuitenkin sanoa varmasti, että olen rakentanut kalenterin ja ajanhallintajärjestelmän, joka ei ime. Tämä kaikki perustuu myös GDPR-ystävällisiin muotoihimme, jotta EU-asiakkaamme voivat hengittää vapaasti.

Tarkista se kirjautumalla sisään ja pelaamalla täällä.

Jos haluat kopioida teoksen edelleen tai saada kommentteja kalenterilogiikkaasi, lähetä minulle kommentti tai yhteydenottolomakepyyntö ja autan mielelläni sinua jatkossa.

Leave a Comment

Your email address will not be published. Required fields are marked *

Add Comment *

Name *

Email *

Website *

Pysy kärryillä uusista ideoista markkinoinnin alalla