Tuotantoserveri Herokussa.
Testiserveri Herokussa.
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.
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 src
autopep8 --in-place --aggressive --aggressive --recursive src
pip install <package>
pip freeze > requirements.txt
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.
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ä.
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ä.
- 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
- 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
- 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