# 🚧 Verktyg - Typescript och Node med vänner

__ status: alpha author: krm icon: 🧩 created: 2023-12-05 __

Detta är en uppgift i att skapa en program med node och typescript. Detta
utifrån de guider och mall som du har fått. Detta är grunden för andra likande
projekt som vi kommer göra i kursen.

# Innehåll

- 🔗 [Du hittar resurserna som ska använda här](https://htsit.se/t)
- 🔗
  [Du ska använda mallar från vårt akriv](https://gitlab.com/krmit/mimer-template.git)
- 🔗
  [Du har ett exempel projekt som kallas **ascii-sign**](https://gitlab.com/krmit/ascii-sign)
- 🔗
  [Önskelista för nya guider och exempel](https://docs.google.com/document/d/1_MEsWywegSYekoa4lyBHnQl_CzUUbFAXhhVmeUzULz4/edit?usp=sharing)

# Tänk på

- Undrar du om något finns aktuella regler längs ned i dokumentet.
- Tillsammans med alla guider blir uppgiften rätt så lång.
- Men uppgiften är inte svårt om du gör en guide i taget.
- Guiderna upppdatera kontinuerligt eftersom fel hittas och förtydliganden
  behöver göras.
- Guider kan också läggas till om önskemål om fler guider görs.

# Förslag

För E behöver du inte göra annat än ett demo program som inte har någon mening.
Men det blir roligar och krävs för högre nivåer att ditt program har något
syfte. Här kommer några förslag.

- Skriver ut antal dagar fram till studenten, inklusive lite special dagar.
- Beräkna hur många dagar det har gått från en viktig händelse.
- Skriver loggar till en fil.
- Simulerar att slå olika antal och typer av tärningar.
- Hämtar något information från internet och skriver ut det på terminalen.
- Hämtar något RSS från internet och skriver ut det på terminalen.
  - https://www.dn.se/rss/
  - https://www.svd.se/?service=rss
  - https://polisen.se/aktuellt/rss/skane/handelser-rss---skane/
  - fler rss på https://polisen.se/Aktuellt/RSS/Lokala-RSS-floden/
- Spelet sten-sax-påse.
- Ett frågespel av något slag.

# Bedömning

Bedömingen ges från ett helhetsperspektiv utifrån programmet som skapas nedan,
men rekomendationen som ges här kommer oftas följas.

För att få E måste du göra alla punkter nedan som inte börjar med ett betyg. För
att få ett betyg måste du också ha klarat alla punkter med det betyget samt alla
för lägre betyg.

Kommentera kod om det behövs och se till att den är väl strukturerad. Att inte
göra det kan leda till ett lägre betyg.

# Genomförande

Följ de guider som finns nedan i ordning. Det du ska göra är någon form av
terminal baserat program. För E nivå behöver det dock inte ha någon anvädning
annant än att visa att du förstått innehållet i momentet.

## Förarbete

- 🦉 [Installation av node](../t/install-node.sv.md.html)
- 🦉 **C** [Installera och komma igång med git](../t/install-git.sv.md.html)

## Börja utveckla ett terminal program

- 🦉
  [Börja utveckla ett terminal program](../t/create-a-project-for-termninal.sv.md.html)
- 🦉 [Starta utveckling](../t/start-development.md.html)
- **C** Tänk igenom ett syfte med ditt program.
- **C** Se förslag och skriv detta i din README fil.
- **C** Du använder ett git arkiv under utvecklingen.
- **A** Programmets idè är intressant.

## Utveckla

- Skapa en modulfil, gör som det är gjort i mallen.
- 🦉 [Lägga till ett packet](../t/find-a-usefull-package.sv.md.html)
- **C** Du har minst en egen modulfil.
- **A** Du har importerat ett packet som inte fanns i mallen.

## Lägg till dokumentation och test

- 🦉 [Skriv test](../t/create-unit-test.md.html)
  - ⚙️ [Tester](../e/test/examples.sv.md.html)
- 🦉 [Skriv dokumentation](../t/documenting-code.sv.md.html)
  - ⚙️ [Dokumentation](../e/doc/examples.sv.md.html)
- **C** Dokumentationen av programmet är lätt att förstå.
- **C** Du har flera olika tester för ditt program
- **A** Dokumentationen är nyanserad och användbart.
- **A** Du har relevanta tester för alla funktioner i ditt program.

## Gör det bra

- **C** Du har tillämpat mallen utifrån din projekt idé.
- **C** Tänk igenom ett syfte med ditt program.
- **C** Programmet är väl fungerande
- **C** Din kod är välskriven.
- **A** Tänk igenom ett syfte med ditt program.
- **A** Din kod är optimal utfrån det som ska göras.

# Aktuella regler

## Om att följa guiderna

Om du väljer att inte följer andemeningen i guiderna eller inte använder mallar.

- Du kan inte få support.
- Ditt arbeter kommer bedömas som du gjorde det så var säker på att din kod har
  samma kvalitet.
- Om du fastnar och inte kommer vidare gå tillbaka och följ guiderna.
- Du ska inte diskutera lösningar med andra så inte felkatigheter sprids.

Observera att brott mot detta kan leda till lägre betyg.

## Lämna in

Programmet ska lämnas in på USB till läraren.

- Inlämning kan bara ske under lektionstid.
- Du bör lämna in innan deadline.
- Du måste vara personlig närvarande under inlämningen·
- Du ska också ha visat upp att det fungerar på din dator kontinuerligt medan du
  gör utvecklingen av programmet.
- Rättning på C och A nivå kan görs efter du lämnat in.

Om inte inlämningen har gjorts i tid kan den bara lämnas in på omprovsdagarna i
slutet av januari och slutet av maj.
