# Gör ett enkelt terminal program
```
author: krm
created: 2025-09-30
image: /image/courses/house.png
status: alpha
```

Några grundläggande om att utveckla ett program med deno.

# Beskrivning

Du ska göra ett enkelt program för deno. 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.

# Resurser

- +🧭 [Verktyg](Planning/tools.sv.html)
- [Exempel program](https://gitlab.com/krmit/mimer-important-day)
- [Ett mer avancerat exempel program kallat Ada](https://gitlab.com/krmit/mimer-important-day)

# Genomförande

Gör ett program utifrån dina önskemål. För att bar klara uppgiften 
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.

- [En lista på förslag](https://htsit.se/kaos/Courses/webbserverprogram-1/Note/sugestions.sv.html)

Observera att du kan behöva göra om din json fil.

## Allmänt

- Installera paket som behövs.
- Skriv ofta fmt komandot.
- Filen ska vara körbar
- De viktigaste funkionerna ska vara exporterade.
- För de två sista se följande guide.	

## Lägg till data

- Definiera relevanta interfaces och typer utifårn din json fil.
- Ge Json data en typ med "as"
- Skapa en fil för en funktion som ska adderar något till din json-fil
- Alternativt skapa en egen json-fil. Se demot med Ada.
- Ställ relevanta frågor till användaren i funktionen ovan.
- Gör en funktion som skapar ett objekt utifrån svaren från användaren.
- Spara objekt som skapas på rätt plats och i rätt fil.

## Gör något med data

Fundera på om det är något speciellt ditt program ska göra. Skriv funktioner för detta.

- Skriv ut ett meddelande till användaren, använd gärna färger.

## Använd verktyg

- Skapa en testfil och lägg till en test för funktionerna ovan.
- Kör testen.
- Gå till funktionen du gjorde ovan, lägg till dokumentation.
- Generera dokumentation

## Övrigt

- 💎 Skapa en main fil som har options för att välja rätt.

# Inlämning

Du lämnar in enligt guiden ovan. Du kan lämna in flera gånger om du 
inte blir nöjd med bedömning, men du får bara ett 🥉 om du lämnar in 
efter deadline.

- 🔗 [Inlämning](/kaos/Courses/webbutveckling-1/Tutorial/make-a-submission.sv.html)
- 🔗 [Formuläret för inlämning](/kaos/Courses/webbutveckling-1/Tutorial/make-a-submission.sv.html)
- Lämna in med namnet "tools" eler "verktyg". 

Observera att du kan lämna in flera gånger om du inte blir nöjd, men du 
får bara ett 🥉 om du lämnar i tid.

# Bedömning

## + 🥉 Du har följt beskrivningen

- Du har gjort ett enkelt program som fungerar med Deno.
- Du har minst en funktion.
- Du har använt dig av tester.
- Du har dokumenterat minst en funktion.

## + 🥉 Du har arbetat på ett bra sätt.

- Tänk igenom ett syfte med ditt program.
- Se förslag och skriv detta i din README fil.
- Du har gjort så många funktionern som behövs, minst två stycken.
- Lämnat in minst två gåner.

## + 🥉 Du har arbetat på ett bra sätt.

- Du har gjort funktionern som är lämpliga att testa när möjligt.
- Din dokumentaiton av ditt program är bra.
- Du testar alla funktioner som går att testa.
- Lämnat in minst två gåner.

## + 🥈 Bra skapat terminalprogram

- Guiden har följts och resultat är snyggt.
- Programmets idè är intressant.
- Din kod är välstrukturerar.
- Du har använt bra namn på allt.
- Koden är dokumenterad på ett bra sätt.
- Lämnat in minst tre gåner.
