Skip to content
Snippets Groups Projects
Commit 50b4f5e9 authored by AA2875's avatar AA2875
Browse files

Harjoitustyö dokumentaatio

parent a2d0cb01
No related branches found
No related tags found
No related merge requests found
# Full Stack harjoitustyö
# Full Stack -ohjelmointi: Harjoitustyön palautus
18.9.2022 5h
\ No newline at end of file
HyppyNet: Laskuvarjohyppypäiväkirja
TTC2080-3012
11.12.2022
Rantala Eemil [AA2875]
Oma arvio harjoitustyön korottavasta vaikutuksesta: 2
https://gitlab.labranet.jamk.fi/AA2875/full-stack-harjoitustyo/-/tree/main/V2
___
## Kuvaus
Tavoitteena oli rakentaa opintojakson aihealueeseen liittyvä Full Stack -sovellus. Työn sai tehdä 1-3 hengen ryhmässä, mutta valitsin tehdä kokonaan yksin. Työ on tehty täysin omalla ajalla, mutta tarjolla oli myös muutamia tunteja ohjausta. Työn aiheen sai valita vapaasti, mutta se piti hyväksyttää opettajalla.
Laskuvarjo harrastuksesta innostuneena päätin tehdä niin sanotusta hyppypäiväkirjasta netti version. Normaalisti se on paperinen vihko, mutta sinne käsin kaiken kirjoittaminen jokaisen hypyn jälkeen käy tylsäksi. Hyppypäivä kirjassa on ylhäällä jokaisen hypyn perustiedot lentokoneesta päävarjoon.
## Itsearvio
**Vahvuudet**
- Sovellus on toimiva ja selkeä käyttää.
- Käytin laajasti kurssilla opittuja asoita.
- Lisäksi opettelin hieman kurssin ulkopuolisia asioita. Lähinnä DOM:in muokkaamiseen liittyvää.
- Käytin kaikkia CRUD metodeja.
- Syötteillä on jonkinasteinen tarkistus. Myöskään vaajaata lomaketta ei pysty lähettämään.
- Hyppy järjestyksen muuttaminen on kiva lisä. Sen tekeminen tuotti yksittäisestä asiasta eniten haasteita.
- Kenttien automaattinen täyttö osottautui käteväksi, vaikka tällä hetkellä vain hyppy numero ja vapaapudotusaika yht. täyttyvät.
- Yksittäisen tiedon muokkaaminen arvoa klikkaamalla tuo näppäryyttä muokkaamiseen.
- Hyppyä poistettaessa tulee mahdollisuus peruuttaa poisto 2.5s ajan. Tämäkin ilman ärsyttäviä ponnahdus ikkunoita.
- Sovellus laskee kokonaisvapaapudotusajan ja esittää sen minuutit ja sekunnit muodossa.
- Kommentin ja linkin voi lisätä myös jälkikäteen.
- Linkkiin lisäytyy https:// jos syötetty linkki ei ala sillä.
- Sivusto EI käytä evästeitä ;D
**Heikkoudet ja kehitysideat**
- Sovellusta ei ole julkaistu internettiin kaikille testattavaksi.
- Kirjautumis mahdollisuus ja profiili kohtaiset hyppytiedot olisi pakollisuus jos sovellus haluttaisiin oikeaan käyttöön.
- Haku tai suodatus tulisi käteväksi kun hyppyjä on satoja.
- Kun muokkaa koko hyppyä kerralla (kynä kuvake), niin kokonaisaika ei näy tallennuksen jälkeen minuutit, sekunnit -muodossa. Tätä työstin viimeisenä päivä pitkään mutta palautuspäivä tuli vastaan.
- Saman numeroisen hypyn voi lisätä useamman kerran. Pitäisi tehdä tarkistus sille.
- Päivämäärä kohtaan kalenteri valikko ja nappi josta voi valita kuluvan päivän helposti.
- Myös paikka, lentokone ja päävarjo kentät voisivat täyttyä edellisen hypyn perusteella. Nämä tiedot harvoin muuttuvat, niin tulee turhaa toistoa kirjoittaa ne aina.
- Youtube videon voisi upottaa tietolaatikkoon automaattisesti.
- Sivulla näytettäisiin vain n määrä hyppyjä kerrallaan.
- Osa funktioista on turhan pitkiä.
**Muuta**
En kommentoinut koodia lainkaan, vaan pyrin nimeämään muuttujat ja funktiot siten että ne kommentoisivat itse itseään. Tämäkään ei osoittautunut parhaaksi valinnaksi, sillä moni funktioista on turhan pitkiä ja tekee tavallaan useampaa asiaa. Jatkossa pilkkoisin funktioita pienempiin palasiin.
## Tekniset tiedot
Käytetyt kielet: HTML, CSS ja Javascript
Palvelinohjelmointi: NodeJS, jossa käytössä: Mongoose, Express, Cors
Tietokanta: MongoDB
### Funktioista
Sivun bodyn ladattua kutsutaan alustus funktiota, joka näyttää sivulle, että tietoja aletaan lataamaan ja asettaa globaalin muuttujan hyppyjen esitys järjestyksestä laskevaksi. Samalla se käynnistää asynkronisen tietojen lataus funktion. Tietojen latauduttua tietokannasta, funktio tekee siitä JSON muotoisen objektin ja antaa sen parametrina `showJumps` funktiolle.
`showJumps` järjestää JSON tiedoston hyppynumeroiden perusteella laskevasti tai nousevasti em. globaalin muuttujan perusteella. Tämän jälkeen jokainen hyppy annetaan parametrina `createJumpListItem` funktiolle joka luo jokaisesta `<li>` objektin sivulle ja lisää niille hyppynumeron ja päivän. Lopuille hypyn tiedoille on erillinen `jumpItemFullInfo` funktio, ettei pääfunktio olisi liian suuri. Sillä lisätään hyppy elementin sisälle lista lopuista tiedoista, mutta ne on oletuksena piilotettuna.
Funktiot joilla voidaan muokata ja poistaa hyppyjä, saavat parametrina klikatun objektin id:n, jonka avulla saadaan muutos oikeaan objektiin.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment