Appearance
Materiaalit
Opintojakson sisältö
Edistynyt autentikaatio ja autorisointi (käyttäjän tunnistaminen ja käyttöoikeuksien hallinta)
Rajapintadokumentaation (API-dokumentaation) automatisoitu tuottaminen
Saman backend –sovelluksen hyödyntäminen useassa frontend –sovelluksessa
Edistyneiden tietokantaominaisuuksien kytkeminen backend –sovellukseen
Reaaliaikainen tiedonsiirto
Fullstack – ohjelmistoprojektin testaaminen ja tekninen hallinta (CI/CD)
Asennettavat ohjelmistot
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.
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
- Henkilökohtaisen projekti, toteutetaan ryhmätyö projektiohjeistuksen mukaisesti.
- Jos jatkat projektia FullStack 1 opintojaksolta, sovi erikseen opintojakson ohjaajan kanssa tästä!
- Aiemman osaamisen perusteella näytetty osaaminen suhteessa opintojakson oppimistavoitteisiin
Arvosanan muodostuminen
Opintojaksokokonaisuuden arvosana muodostuu arviontikriteerien perusteella tehtäväkohtaisesti jaoteltuihin pisteisiin.
Projektin pisteytys
Pisteet | Arvosana |
---|---|
+40p | 1 |
+50p | 2 |
+60p | 3 |
+70p | 4 |
+80p | 5 |