Skip to content

Materiaalit

Opintojakson sisältö

  1. Edistynyt autentikaatio ja autorisointi (käyttäjän tunnistaminen ja käyttöoikeuksien hallinta)

  2. Rajapintadokumentaation (API-dokumentaation) automatisoitu tuottaminen

  3. Saman backend –sovelluksen hyödyntäminen useassa frontend –sovelluksessa

  4. Edistyneiden tietokantaominaisuuksien kytkeminen backend –sovellukseen

  5. Reaaliaikainen tiedonsiirto

  6. Fullstack – ohjelmistoprojektin testaaminen ja tekninen hallinta (CI/CD)

Asennettavat ohjelmistot

Docker

Mikä on Docker?

https://docs.docker.com/get-started/docker_cheatsheet.pdf

Node.js

Node.js on JavaScript koodin suorittamisen ympäristö muualla kuin verkkoselaimissa. Se mahdollistaa ohjelmoinnin JavaScriptillä alustariippumattomasti ja antaa pääsyn JavaScript koodilla esimerkiksi tiedostojärjestelmään tai verkkoliikenteeseen.

Noden mukana asentuvat npm ja npx, ne ovat noden komentorivityökaluja JavaScript pakettien eli kolmannen osapuolen koodikirjastojen hallintaan.

Node.js

Lataa ja asenna Node.js LTS versio.

Git

Git on ohjelmistokehityksen yksi käytetyimmistä työkaluista versionhallinnassa. Se mahdollistaa muun muassa useamman koodarin työskentelyn sujuvasti samassa projektissa ja kaikki sinne laitettu koodi on automaattisesti varmuuskopioituna tallessa.

Gittiä ei pidä sekottaa GitHubiin tai GitLabiin, ne ovat palveluita repositorioiden (projektin koodipohja) ylläpitämiseen, säilyttämiseen ja projektin hallintaan. Git on työkalu jolla projektin koodit ja muut materiaalit lisätään näihin palveluihin.

Git

Lataa ja asenna Gitin uusin tarjolla oleva versio. Gitin asennusohje.

VS Code

Opintojaksolla suositellaan vahvasti käyttämään koodieditorina Visual Studio Codea. Se on moderni, kevyt ja laajasti eri ohjelmointikieliä tukeva koodieditori. Kaikki opintojaksolla tehdyt esimerkit on tehty käyttämällä VS Codea ja kaikkia käytettyjä plugineja ei todennäköisesti ole saatavilla muille koodieditoreille.

VS Code

Lataa ja asenna VS Code:n uusin versio

Chrome

Tämä verkkoselain todennäköisesti löytyy jo useimmilta valmiiksi. Jos ei niin hae googlesta chrome, mene latauslinkkiin, lataa ja asenna uusin versio.

Chromea ja sen kehittäjän työkaluja käytetään opintojakson aikana paljon.

Muita verkkoselaimia voi käyttää jos haluaa varmistua että web-sovellus toimii oletetusti muilla selaimilla, mutta varsinainen devaaminen tehdään käyttäen Chromea.

Arviointi

arviontikriteerit pepistä

Arviointiasteikko H-5

tyydyttävä (1-2)

Opiskelija osaa perustasolla hyödyntää edistyneitä tekniikoita full stack –sovelluksen kehittämisessä. Opiskelija tuntee erilaisia automatisoituja työkaluja, joita voidaan hyödyntää full stack –ohjelmiston kehittämisen tukena.

hyvä (3-4)

Opiskelija osaa sujuvasti hyödyntää full stack –sovelluksen edistyneitä tekniikoita kehitystyössään. Opiskelija osaa ohjatusti hyödyntää erilaisia automatisoituja työkaluja full stack –kehityksen tukena.

kiitettävä (5)

Opiskelija osaa kattavasti hyödyntää full stack –sovelluksen edistyneitä tekniikoita kehitystyössään. Opiskelija osaa hyödyntää tehokkaasti ja itsenäisesti erilaisia automatisoituja työkaluja full stack –ohjelmiston kehittämisen tukena.

Projekti

Ohjelmistokehityksessä valtaosa työtehtävistä toteutetaan projektiluontoisesti. Tästä syystä myös opinnoissa korostuu projektityöskentelyn merkitys.

Projektityöskentelyssä on oleellista pystyä arvioimaan työmäärä suhteessa käytettävissä oleviin resursseihin. Resurssilla tarkoitetaan tässä esim. projekiin käytettävissä olevaa työaikaa, jolle on määritetty jokin arvo/hinta.

Projekti suoritetaan pienryhmissä (2-5 henkilöä)

1. Ryhmän tehtävä on kehittää FullStack-ohjelmisto.

  • Ohjelmisto voi olla esim. Web-sovellus, mobiilisovellus, peli, verkkopalvelu tai vaikkapa API.

Opintojakson vaatimukset ohjelmiston osalta liittyvät asioihin, mitkä voidaan toteuttaa tekniikasta tai aiheesta riippumatta:

  • Autentikaatio ja autorisointi (10p)
  • Käyttäjien hallinta (10p)
  • CI/CD (10p)
  • Testaaminen (10p)
  • Reaaliaikainen tiedonsiirto (esim. chat, sensoridata, online-peli. Tekniikoita mm. MQTT, WebSocket, WebRTC) (10p)

2. Ryhmät valitsevat aiheen kehitettävälle ohjelmistolle.

  • Aihe voi olla esim. ICT-liiketoiminnan opintojaksolla perustettavan yrityksen liiketoimintaan liittyvä ohjelmisto (tuote, hallintajärjestelmä, sovellus, palvelu.. yms.).

3. Ryhmän tehtävä on luoda projektisuunnitelma ottaen huomioon käytettävissä olevat resurssit

Opintojaksolla käytettävissä oleva aika: 5 opintopistettä x 27h

Projektisuunnitelma

  • Projektisuunnitelman yhteydessä luodaan vaatimusmäärittely kehitettävälle ohjelmistolle (2p)
  • Vaatimusmäärittely sisältää käyttäjätarinat, miten ohjelmistoa käytetään? Kuka käyttää ja miksi? Milloin käytetään? Miten saavutettavuus huomioidaan? (2p)
  • Rautalankamalli tai prototyyppi (esim. https://www.figma.com/) toteutettavan sovelluksen keskeisistä toiminnallisuuksista ja ominaisuuksista. (2p)
  • GitHub-projects otettu käyttöön projektinhallintaa varten (tai vaihtoehtoinen vastaava työkalu kuten Azure DevOps) (2p)
  • Vaatimusmäärittelyn pohjalta jaetaan ohjelmistokehityksen tehtävät ominaisuuksittain projektinhallinnan työkalussa (esim. GitHub-projects) ryhmän jäsenten kesken. (2p)
  • Valitaan käytettävät tekniikat ja perustelut niiden valinnalle, "tech stack" (Esim. Nodejs + React + Postgresql) (2p)
  • Projektin dokumenttien (työaikaseuranta, pöytäkirjat, muistiot) yms. hallintaan luotu jaettu kansio projektinryhmän kesken esim. Google-drivessa tai Teamsissa (2p)
  • Aikataulutus toteutettavien ominaisuuksien pohjalta (2p)

Projektien tuotokset esitellään opintojakson lopussa!

Moodleen palautettavan projektisuunnitelman tulee sisältää vähintään seuraavat tiedot:

Projektiryhmän nimi ja numero Yhteystiedot (projektiryhmän jäsenet) Projektisuunnitelma (ks. ylempi kohta)

Yksi ryhmän jäsenistä tekee palautuksen Full Stack II opintojakson moodleen deadlineen mennessä.

  • Opintojakson ohjaaja hyväksyy projektisuunnitelman tai pyytää täydentäviä tietoja mikäli projektin sisältö ei vastaa opintojakson tavoitteita.
  • Projektisuunnitelma arvioidaan. (8 x 2p = 16p)

Valmiin projektin palautus

Ohje:

Projektin palautuksen yhteydessä palautetaan kaikki projektiin liittyvät tiedostot, dokumentit, linkit yms.

Varmistakaa että ohjaajalla on riittävät käyttöoikeudet linkkien kautta jaettaviin materiaaleihin, kuten github-repositoriohin ja projekteihin

Lisäksi:

  • Projektin tekniset ratkaisut tulee olla dokumentoituna niin, että ohjaaja pystyy ottamaan järjestelmän käyttöön arviontiympäristössä (README.md kaikissa repositorioissa). Mikäli sovelluksen käyttöönotto ei ole mahdollista esim. fyysisten laitteiden käytön takia, niin siitä tulee olla maininta perusteluineen.

    • Vinkkinä Docker! Kun projektin sovellukset (backend, frontend, yms.) toimivat konteissa, niiden käyttöönotto arvionnin yhteydessä helpottuu merkittävästi
  • Käytetyn tietokannan schema tulee olla mukana, esim .sql tiedostona, ja mikäli mahdollista niin tietokantadumppi valmiilla pohjadatalla. Jos käytössä on supabase tai vastaava pilvitietokanta, ohjaajalle voi lisätä tarvittavat käyttöoikeudet scheman ja dumpin sijasta käytettyyn järjestelmään.

Projektin arvionnin työkalu

Tekoälyraportti

Tekoälyratkaisujen hyödyntäminen projektissa on sallittua, tästä tarvitaan kuitenkin erillinen (lyhyt) raportti, missä on listattu käytetyt tekoälypalvelut/työkalut ja kuvaus siitä millä tavalla näitä on projektissa hyödynnetty. (Esim. Chatgpt, Copilot, Cursor AI, bolt.new, ollama jne.). Tekoälyratkaisujen hyödyntäminen niistä mainitsematta voi johtaa vilppikäytäntöjen mukaisen prosessin käynnistymiseen!

Tehtävät

Opintojaksolla julkaistaan Moodleen myös erillisiä tehtäviä millä on mahdollista vaikuttaa lopulliseen arvosanaan projektin lisäksi.

Henkilökohtainen raportti

Opintojakson lopussa palautetaan henkilökohtainen raportti. Arvionti hyväksytty/hylätty.

Arviointi

Opintojakson arvosana muodostuu arviontikriteerien perusteella.

Opintojaksolla toteutettavan projektin teknisen toteutuksen pisteytyksen painoarvo on 50% arvosanaan.

Kun ryhmässä on kolme tai enemmän jäsentä:

Projektiryhmän sisäinen vertaisarvionti suoritetaan opintojakson arviontikriteerien perusteella arvosanoilla 0-5, painoarvo lopulliseen arvosanaan 50%.

Kun ryhmässä on vähemmän kuin kolme henkilöä:

Projekti arvioidaan ohjaajan toimesta sekä henkilökohtaisen raportin kautta.

Henkilökohtainen raportti

Opintojakson lopussa palautetaan henkilökohtainen raportti. Arvionti hyväksytty/hylätty.

Henkilökohtaisen raportin luomisessa sekä vertaisarvionnissa käytettävä työkalu

Vaihtoehtoinen suoritustapa ja arvosanan korottaminen

  1. Henkilökohtaisen projekti, toteutetaan ryhmätyö projektiohjeistuksen mukaisesti.
  • Jos jatkat projektia FullStack 1 opintojaksolta, sovi erikseen opintojakson ohjaajan kanssa tästä!
  1. Aiemman osaamisen perusteella näytetty osaaminen suhteessa opintojakson oppimistavoitteisiin

Arvosanan muodostuminen

Opintojaksokokonaisuuden arvosana muodostuu arviontikriteerien perusteella tehtäväkohtaisesti jaoteltuihin pisteisiin.

Projektin pisteytys

PisteetArvosana
+40p1
+50p2
+60p3
+70p4
+80p5

Lapin AMK:n Full Stack opintojaksojen nettisivu.