Skip to content

Vuorovaikutusalusta is GIS based feedback query tool

License

Notifications You must be signed in to change notification settings

ubigu/kartalla

 
 

Repository files navigation

Kartalla

Ohjelmiston taustaa

Kuntien suunnittelussa on keskeistä, että suunnittelua tehdään jatkuvassa vuorovaikutuksessa kuntalaisten kanssa. Vuorovaikutus kuntalaisten kanssa toteutetaan osallistamisella sekä palautteen keräämisellä. Usein kuntalaisten tarpeet ja näkemykset ovat paikkaan sidottuja, jolloin karttakyselypalvelu tulee mukaan kysymykseen. Tarkoituksena on siis toteuttaa vuorovaikutteinen karttakyselypalvelu kuntalaisten osallistamiseksi Tampereen kaupungin kehittämiseen.

Ohjelmiston komponentit

Ohjelmiston pääkomponentteina toimivat käyttöliittymä, serveri sekä tietokanta. Käyttöliittymässä on käytetty Tampereen Oskari -karttaupotusta. Ohjelmiston ajoympäristönä toimii Microsoft Azure -pilvipalvelu. Pääkomponenttien dokumentaatiot löytyvät kunkin alakansion alta: server, client, db.

Kuva 1: ohjelmiston arkkitehtuuri ajoympäristössään Arkkitehtuuri

Ohjeet sovelluskehitykseen

Lyhyt ohjeistus:

  • Käynnistä Docker -ekosysteemi projektin juuresssa komennoilla docker-compose build && docker-compose up -d. Esiehto: lokaalisti tulee olla asennettuna Docker -konttien hallintajärjestelmä).
  • Luo ympäristömuuttujille tiedosto polkuun /server/.env ja täytä se tarvittavilla muuttujilla ohjeen /server/.template.env mukaan.
  • Toteuta uudet toiminnallisuudet omaan Git -haaraansa, esim. feature/new-feature-name. Valmistuessaan yhdistä tämä haara develop -haaraan, josta sovellusta ajetaan testiympäristössä. Kun on aika tehdä tuotantopäivitys, vie develop -haaran muutokset main -haaraan, josta sovellusta ajetaan tuotantoympäristössä.

Pidempi ohjeistus:

Sovelluksen kehitys tapahtuu Docker -ekosysteemin avulla. Kehitystä varten ohjelmistokehittäjällä on oltava lokaalisti omalla koneellaan asennettuna Docker -kontteja hallinnoiva sovellus, esimerkiksi Docker Desktop. Docker -kontteja voidaan ohjata komentoriviltä lähdekoodin juuripolusta, jossa Docker -kontteja hallinnoiva konfiguraatiotiedosto docker-compose.yml sijaitsee. Aluksi sovelluksen käyttämät kirjastot ja muut riippuvuudet asennetaan suorittamalla komento docker-compose build. Tämän jälkeen Docker -kontit käynnistetään komennolla docker-compose up -d. Komento käynnistää kolme eri palvelua: serverin, käyttöliittymän sekä tietokannan. Kullekin näistä luodaan oma docker kontti, joiden nimet ovat vastaavasti server, client sekä db. Serveri käynnistyy lokaalisti osoitteeseen localhost:3000, käyttöliittymä osoitteeseen localhost:8080 sekä tietokanta osoitteeseen localhost:5432. Toisinaan konttien käynnistyksessä voi ilmetä virhetilanteita. Yksittäisen kontin lokitietoihin pääsee käsiksi esimerkiksi ajamalla komennon docker-compose logs -f <kontin-nimi>, esimerkkinä docker-compose logs -f server. Mikäli kontti ei käynnisty tai ilmenee tarve käynnistää kontti uudelleen virhetilanteesta johtuen, voidaan tämä suorittaa komennolla docker-compose restart <kontin-nimi>.

Serveri ja tietokanta juttelevat keskenään yhteydellä, joka on määritetty ympäristömuuttujien (environment variables) avulla. Nämä tulee olla määritettyinä serverin juuressa polussa /server/.env. Lähdekoodissa on valmiiksi tiedosto, jossa on määritetty kukin tarvittava ympäristömuuttuja: /server/.template.env. Kehittäjä voi luoda tästä tiedostosta kopion, nimetä sen .env:ksi, ja täyttää tiedostoon tarvittavat ympäristömuuttujat.

Lokaalissa kehityksessä React käyttöliittymä ohjaa rajapintapyynnöt automaattisesti omaan porttiinsa. Toisin sanoen, mikäli käyttöliittymästä (portti 8080) tehdään HTTP pyyntö serverille (portti 3000), tätä ei tarvitse erikseen määrittää, vaan käyttöliittymä osaa ohjata liikenteen suoraan omasta portistaan serverin porttiin (8080 -> 3000).

Sovelluskehitys noudattaa perinteistä Gitflow -mallia, jossa uudet toiminnallisuudet toteutetaan omaan Git -haaraansa, esim. feature/new-feature-name. Valmistuessaan tämä haara yhdistetään main -haaraan. Kun main -haaraan kohdistuu muutoksia Githubissa, automaattinen integraatio käynnistyy, joka julkistaa haaraan viedyn uuden lähdekoodin Azureen testiympäristöön. main-haaraan yhdistäminen täydentää automaattisesti release-luonnoksen, jonka julkaisun yhteydessä main haaran sisältö viedään automaattisen integraation kautta Azuren tuotantoympäristöön.

E2E-testaus

E2E testit ajetaan automaattisesti jokaisen pull requestin yhteydessä.

E2E-testiympäristö on toteutettu vastaavalla tavalla, kuin paikallinen kehitysympäristö sillä erolla, että E2E-testiympäristö käynnistetään e2e-kansiosta käsin. Testit ajetaan Playwright-kirjastoa käyttäen. Tietokannan sisältö tallennetaan erilliseen db-data-volumeen, joten E2E-testien ajaminen ei vaikuta kehitystietokannan sisältöön.

Testiympäristön käynnistämisen jälkeen seuraavat komennot ovat käytettävissä ./e2e-polusta:

  • npm run codegen: Avaa selainnäkymän, josta käsin pystyy luomaan testikomentoja interaktiivisesti
  • npm run test-ui: Ajaa testit selainnäkymässä
  • npm test: Ajaa testit headless-tilassa näyttäen vain tulosteen komentorivillä

About

Vuorovaikutusalusta is GIS based feedback query tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.6%
  • Dockerfile 0.1%
  • CSS 0.1%
  • HTML 0.1%
  • JavaScript 0.1%
  • Shell 0.0%