P01 Bankapplikation

Det har blivit dags för ett första lite större projekt. I detta projekt så ingår samtliga delar i de fem första momenten och du skall få bygga en bankapplikation som mer simulerar en bankomat där en, eller flera, användare kan sätta in och ta ut pengar på sitt konto.

P01.1 Grundkrav för projektet

Uppgiften är att skapa en fullt fungerande applikation som simulerar ett bankkonto. Det skall gå att sätta in pengar, ta ut pengar samt visa upp alla transaktioner. Transaktionerna skall lagras i en fil och saldot på kontot skall beräknas. Vid skapandet av ett bankkonto får kunden 1000kr insatt på kontot. Insättning och uttag får vara vilket belopp som helst, fast vi jobbar bara med hela kronor i grunduppgiften.

Denna applikation har jag byggt som en tutorial där du kan ta hjälp för att lösa uppgiften. Tutorial hittar du här. Denna tutorial är lämplig för alla att göra först, för den elev som känner att hen har koll på programmering finns en hel del att lära främst när det gäller strukturen kring hur en applikation kan/bör byggas upp. För elever som tycker att programmering är lite klurigare så är det skönt att luta sig mot denna tutorial som stöttar dig hela vägen genom uppgiften.

P01.2 Tilläggsfunktionalitet

När du har skapat en fungerande bankapplikation utifrån grundförutsättningarna så är det dags att på egen hand träna på att bygga vidare på din applikation.

Tips

Här kan det vara en god idé att vara nogrann med någon form av versionshantering, dvs att kopiera sina projekt när de fungerar och sedan arbeta vidare på en kopia så att du enkelt kan gå tillbaka till en fungerande version när/om något skulle gå väldigt fel. Enklaste sättet är att stänga ner projektet, ta en kopia på hela mappen, och sedan fortästta jobba med den ena versionen.

P01.2.1 Enklare tillägg

Här kommer två enklare tillägg som gör att du kommer igång med att förändra applikationen.

  • Anpassa applikationen för decimaltal.
  • Lägga till datum och tid för transaktionerna samt visa upp dessa.

P01.2.2 För högre betyg än E/D

Betygsinfo

Troligtvis så kommer det krävas att du har gjort någon av nedanstående utbyggnader för att nå ett betyg högre än E/D när betyget på kursen senare skall sättas.

Nu blir det lite klurigare och det kommer ställas lite större krav på dina programmeringskunskaper. Som alltid är det viktigt att tänka och planera först för att på det sättet styra applikationen i den riktning som du vill och inte bara knacka kod och hoppas att det löser sig senare, det gör oftast inte det.

  • Skapa flera konton för en användare.
  • Skapa flera användare vilket kräver någon form av inloggning.
  • Skapa möjlighet att flera användare kan ha flera olika konton.
  • Funktionalitet kring hantering av olika konton, oavsett vem som äger dessa. Hur överför man pengar från egna konton? Hur gör man en överföring till någon annans konto?

Här är det inte sagt att om du löser den ena uppgiften så når du ett visst betyg på uppgiften och om du flera av uppgifterna så når du ett annat betyg. Det är kombinationen av lösningen och svårigheten i uppgiften som senare kommer var grunden för ditt betyg på kursen. Det kommer också finnas fler projekt senare i kursen som skall vägas in i slutbetyget.

Tips

Ta en stund att fundera på hur du vill lagra data i fil, filer och eventuellt i vilket format som datat skall lagras. Det finns flera möjliga alternativ som elever har använt sig av för att lösa denna uppgiften och samtliga lösningar har både fördelar och problem på vägen.

I M05.2.3 JSON så kikade vi lite på alternativet att lagra data som dictionary/JSON vilket är en möjlighet du kan ha med dig.

P01.3 Inlämningsinstruktioner

Innan du lämnar in uppgiften kolla att följande saker är gjorda;

  • Det du lämnar in måste på något sätt ha ditt namn och din klass i namnet. Det enklaste är att skapa ett nytt projekt (egen mapp) som du döper enligt 18TEx_Anders_Andersson och sedan när du är klar så packar du hela denna mappen i en zip-fil. Då behöver du inte döpa varje fil specifikt med din klass och ditt namn. Lämna sedan in zip-filen i Classroom.
  • Applikationen körs utan error. Koden är rensad från testdata och ser ok ut att lämna in. Om du har flera versioner av samma fil (kopior eller säkerhetskopior) så tar du bort de som inte skall finnas med vid inlämningen.
  • Källkoden är kommenterad. För din egen del se till att du kommenterar koden eftersom den hela tiden byggs på.
  • Skapa ett huvud i källkoden, i huvudfilen där själva programmet startar, där du som en kommentar skriver ditt namn och klass, om du har gjort några tilläggsuppgifter utöver tutorial och sedan en kort utvärdering av lösningen/ditt arbete.

Exempel på kodhuvud

# Anders Andersson, 18TEx
# Bankapplikationen, endast tutorial
# Det var en kul och utmanade uppgift där .......
# Det som var mest utmanande var ...
# ....

Inspelad redovisning

Under tiden vi tvingades bedriva undervisning på distans pga Covid-19 så fick eleverna spela in sin egna redovisning. Detta blev så bra både för läraren men också för eleven som verkligen fick visa hur hen genomförde ett sluttest av applikationen samtidigt som eleven fick berätta och förklara vad som hände under testningens gång. Denna redovisningsmetod blev också möjlig för elever att välja även vid slutprojketets redovisning och då kom vi gemensamt till att det var bra att ha tränat på det en gång innan.

Du skall demonstrera, och berätta om din applikation, samtidigt som du filmar detta. Endast jag kommer titta på din film så för dig kommer det bli samma sak som om du redovisade inför endast mig. Den enda skillnaden är att jag inte kommer ställa frågor till dig utan du har fått frågorna innan, du vet exakt vad du skall visa och om du inte är nöjd så har du dessutom möjligheten att göra om.

Hur går det till?

  • Du skall filma din skärm när vi visar upp din applikation. Jag vill att du använder det testschemat som finns i tutorial så att jag får se att all funktionalitet fungerar i din applikation.
  • Om du har byggt ut applikationen mer än vad som gjordes i min tutorial så vill jag att du visar upp dessa delarna, om du har gjort många tillägg så se till att du skapar ett eget testschema så att du inte missar något. Var inte rädd för att visa testschemat i filmen, då blir det lättare för mig att följa din redovisning.
  • När du ändå filmar så är det lika bra att passa på att muntligt köra utvärderingen av uppgiften, av ditt arbete och presentation av lösningar du är extra stolt över.
  • Filma skärmen i valfritt program i datorn, ej via mobil eller annan extern kamera.
  • På macOS så är det absolut enklaste sättet att spela in sin skärm att använda QuickTime Player som är inbyggt. Om du inte testat det tidigare så gör en kort inspelning för att se att både bild och ljud fungerar. När du vet att det fungerar så är det bara att köra. QuickTime är superenkel att använda men om du behöver hjälp att komma igång så hittar du det lätt på nätet, det är bara att googla.
  • Lägg upp filmen på Youtube, du har ett konto kopplat via ditt skolkonto. Lägger du upp filmen som olistad så kommer man endast åt den genom att ha tillgång till länken. Länk till filmen placeras i inlämningsuppgiften på Classroom.
  • Jag vill att filmen finns tillgänglig under resten av kursen, när du har fått ett betyg så kan du ta bort den om du vill.
  • Om du inte kan/vill lägga filmen på Youtube så är det viktigare för mig att redovisningen blir av. Gör filmen tillgänglig på något sätt och länken skall jag kunna nå från inlämningsuppgiften i Classroom.