Skip to content

Sukellusilmoitus/backend

Repository files navigation

Sukellusilmoitus backend

GitHub Actions codecov

Heroku

Tuotantoserveri Herokussa.
Testiserveri Herokussa.

Asennus

Varmista, että laitteellasi on Python 3.8 tai uudempi. Luo virtuaaliympäristö ja asenna riippuvuudet

python3 -m venv venv
source venv/bin/activate
pip install -r ./requirements.txt

Määritä palvelimelle ympäristömuuttujat luomalla tiedosto .env projektin juureen

MONGO_URI=tuotantotietokanta
TEST_MONGO_URI=testauksessa käytettävä tietokanta
SECRET_KEY=salausavain

Tämän jälkeen voit käynnistää palvelimen

python3 src/index.py

Jos curl http://localhost:5000/api/healthcheck ei tuota virhettä, palvelin toimii.

Komentoja

Testaus

Testit testaavat myös sovelluksen REST-rajapintoja, joten sovelluksen tulee olla käynnissä testien ajon aikana testiympäristössä. Sovellus käynnistyy testiympäristöön seuraavasti

TEST=True python3 src/index.python3

Kaikkien testien suorittaminen onnistuu komennolla

pytest

Jos haluat jättää rajapintatestit suorittamatta, se onnistuu komennolla

pytest -m "not api"

Tällä komennolla testejä suorittaessa, sovelluksen ei tarvitse olla käynnissä.

Pylint

pylint src

Koodin formatointi

autopep8 --in-place --aggressive --aggressive --recursive src

Uusien riippuvuuksien asentaminen

pip install <package>
pip freeze > requirements.txt

Hylkydata

Hylkyjen tiedot tulevat kahdesta lähteestä: Itämeri.fi -sivulta ja Museoviraston sivulta. Molemmat datat on tuottanut Museovirasto. Jos lähteet muuttuvat, skripti fetch_from_museovirasto.py täytyy kirjoittaa uuteen dataan sopivaksi.

Hylkydata päivittyy joka keskiviikkoaamu. Tietokantoihin haetaan uudet hylyt tai päivitetään muutokset id:n perusteella, mitään ei poisteta. Päivitysskriptin ajaa Github actionsin workflow Updater backendin puolella.

Datalähteet:

https://ckanmtp.ymparisto.fi/dataset/muinaismuistolailla-rauhoitetut-ja-muut-historialliset-hylyt-merialueilla-wfs-palvelu

https://www.museovirasto.fi/fi/palvelut-ja-ohjeet/tietojarjestelmat/kulttuuriympariston-tietojarjestelmat/kulttuuriympaeristoen-paikkatietoaineistot (tutkija.zip)

Meiliherätteet

Sovellus lähettää joka maanantai viikon ajalta uudet ilmoitukset meilillä backin ympäristömuuttujissa määritettyyn sähköpostiin. Lähetysskriptin ajaa Github actionsin workflow Emailer backendissä. Lähettäjän ja vastaanottajan osoitteet on backin Github secretseissä.

Tietokannan rakenne

tietokannan rakenne

Definition of done

Scrumin mukaisesti projektissa toteutetaan backlogista löytyvät user storyt, joille on jokaiselle määritelty hyväksymiskriteerit. Projektin product- ja sprint-backlogit ja siten myös hyväksymiskriteerit löytyvät tästä sheetistä: backlogit

Hyväksymiskriteerit testataan käyttäen Cypressia. Koodia testataan kattavasti myös yksikkötesteillä. Koodityyli noudattaa lintin avulla määriteltyjä sääntöjä.

Asiakas voi seurata koodin ja testien tilannetta CI-palvelusta:

Koodin arkkitehtuuri on suunniteltua ja perusteltua, pyrkimyksenä on mahdollisimman hyvä ylläpidettävyys pitämällä koodi selkeänä.

Tarkistuslista User Storylle

  • Tuotettu koodia suunnitelluille toiminnallisuuksille
  • User storyn vaatimuksiin vastattu
  • Projekti käynnistyy ilman virheitä
  • Unit testit kirjoitettu ja läpäisty
  • Toiminnallisuus on testattu hyväksymistesteillä
  • Refraktorointi on valmis
  • Product ownerin mielestä toiminnallisuus on valmis

Tarkistuslista Sprintille

  • Definition of done sprintin user storyille täytetty
  • Kaikki unit testit läpäisty
  • Linttaus läpäisty
  • Backlog on päivitetty
  • Kaikki bugit on korjattu
  • Sprintin toteutettu toiminallisuus käyty läpi Product Ownerin kanssa
  • Sprinttiin liittyvät "to do" asiat valmiita

Tarkistuslista viimeiselle Releaselle

  • Koodi on valmista
  • Kaikki testit läpäisevät
  • Kaikki hyväksymiskriteerit täyttyvät
  • Ryhmä on hyväksynyt releasen
  • Ei keskeneräistä työtä releasen mukana
  • Kaikki DoD asetetut vaatimukset täyttyvät

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages