Tiedustelen tässä tällaista yhdistettyä kauppa ja yksinkertaista pankki ohjelmaa. Taustalla on tarve saada erään ulkomaisen sisäoppilaitoksen oppilaiden rahankäyttö hallintaan tai vielä parempi, jos heillä ei ole tarvetta käyttää käteistä ollenkaan.
Olen koettanut tutkailla netistä millaisia valmiita sovelluksia löytyisi mutta mitään järkevää ei ole löytynyt. Itse hallitsen ainoastaan html:n, css:n, mysql:n ja php:n, joten periaatteessa pystyisin tuollaisen itse koodata, mutta taidoillani se veisi aikaa eikä lopputulos varmasti olisi kovin pätevä, kun koneille pitäisi asentaa WAMP ja ajaa sitä nettiselainten yli (Sivuhuomautuksena tämän ohjelman ei haluta toimivan netin yli).
Koulu toimii sillä tavoin, että oppilaiden vanhemmat maksavat koulun tilille tietyn summan rahaa lasten koko lukukauden "viikkorahaksi", joka jaetaan oppilaille tasaisesti kerran viikossa. Tämän rahan he sitten käytännössä käyttävät koulun "tuck shop":ssa eikä heillä ole muualla tarvetta käteiselle. Koulu sijaitsee Afrikassa ja jos kukaan tietää mitään Afrikasta, niin silloin tiedätte, että tässä käteisen kanssa pelaamisessa on monta ongelmaa missä voi tapahtua väärinkäytöksiä.
Haluaisimme siis systeemin, joka pitää kirjaa sekä oppilaiden käytettävissä olevista viikkorahoista, että koko tuck shopin inventaarion. Viikottain joku hallintohenkilökunnasta voisi nappia painamalla lisätä oppilaille käyttöön heidän viikkorahansa (jokaisella oppilaalla voi olla eri määrä viikkorahaa eli jokaisen oppilaan viikottaisen rahan määrä pitää olla helposti muutettavissa) ja hänellä olisi myös valta yksittäin lisätä tai poistaa tätä rahaa oppilaan "tililtä". Käytännössä ohjelma olisi siis pieni koulun sisäinen pankki-sovellus. Jokaisella oppilaalla olisi heidän oma koulusta annettu "henkilökortti", jossa on kuva, nimi ja viivakoodi.
Koko kaupan varastoa ylläpidetään tämän systeemin avulla eli ohjelma tietää paljonko kaupassa on mitäkin tuotteita ja paljonko ne maksavat. Ja tietenkin niitä voi oikean kaupan tavoin hallita eli lisätä uusia tuotteita ja muokata hintoja. Käytännössä ohjelma olisi siis myös yksinkertainen kauppa-sovellus, joka on linkitetty yhteen pankki-ominaisuuden kanssa. Oppilaat voivat milloin vain mennä kauppaan ostamaan tuotteita, jolloin heille annetaan haluamansa tuotteet ja ne vedetään viivakoodin läpi. Sen jälkeen oppilas antaa korttinsa ja sen viivakoodi luetaan, jolloin ohjelma automaattisesti vähentää ostoksen summan oppilaan "viikkoraha tililtä" tai ilmoittaa, ettei tilillä ole katetta.
Tottakai kaikki kaupan varasto-tapahtumat, ostokset ja oppilaiden "viikkorahatilillä" tapahtuvat muutokset kirjataan muistiin, että niitä voi tarkastalle myöhemmin jos on tarvetta. Käytännössä hallintorakennuksessa tulisi siis olemaan tietokone, jossa on tämä ohjelma sisällä ja samoin kaupassa on kolme konetta, joissa ohjelma on sisällä. Nämä olisi yhdistetty toisiinsa koulun sisäisen verkon kautta. Ja tietenkin tällä hallintohenkilöllä on valtuudet hallita oppilaiden viikkorahoja, mutta ei kaupan puolta, ja kaupassa taas tavallisilla myyjillä on oikeudet myydä tuotteita ja muokata ostoksia, mutta ei muuten hallita oppilaiden viikkorahoja, ja sitten kaupassa on kolmas kone kauppapäällikölle, jolla on oikeudet hallita varastoa, tehdä inventaario yms, mutta ei käsittele oppilaiden ostoksia eikä heidän henkilökohtaista viikkorahatiliään.
Tämän ohjelman pitäisi olla suhteellisen yksinkertainen käyttää, ei mitään ylimääräisiä klikkeitä ja hienouksia, vain ne oikeasti tarvittavat ominaisuudet, jotta yksinkertainen käyttäjä ei mene sekaisin liian paljoista ominaisuuksista. Ohjelma pitäisi olla englanninkielinen ja mieluusti tehty niin, että sen pystyisi pienellä käännös-vaivalla saada monikieleksi. Monikielisyyttä ei tarvitse mitenkään hienosti koodata sisään niin, että käännös tapahtuisi front end puolella. Jos vaikka koodin sisällä olisi joku käännöstiedosto (niin kuin esim Joomla on tehty), jossa on kaikki ohjelman sisältämä sanasto yhdessä paikassa, ja ohjelman saa kaksikieliseksi lisäämällä toisen tällaisen tiedoston eri kielelle käännettynä, niin se olisi riittävä.
Onko teillä ideaa miten etenen tämän kanssa? Onko netistä löydettävissä mitään tämän kaltaista ohjelmaa? Tämän vaatimukset on niin spesiaalit, että epäilen.. Entä onko tuota mitään järkeä lähteä toteuttamaan html:n, php:n ja mysql:n avulla käyttäen WAMP:ia ja nettiselainta? Todennäköisesti lopputuloksesta tulisi jollain tavalla purkkaratkaisu, varsinkin minun kyvyillä ja muutenkin WAMP ja nettiselain tällaiseen kuulostaa melko typerältä ja hankalalta.
Paljonkohan tällaisen teetättäminen jollakulla maksaisi? Paljonko esim itse veloittaisitte, jos lähtisitte tällaista tekemään asiakkaalle? En välttämättä ole etsimässä ilmaista ratkaisua tämän toteuttamiseen, mutta ei tähän tietenkään ihan kohtuuttomia summia aleta käyttämään.
AkeMake kirjoitti:
(Sivuhuomautuksena tämän ohjelman ei haluta toimivan netin yli).
Jonkinlainen "off-site" varmistus siinä silti varmastikin olisi syytä olla että jos kone katoaa, varastetaan, tms., niin kaikkien tilien saldoja ei hukattaisi siinä samassa.
Aina kun ollaan tekemisissä rahan kanssa (vaikka vain bittirahan), niin väärinkäytösten riskit korostuvat. Ketkä tuota tulisivat käyttämään ja voidaanko ajatella että he ovat 100% luotettavia? Vai onko tarpeen tunnistaa eri käyttäjät ja antaa eri tasoisille käyttäjille erilaisia oikeuksia. Ongelmatapauksissa selvittelyä auttaa myös jos kaikista tapahtumista jää loki (kuka teki mitä ja milloin) jota ei pysty käpistelemään (ainakaan kohtuullisella vaivalla)
Sinänsähän järjestelmä ei ole kovin vaativa, jos tuollaisen tekisin kaupallisena projektina niin hintalappu voisi olla 2000-5000 euroa. Joka siis on kertaluokkia pienempi kuin tyypillisesti tehtävät kaupalliset projektit. Silti voisin kuvitella että ei suomalaisella palkkatasolla järkevää tehdä ainakaan yhdelle koululle. Eri asia olisi jos se tulisi vaikka 100 koulun käyttöön, jolloin tietenkin yksikkökustannus olisi maltillinen.
Annatko sähköpostiosoitteesi niin vinkkaan erään yrityksen myyjälle. Kuulostaa mielenkiintoiselta projektilta.
Sanoit ettei ohjelma saa toimia netin yli ja sitten speksasit ohjelman, jossa neljä eri instanssia keskustelevat toistensa kanssa netin yli.......... Käyttöliittymän toimintaan sillä ei ole niin vaikutusta, onko sovellus selainpohjainen vai standalone.
Haastavuutta lisännee se, että sovellus on menossa Afrikkaan ja debuggaaminen voi mennä vaikeaksi.
Itse näkisin, että lähtisi pyörittämään vaikka node bäkärillä tuollaista. Joku js kirjasto päälle. Pyörisi lokaalisti, mutta joka päivä ajettaisiin kopio nykyisestä tilitilanteesta jonnekin toiselle palvelimelle, jotta niitä pystyy seuraamaan ja backuppaamaan tarvittaessa.
Joku vahva salaus henkilötietoihin ja mikäli on mahdollisuus niin joku RFID tai vastaava tagi pyörittäisi kaupankäyntiä.
Itse en shippaisi Afrikkaan enkä talousalalle muutenkaan mitään kokeellisia räpellyksiä. Se on sitten eri asia, jos tekijä oikeasti tuntee asiansa, mutta tällä hetkellä näyttää päinvastaiselta. Käytettävät teknologiat ovat kuitenkin täysin sivuseikka ja ne speksaa sitten se, joka hommaa lähtee konkreettisesti tekemään.
Kiitos vastauksista!
Grez kirjoitti:
Jonkinlainen "off-site" varmistus siinä silti varmastikin olisi syytä olla että jos kone katoaa, varastetaan, tms., niin kaikkien tilien saldoja ei hukattaisi siinä samassa.
Mahtaisiko ohjelmasta säännöllisesti käsin otettu varmuuskopio ajaa asian?
Grez kirjoitti:
Aina kun ollaan tekemisissä rahan kanssa (vaikka vain bittirahan), niin väärinkäytösten riskit korostuvat. Ketkä tuota tulisivat käyttämään ja voidaanko ajatella että he ovat 100% luotettavia? Vai onko tarpeen tunnistaa eri käyttäjät ja antaa eri tasoisille käyttäjille erilaisia oikeuksia. Ongelmatapauksissa selvittelyä auttaa myös jos kaikista tapahtumista jää loki (kuka teki mitä ja milloin) jota ei pysty käpistelemään (ainakaan kohtuullisella vaivalla)
Toki bittirahan kanssa saa olla varovainen, mutta tuon käteisen kanssa on tullut niin paljon ongelmia niin monella suunnalla, etten usko, että bittirahaan siirtymisen kanssa voisi siihen verrattuna tulla paljon ongelmaa.
Ja mitä tulee luotettavuuteen tässäkin sama pätee niin käteisen rahan kuin tuon ohjelmankin kanssa. Ne jotka ovat luotettavia käteisen kanssa ovat varmastikin luotettavia myös tuon ohjelman kanssa ja päinvastoin.
Toki eri käyttäjät on hyvä tunnistaa. Tällä yhdellä hallintohenkilöllä on oikeudet lisätä ja poistaa rahaa oppilaiden tililtä, joten tämä henkilö pitäisi olla 100% luotettava, muutenhan hommasta ei tule mitään. Tuck shopin kassalla olevalle myyjälle annetaan valtuudet ainoastaan myydä tuotteita eikä heihin voi 100% luottaa. Kaupan päällikölle annetaan valtuudet myydä tuotteita ja hallita varastoa, joten hänen pitäisi myös olla luotettava tai homma kusee. Mutta kuten sanoin, tämä ei eroa millään tavalla nykyisestä käteisellä toimivasta systeemistä (paitsi, että käteinen kulkee useamman ei-välttämättä-luotettavan käden kautta).
Toki loki on hyvä olla. Vanhemmille täytyy pystyä näyttämään, että heidän lapsensa todella on käyttänyt hänelle annetun rahan eikä se ole hävinnyt jonkun toisen taskuun, eli rahansiirrot sisään ja ulos täytyy olla saatavissa.
Lisäksi varasto-kirjanpito täytyy olla, kaupan tuotteita täytyy pystyä seurata paljonko tavaraa tulee sisään ja mihin se menee, kuka ja kuinka paljon on ostettu ja paljonko pitäisi olla jäljellä.
Tuo esitetty 2000-5000 euron hintalappu saattaisi olla kohtuullisen rajoissa. Kyseessä on 850 oppilaan oppilaitos, joista 600 majoittuu koululla eli menevät kotiin vain lomille, eivät edes tavallisen viikonlopun ajaksi. Koululla on ehkä noin 50 opettajaa ja 200 muuta työntekijää. Kyseessä on maan arvostetuin Secondary School, jossa opiskelee huomattavan paljon tärkeiden virkamiesten, poliitikkojen yms lapsia sekä tästä maasta, että naapurimaista. Eli vaikka kyseessä on Afrikka, niin tuo budjetti saattaisi silti olla ihan hyväksyttävän rajoissa.
noutti kirjoitti:
Annatko sähköpostiosoitteesi
En taida pystyä yksityisesti viestittelemään ja antamaan emailiani... Se on asko.pesola@gmail.com
The Alchemist kirjoitti:
Sanoit ettei ohjelma saa toimia netin yli ja sitten speksasit ohjelman, jossa neljä eri instanssia keskustelevat toistensa kanssa netin yli
No siis tottakai tarkoitin, ettei tuon ole hyvä toimia INTERnetin yli vaan koulun sisäisessä verkossa, varsinkin koska täällä Afrikan päässä on niin mielettömän huono INTERnet tai ei sitä ollenkaan, joten sen varaan ei kannata laittaa yhtään mitään. Älä lähde pilkkua viilaamaan sanamuodoista, kun kuitenkin tiesit mitä yritin sanoa.
Toki, jos minä alkaisin tällaista säätämään niin siitä tulisi ei hyvä purkka-ratkaisu, enkä siksi haluaisi sitä lähteä tekemään. Täällä nyt harvemmin tulee vastaan sellaista henkilöä, joka osaisi lähteä edes yksinkertaisesta mysql tietokannasta tietoja hakemaan. Toki turvallisuus puolen voi jonkin verran ottaa huomioon, mutta en lähtisi sitä nostamaan isoksi prioriteetiksi, jossa sovellus tehdään niin hakkerointi-varmaksi, ettei vuosikymmenten kokemuksen omaava hakkeroinnin ammattilainenkaan osaa sitä murtaa. Kyllä ihan vaan perusturvallinen ohjelma riittää.
The Alchemist kirjoitti:
Se on sitten eri asia, jos tekijä oikeasti tuntee asiansa, mutta tällä hetkellä näyttää päinvastaiselta.
Mitä tarkoitat, ketä tarkoitat tällä "tekijä"llä? Minua? En ole koodauspuolella kuin pelkkä noviisi ja koodini on varmasti paljolti purkkaa, enkä siksi haluakaan sitä itse koodata. Tiedän käytännössä mitä tarvitaan ja miten ohjelman pitäisi toimia, mutta toteutuksen jätän mieluusti jollekin toiselle.
--
Luulin, että tämä ketju olisi hyvin sopinut projektit osioon, mutta näköjään tämä on siirretty yleiseen keskusteluun.. Kai jos ei ole oma koodausprojekti kyseessä, niin ei kelpaa sinne?
Onko jokin kone jatkuvasti saavutettavissa niin, että se voisi olla palvelimena? Hajautettu ratkaisu, jossa koneet synkronoivat tietoja jälkikäteen, on aina vaikeampi tehdä kuin keskitetty ratkaisu, jossa tietokanta on yhdellä koneella helposti tavoitettavissa. Nettiselaimella toimiva sovellus on aivan hyvä ja todennäköisesti helpoin ratkaisu, jos vain ulkoasu ja työpöytäintegraatio tuntuvat riittäviltä.
Käytännössä yksittäisen oppilaan ostojen määrä on varmaankin niin pieni, että tilitapahtumat (talletukset ja nostot ja ostot) voisi pitää yhdessä taulussa, ja näiden summasta saataisiin jäljellä oleva rahamäärä. Jos ajatellaan, että ostettuja tuotteita olisi vaikka kymmenen päivässä, tästä kertyisi vuodessa 3600 riviä, jolloin rivien summan voisi ongelmitta laskea vaikka jokaisen ostoksen yhteydessä uudestaan. Tietenkin tähän on monta hienompaa ja tehokkaampaa ratkaisua, mutta tämä riittäisi aivan hyvin ja olisi toteutukseltaan lähinnä idioottivarmaa.
Viikkorahan voisi ehkä toteuttaa niin, että talletus tehtäisiin kerralla henkilön tilille mutta taulussa olisi lisäksi katevarauksia, jotka erääntyisivät tiettynä päivänä. Eli henkilöllä voisi olla vaikka 100 rahaa, joista kuitenkin 20 vapautuisi viikon päästä, 20 kahden viikon päästä jne. Tämä on jälleen idioottivarmaksi tarkoitettu ratkaisu, jossa henkilön rahasumma on selvästi nähtävillä eikä ole sitä riskiä, että talletettu summa ja jaetun viikkorahan määrä olisivat jotenkin ristiriidassa. Olisi helppoa tehdä käyttöliittymä, joka pyyhkisi vanhat katevaraukset ja generoisi uudet niin, että nykyisestä rahasummasta vapautuisi vakiomäärä tai vakio-osuus aina maanantaisin määräpäivään saakka. Olisi helppoa myös tarvittaessa muokata katevarauksia käsin. Ongelmatilanteessa voisi aina pyyhkiä katevaraukset ja aloittaa askartelun alusta, koska rahat olisivat joka tapauksessa tilillä turvassa.
Vaihtoehtona viikkorahalle voisi olla myös se, että rajoitettaisiin käytettävää rahamäärää tietyllä aikavälillä. Tällä tavalla käyttämättä jääneet rahat jäisivät henkilölle pysyvästi säästöön, ja ne voitaisiin maksaa takaisin vaikka vuoden lopussa. Oikeastaan tämä on se tilanne, johon ihmisten kannattaisi rahankäytössään pyrkiä: kysymys ei olisi vain rahankäytön ajankohdasta (ostaako karkkia tänään vai huomenna) vaan aidosti käytettävästä rahamäärästä (ostaako karkkia tällä viikolla vai ei).
AkeMake kirjoitti:
Luulin, että tämä ketju olisi hyvin sopinut projektit osioon, mutta näköjään tämä on siirretty yleiseen keskusteluun.. Kai jos ei ole oma koodausprojekti kyseessä, niin ei kelpaa sinne?
Tosiaan projekteissa on tarkoitus esitellä omia ohjelmointiprojekteja. Tämä projekti vaikuttaa olevan varsin spekulatiivisella tasolla vielä.
AkeMake kirjoitti:
En taida pystyä yksityisesti viestittelemään ja antamaan emailiani...
Osoitteen voi laittaa näkyville omaan profiiliin, jolloin se näkyy kirjautuneille käyttäjille.
AkeMake kirjoitti:
The Alchemist kirjoitti:
Sanoit ettei ohjelma saa toimia netin yli ja sitten speksasit ohjelman, jossa neljä eri instanssia keskustelevat toistensa kanssa netin yli
No siis tottakai tarkoitin, ettei tuon ole hyvä toimia INTERnetin yli vaan koulun sisäisessä verkossa, varsinkin koska täällä Afrikan päässä on niin mielettömän huono INTERnet tai ei sitä ollenkaan, joten sen varaan ei kannata laittaa yhtään mitään. Älä lähde pilkkua viilaamaan sanamuodoista, kun kuitenkin tiesit mitä yritin sanoa.
Ei ole pilkunviilausta huomauttaa speksien olevan jo lähtökohtaisesti ristiriitaiset. Kuten Metabolixin edellisestä viestistä näet, niin moni ei ymmärrä vieläkään, että mitä yritit sanoa. Sillä ei ole mitään väliä, toimiiko sovellus vain paikallisverkossa vai onko siihen annettu pääsyoikeus ulkopuoleltakin, kun toimintaperiaate on sama.
Tosin homman rajoittaminen sisäverkkoon tarkoittaa sitä, että myös keskuspalvelimen (= 24/7 päällä oleva kone) on oltava kytkettynä sisäverkkoon.
Metabolix kirjoitti:
Onko jokin kone jatkuvasti saavutettavissa niin, että se voisi olla palvelimena? Hajautettu ratkaisu, jossa koneet synkronoivat tietoja jälkikäteen, on aina vaikeampi tehdä kuin keskitetty ratkaisu, jossa tietokanta on yhdellä koneella helposti tavoitettavissa.
Tai siis täysin mahdoton ratkaisu, jos tarkoitus on tehdä muutakin kuin leikkiä monopolia niillä rahoilla. Jos tilin saldoa ei voi synkronoida reaaliaikaisesti, niin käteisrahan käyttö on ainoa vaihtoehto.
Metabolix kirjoitti:
Nettiselaimella toimiva sovellus on aivan hyvä ja todennäköisesti helpoin ratkaisu, jos vain ulkoasu ja työpöytäintegraatio tuntuvat riittäviltä.
Ehkä helpoin ratkaisu siihen asti, kunnes selviää, että alustana on piraattina hommattu Windows XP ja mikä ikivanha nettiselain sillä nyt pyöriikään...
En näe itse eroa sen välillä, tekeekö kälin nettiselaimeen vai erillisenä sovelluksena. Ainoa hankaluus on softan deplaaminen ja päivitysten toimittaminen. Kun sovellus on selainpohjainen, niin periaatteessa kaikki asiakaspäätteet saa ajan tasalle yhdellä kertaa. Mutta kun puhutaan lähtökohtaisesti neljästä päätteestä ja hinnan puolesta päivityskerrat jäänevät vähiin, niin senkin painoarvo on vähän niin ja näin.
Metabolix kirjoitti:
Onko jokin kone jatkuvasti saavutettavissa niin, että se voisi olla palvelimena?
Kyllä, tällainen on toteutettavissa.
Metabolix kirjoitti:
Käytännössä yksittäisen oppilaan ostojen määrä on varmaankin niin pieni, että tilitapahtumat (talletukset ja nostot ja ostot) voisi pitää yhdessä taulussa, ja näiden summasta saataisiin jäljellä oleva rahamäärä. Jos ajatellaan, että ostettuja tuotteita olisi vaikka kymmenen päivässä, tästä kertyisi vuodessa 3600 riviä, jolloin rivien summan voisi ongelmitta laskea vaikka jokaisen ostoksen yhteydessä uudestaan.
Periaatteessa oppilaan tili olisi kai tarkoitus pitää koko hänen opiskeluaikansa eli 5 vuotta. Tuolloin tällä laskulla rivejä tulisi 18 000 riviä per oppilas ja 850 oppilasta tekisi yhteensä 15,5 miljoonaa riviä. Toki taidetaan vielä olla niin pienissä luvuissa, että tämä laskeskelu on vain saivartelua.
The Alchemist kirjoitti:
Sillä ei ole mitään väliä, toimiiko sovellus vain paikallisverkossa vai onko siihen annettu pääsyoikeus ulkopuoleltakin, kun toimintaperiaate on sama.
Toki Suomessa tällä ei varmasti ole väliä, koska internet on nykyään kaikkialla riittävän nopea mihin tahansa. Täällä internet on kuitenkin monesti pitkän aikaa kokonaan alhaalla ja vaikka se toimisi niin olisi niin hidas, että sitä on turhauttavaa käyttää. Täällä internetin ja paikallisverkon välillä onkin yhtäkkiä suuri ero, kun internetin yli pelatessa et saakaan dataa kulkemaan niin kuin haluat. Lisäksi turvallisuus on myös yksi paikallisverkon eduista, kun ohjelmaa olisi mahdollista yrittää hakkeroida koko maailman ihmisten sijasta vain ne, jotka ovat fyysisestä täällä läsnä.
The Alchemist kirjoitti:
Tosin homman rajoittaminen sisäverkkoon tarkoittaa sitä, että myös keskuspalvelimen (= 24/7 päällä oleva kone) on oltava kytkettynä sisäverkkoon.
Toki. Keskuspalvelimen ei nyt ihan 24/7 tarvitse olla päällä. Riittää, että se on päällä silloin, kun ohjelmaa käytetään eli periaatteessa työaikoina ma-su klo 7-18.
The Alchemist kirjoitti:
Jos tilin saldoa ei voi synkronoida reaaliaikaisesti, niin käteisrahan käyttö on ainoa vaihtoehto.
Totta. Tilin saldo täytyy kyllä voida synkronoida reaaliaikaisesti.
The Alchemist kirjoitti:
Mutta kun puhutaan lähtökohtaisesti neljästä päätteestä ja hinnan puolesta päivityskerrat jäänevät vähiin, niin senkin painoarvo on vähän niin ja näin.
En usko, että ohjelmaan tarvitaan erityisemmin tietoturva-päivityksiä, jos nyt ehkä kaikista kriittisimpien aukkojen korjaus voi olla paikallaan. Minulla on kuitenkin vakaa luottamus siihen, että paikallisverkossa toimivana ohjelmana tietoturva-uhka on äärimmäisen minimaalinen. Lähinnä päivityskerrat tulisivat liittymään mahdollisten toimintojen lisäämiseen tai muokkaamiseen.
Lisäyksenä muuten olisi hyvä, jos ohjelma osaisi varautua yhtäkkisiin ohjelman sammumisiin. Sähkökatkot ovat täällä arkipäivää, riippuen vuodenajasta jopa jokapäiväisiä, joten tietokoneet tulevat varmasti sammuilemaan sähkökatkoksien vuoksi. Toki voin hankkia näille koneille ulkoisen virtalähteen, vai millä nimellä sitä kutsutaankaan, mutta eihän se riitä sähkökatkon kestäessä useampia tunteja.
AkeMake kirjoitti:
Periaatteessa oppilaan tili olisi kai tarkoitus pitää koko hänen opiskeluaikansa eli 5 vuotta. Tuolloin tällä laskulla rivejä tulisi 18 000 riviä per oppilas ja 850 oppilasta tekisi yhteensä 15,5 miljoonaa riviä.
Itse kyllä laittaisin kullekin oppilaalle "ajantasainen saldo" sarakkeen tietokantaan ja käyttäisin transaktiokykyistä tietokantaa. Osto tai rahan lisäys ajettaisiin samassa transaktiossa saldon päivittämisen kanssa.
Toki käytännössä ilmankin toimii kunhan vaan tapahtumataulussa on kunnollinen indeksointi.
Vaikka oppilaan tili olisi tarkoitus säilyttää 5 vuotta, niin voisihan ne tilin vanhat tapahtumat vaikka vuosittain laskea yhdeksi summatapahtumaksi.
AkeMake kirjoitti:
Lisäyksenä muuten olisi hyvä, jos ohjelma osaisi varautua yhtäkkisiin ohjelman sammumisiin. Sähkökatkot ovat täällä arkipäivää, riippuen vuodenajasta jopa jokapäiväisiä, joten tietokoneet tulevat varmasti sammuilemaan sähkökatkoksien vuoksi. Toki voin hankkia näille koneille ulkoisen virtalähteen, vai millä nimellä sitä kutsutaankaan, mutta eihän se riitä sähkökatkon kestäessä useampia tunteja.
Ohjelma itsessään ei voi ratkaista kaikkia sähkökatkon aiheuttamia ongelma. Jos nyt ohjelmaa ei ihan käsittämättömän päin persettä toteuta ja sähkökatko tulee juuri kesken tapahtuman tallentamisen, niin sitten sähkökatkon jälkeen lähinnä täytyy varmistaa, että tapahtuma tosiaan kirjautui järjestelmään.
Vaikka teoriassa* kunnollinen journaloiva tiedostojärjestelmä ja kunnolla toteutettu tietokanta osaavat palautua ehjään tilaan (ei välttämättä sekunnilleen viimeisimpään ennen katkoa) niin laittaisin ehkä keskuspalvelimelle kuitenkin UPSin.
Ideahan niissä on, että kun sähkökatko on kestänyt n minuuttia niin se signaloi palvelimelle, että se pitäisi ajaa hallitusti alas ja vastaavasti käynnistää palvelimen automaattisesti uudestaan, kun sähkökatko on päättynyt ja akkuihin on latautunut ainakin sen n minuuttia plus hallitun alasajoon tarvittavan ajan verran sähköä.
Eli idea ei olekaan tällaisessa käyttötapauksessa, että palvelin kestäisi päällä minkä pituisen tahansa sähkökatkon, vaan että se saa sammutettua itsensä hallitusti.
Käytännössähän UPSien huono puoli on, että akkuja pitää uusia silloin tällöin. Lisäksi akun elinikä on sitä lyhyempi mitä kuumemmassa sitä käytetään.
* tietokoneen käyttis ja sitä korkeamman tason järjestelmät ei tietenkään voi vaikuttaa siihen, jos esim. kiintolevy kirjoittaakin pyydetyn datan vaikka väärään kohtaan levyä jos sähkökatko tulee kesken kirjoituksen.
AkeMake kirjoitti:
Sähkökatkot ovat täällä arkipäivää, riippuen vuodenajasta jopa jokapäiväisiä, joten tietokoneet tulevat varmasti sammuilemaan sähkökatkoksien vuoksi. Toki voin hankkia näille koneille ulkoisen virtalähteen, vai millä nimellä sitä kutsutaankaan, mutta eihän se riitä sähkökatkon kestäessä useampia tunteja.
Linux-palvelimella pääosan levyistä voi pitää vain luku -tilassa, jolloin äkillinen sammuminen ei sotke mitään. Voi säätää niin, että varsinainen palvelinohjelmisto käynnistyy ja tietokanta avataan kirjoitettavaksi vain, kun verkkoyhteys toimii. Kun siis sähkö katkeaa, oletettavasti myös verkkoyhteys katkeaa, jolloin palvelinohjelmisto sammutetaan ja tietokantalevy laitetaan vain luku -tilaan. Tällöin akun kestoksi riittää minuutti.
Tämän kokoluokan ohjelmistossa palvelimeksi riittäisi hyvin vaikka Raspberry Pi tai vastaava, jolloin akku on halpa hankinta. (Ehkä palvelimessa on hyvä olla myös kello, jos kerran nettiä ei ole helposti saatavilla ajan päivitykseen.)
AkeMake kirjoitti:
En usko, että ohjelmaan tarvitaan erityisemmin tietoturva-päivityksiä, jos nyt ehkä kaikista kriittisimpien aukkojen korjaus voi olla paikallaan. Minulla on kuitenkin vakaa luottamus siihen, että paikallisverkossa toimivana ohjelmana tietoturva-uhka on äärimmäisen minimaalinen. Lähinnä päivityskerrat tulisivat liittymään mahdollisten toimintojen lisäämiseen tai muokkaamiseen.
Ensisijaisesti minä tarkoitin käyttöönottovaiheessa havaittuja ongelmia eli bugikorjauksia. Tämä on jo sen kokoluokan ohjelma, että siitä löytyy varmasti joitakin bugeja siinä vaiheessa, kun oikeasti koulu sen ottaa käyttöön eikä vain joku nörtti vähän testaile luolassaan.
AkeMake kirjoitti:
Lisäyksenä muuten olisi hyvä, jos ohjelma osaisi varautua yhtäkkisiin ohjelman sammumisiin. Sähkökatkot ovat täällä arkipäivää, riippuen vuodenajasta jopa jokapäiväisiä, joten tietokoneet tulevat varmasti sammuilemaan sähkökatkoksien vuoksi. Toki voin hankkia näille koneille ulkoisen virtalähteen, vai millä nimellä sitä kutsutaankaan, mutta eihän se riitä sähkökatkon kestäessä useampia tunteja.
Minusta tämä on non-issue. Kysehän ei missään nimessä ole yhdestä ohjelmasta vaan keskuspalvelimella pyörivä backend on oma sovelluksensa, kassaohjelmisto toinen ja varastosaldojen hallinta kolmas. Tietokantapalvelin (esim. MySQL) pitää huolen transaktioista.
Äkkiseltään ajateltuna ainoa kämminpaikka on se, ettei kassaohjelma varmista, että keskuspalvelin palauttaa kuittauksen onnistuneesta saldomuutoksesta...
Kaikkia tähän liittyviä ongelmia ei tosiaan voi ratkaista enää ohjelmistossa itsessään vaan tarvitset sen akun.
Grez kirjoitti:
Vaikka oppilaan tili olisi tarkoitus säilyttää 5 vuotta, niin voisihan ne tilin vanhat tapahtumat vaikka vuosittain laskea yhdeksi summatapahtumaksi.
Tuo on ihan totta. Tuskin vuotta tai paria vanhempia tapahtumia tarvitsee enää pitää muistissa.
Grez kirjoitti:
niin laittaisin ehkä keskuspalvelimelle kuitenkin UPSin.
Sehän se nimi oli, UPS. Joo, tuo pitää sitten hankkia vähintään sille keskustietokoneelle.
Grez kirjoitti:
Käytännössähän UPSien huono puoli on, että akkuja pitää uusia silloin tällöin. Lisäksi akun elinikä on sitä lyhyempi mitä kuumemmassa sitä käytetään.
Juu, tuo onkin sitten ongelma täällä afrikassa. Ilmasto vaihtelee ympäri vuoden talvella lämmin ja kuiva, kesällä kuuma ja kostea. Pitäisiköhän koettaa, jos keskustietokonetta varten saataisiin järjestettyä ilmastoitu huone.
The Alchemist kirjoitti:
Ensisijaisesti minä tarkoitin käyttöönottovaiheessa havaittuja ongelmia eli bugikorjauksia.
Okei, niin juu.. Tuohan on kyllä totta, noita ongelmia melko varmasti tulee ja niihin tarvii korjauksia.
The Alchemist kirjoitti:
Kaikkia tähän liittyviä ongelmia ei tosiaan voi ratkaista enää ohjelmistossa itsessään vaan tarvitset sen akun.
Totta, pistetään UPS ostoslistalle.
AkeMake kirjoitti:
Pitäisiköhän koettaa, jos keskustietokonetta varten saataisiin järjestettyä ilmastoitu huone.
Vaikuttaa vähän liioittelulta eikä se ilmastointikaan toimi jos sähköt on poikki.
Ja tosiaan erillinen UPS ei ole välttämättä ainoa vaihtoehto. Esim. kannettavissa tietokoneissa on sisäänrakennettu UPS (sopiviin malleihin saa uusia akkujakin edulliseti) tai sitten vähänvirtaisella koneella (esim. ehdotetu RPi) pienelläkin akulla riittää virtaa pitkään.
Joku perus auton akku (55Ah 12V) hakkurijännitelähteellä ja RPi:n keskikulutuksella (ilman isompia lisäpalikoita alle 5W) tarkoittaisi että virtaa riittää tarvittaessa 5 vuorokautta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.