Web-sovellus -kurssi 21.4.-~2.6

Hei kaikki!

Asiasta on jo ollut mainintaa Slackissa #web-kehitys -kanavalla. Nyt kurssin runko ja aikataulu ovat selvillä, ja ILMOITTAUTUMINEN tapahtuu vastaamalla tähän viestiin, kuten muillakin kursseilla.

Kurssi alkaa ke 21.4. klo 18 (-~20.30), Google Meetillä - linkki myöhemmin.

Runko on täällä: FI · akauppi/GroundLevel-firebase-es Wiki · GitHub

0. Kehitysympäristön pystytys Tämä tehdään omatoimisesti, ennen ensimmäistä kurssikertaa. 1h
1. Täyteen vauhtiin Tempaistaan malli-reposta git-klooni, käännetään se ja toimitetaan verkkoon omalla tunnuksella. 2,5h
2. Sovellus (front end) Tutustutaan aplikaation koodiin: Vue, Vue Router
3. Soevllus II Tutustuminen jatkuu: Firebase-emlointi, Cypress-käyttöliittymätestaus
4. Backend I Firestore -tietokanta ja sen Security Rules (joilla pääsyä voidaan rajoittaa), testaus
5. Backend II Cloud Functions ja muut jäljelle jääneet asiat
6. Front-endin paketointi ja toimitus tuotantoon Keskitetyt lokit, suorituskyky, Rollup, operatiivinen valvonta
7. Loppusuora: CI/CD Toistemme sovelluksiin tutustumista / käyttöä. Testauksen automatisointi; toimituksen automatisointi (Cloud Build)

Kurssi on varsin laaja, mutta myös omaperäinen. Käytämme ainoastaan uusimpia web-standardeja ja kehitysvälineitä (mm. EcmaScript modules, ei Webpack) ja siten osa asioista, joita vastaavilla kursseilla muuten opetettaisiin voidaan kokonaan ohittaa.

Kuten kurssirungosta näkee, hyppäämme myös suoraan syvään päähän. Jokaisella on ensimmäisen kurssikerran jälkeen oma sovellus pilvessä, ihan oikeasti. Loppukurssi menee sen opiskeluun, mitä tässä oikein tapahtuu ja miten voin muokata sovellusta mieleisekseni.

Kurssille voi osallistua kahdella tavalla. Joko olla vain “kyydissä mukana” ja imeä oppia esiteltävistä tekniikoista. Tämä on ihan ok. Toisessa tavassa mukana on ajatus jostain omasta sovelluksesta, jonka haluaisi olla olemassa, ja kurssi pyrkii auttamaan tämän toimintaan saattamisessa. Tällaisen sovelluksen koodaus olisi kuitenkin kurssikertojen välissä tapahtuvaa, omatoimista tekemistä.

Osallistumisen edellytykset

Tietokone, verkkoyhteys (mielellään kamera) ja halu oppia uutta. Perustieto HTML:stä, CSS:stä ja JavaScriptistä riittää (näihin on kurssimateriaalissa linkit, jos haluaa varmistaa osaamistaan ennen kurssia).

Kurssi ei siis opeta, “mistä veppisivut on tehty”, vaan keskittyy modernin web-sovelluksen (ns. Single Page Application) käytännön toteutukseen ja sen ylläpitoon itse toteutuksen jälkeenkin.

Tervetuloa kurssille!

Kirjoittelin tähän ketjuun ajatuksia yhdestä mahdollisesta sovelluksesta, jota voisi läbille kehittää vaikka tämän kurssin aikana.

Mukana!

1 Like

Minulle sopii, että kurssiin osallistuu myös muita kuin Helsingin Hacklabin jäseniä. Työkalujen osalta ymmärrän näkökulmasi, mutta kurssin vetäjänä Meet on minulle tuttu ja Jitsi ei. Kurssiin itseensä sisältyy epävarmuusasioita riittävästi, joten mieluiten ajan tutulla välineellä. Lisäksi on pyydetty mahdollisuutta sessioiden nauhoitukseen (kurssilaisten käyttöön).

Ymmärrän pointtisi avoimesta lähdekoodista - sitä itsekin teen.

Ennen kurssin alkua teemme lyhyet käytössäännöt, jotta asiat ovat kurssin alettua selvillä. Käytännössä nuo säännöt ovat ”toimi, kuten toimisit Hacklab Helsingin tiloissa”.

Mukana!

1 Like

Ilmottaudun mukaan.

1 Like

Mukana.
T:Simppa

1 Like

JEP, mukana!

-eero-

1 Like

Lisänä wikin asennusohjeisiin: jos käytätte VS Code:a, laittakaa myös seuraavat plugarit:

Mukana.

1 Like

mukana!!

1 Like

Mukana.

1 Like

tuntuu kiinostavalta, mutta selviänkö vanhalla koneella ja hitaalla nettiyhteydellä, slack-tiliäkään kanssa en ole vielä onnistunut :frowning:

Mukana

1 Like

Vilho, eikös tuo parhaiten kokeilemalla selviä.
Puhelimellakin usein onnistuu jos ruudun pienuus ei haittaa.

Laitatko vähän tietoa, miten vanhasta koneesta on kyse - käyttöjärjestelmä ja muisin määrä. Tähän tai akauppi-gmail.com. Jos on Windows 10, pitäisi onnistua. Kuten Matti jo mainitsi, siitä vain kokeilemaan. Asennusohjeet ovat jo valmiina.

Mukana ja vaimokin labin ulkopuolisena mukana.

1 Like

Koneita on oikeastaan kaksi. Kotona on nyt käytössä Compaq Presario 4 Gt ja Celeron joskus vuodleta 2010, käyttis on Ubuntu 20.04. Tässä koneessa nodejs toiminee, ainakin pakettivarastoista saatava versio 10 näyttää toimivan.

Toinen kone on pienimuistinen pilvikone, 2 Gt. Sen suoritin on joku saatavilla oleva huippusuoritin, en enä muistaa, mutta se ei aiheuttane ongelmia.

Sitten labilla olen käyttänyt sitä läppäriä keittiön kaapin päältä, mutta nythän labille ei edes voi tulla, jos ei ole slackia, jonne ilmoittautuu, joten täss vaiheessa sen voinee jättää pois laskuista.

Pilvikoneella on Apache ja php ja siellä on muutama virtuaali-isännöity sivu, joissa on pari vaatimatonta html-sivua, joissa on ihan vähän tavallista tekstisisältöä. Sivut tehty siten, että uusi teksti voidaan kirjoittaa itsenäisenä html-asiakirjana ja kaikkien sivujen linkkiluettelo muihin samanlaisiin sivuihin päivittyy ajax-tyylisesti niin, että uusi, lisätty sivu on heti näkyvissä kaikkien muiden sivujen linkkilistassa eikä niihin tarvitse sen enempää koskea, vaikka kirjoittaisi uuden html-sivun.

Palvelimella ongelmana on se, että sivujen on ajateltu olevan ihan oikeasti aina saatavilla eli kovin extreme kokeiluja palvelimella ei voine tehdä.

Palvelinsivun saaminen https-muotoon http-muodosta toi ihan uuden ongelma-alueen sertifikaattipäivityksineen.

Se, miten nodejssä tehdään sertifioitu sivu ei vielä ole selvillä. Netin nodejs-esimerkeissä laitetaan yleensä mikä vain vapaa portti eikä sertifikaattiesimerkkiä ole vielä löytynyt.

Apache - php - ajax - html - yhdistelmä ei tunnu kovin helppokäyttöiseltä omalla osaamistasollani, joten jos nodejs voisi yksinkertaistaa asioita, se voisi olla hyvä vaihtoeheto.

Jos kone on vanha, kurssille osallistuminen (Google Meet) kannattaa hoitaa toisella tavoin, esim. puhelimella.

Vilhon https-asioihin sanoisin, että Firebase tarjoaa noihin ratkaisun enemmän kuin node ja tämä on hyvä tiedostaa myös kurssin olemuksesta tässä vaiheessa: emme viritä palvelinta, vaan toimimme “serverless”-maailmassa jossa haasteet ovat osin erit kuin aiemmilla kerroilla. Näen, että tuo esittämäsi maailma on “serverimaailmaa” ja nyt ollaan sitten “pilvessä”. :dash:

Firebase hosting toimii https:n päällä, eli kun laitamme sivut - tai sovelluksen - sinne, sertifikaateista ei tarvitse missään vaiheessa edes tietää mitään.

Kurssille riittää kuitenkin muuta opittavaa.

Päivitys:

Teen huomenna muutoksia kehitysympäristön pystytysohjeisiin. Olin unohtanut, että emulaattoria varten Firebase tarvitsee Java JRE:n (ajonaikainen ympäristö), versio 1.8 kuulemma riittää, mutta jos instaatte, niin mieluummin uudempi, esim. Java JRE 11.

Emulointi on olennainen osa kurssin rakennetta. Sillä vältytään esim. serveripuolen asioiden matkimiselta (mock), koska saamme tuotantoympäristöä vastaavat toiminnot omalle koneelle ajettaviksi. Täten on suotavaa, että meillä kaikilla on Java JRE asennettuna.

Emulointiin voi halutessaan tutustua täältä: Introduction to Firebase Local Emulator Suite