Idé och syfte
Idén med detta projekt är att göra en fungerande bank där varje användare ska ha minst ett konto, man ska kunna sätta in och ta ut pengar samt ska dessa transaktioner sparas och skrivas ut så att användaren kan se dem. Syftet är att göra detta projekt på C nivå för att kunna få det som slutbetyg i kursen.
Målgrupp
Vilka användare som helst, nästan alla använder en bank applikation.
Skiss
Eftersom jag ska bygga vidare på den bank jag tidigare har gjort så tänker jag att jag inte behöver någon mockup, wireframe eller något sånt då sidan redan är gjord.
Kravspecifikation
- Ska: Inloggningssystem med databas, minst ett konto per användare, transaktioner ska lagras, hashade lösenord
- Bör: Lägga till möjligheten att ha fler konton
- Kan: Snygga till användargränssnittet
Genomförande
Jag börjar med databasmodelleringen, detta görs med hjälp av diagrams.net för mitt ER-diagram och Vertabelo för min datamodell. Efter det börjar jag bygga om min bankapplikation för att använda databasen istället för att spara allt i en fil. Här ingår att spara användarens inloggningsuppgifter och transaktionerna i en tabell inuti databasen. Även behöver jag göra en sida där man kan skapa konton och även välja ett konto. Sedan så klart populera transaktion tabellen och beräkna saldot på ett konto utifrån det. Även måste HTML och CSS valideras.
ER-Diagram

Databas modell

Dokumentation
Applikationen skyddas från SQL-Injektion genom att jag använder PDO prepared statements. Från vanlig string-injektion skyddas jag genom att kontrollera de inputs som användaren kan göra. Jag kollar igenom stringen och kollar efter potentiellt skadliga tecken.
Lösenorden lagras i databasen krypterade med sha1() metoden och visas då i krypterad form och inte i klartext.
För att komma till admin panellen används användarnamn admin och lösenord admin, detta hade så klart aldrig funkat i en riktig applikation men eftersom detta bara är en prototyp så anser jag att det är okej. För allmänna konton kan du antingen skapa dem genom admin panellen eller skapa dem själv genom att trycka på skapa konto knappen på login sidan.
Anledningen varför jag använder engelska för vissa variabler och svenska för andra är på grund av problem jag fick när jag använde svenska för min databasmodell. Det gjorde så inget funkade men när jag bytte om databasen till engelska fungerade allt men orkar inte byta alla variabler i min kod till engelska. Jag tänker att så länge jag vet att man borde ha enighet och jag borde använda engelska för allting är nog.
Det går att logga in som admin genom att ange användarnamnet admin med lösenordet admin, då kommer man in på admin sidan och man kan lägga till användare, ta bort dem, låsa deras konton etc.
Även går det att skapa konto själv som i en riktig applikation när man först kommer in på webbsidan.
Utvärdering
Allt gick helt okej, det svåraste var väl att modellera databasen. Att preparera statements var också lite klurigt då syntaxen måste vara perfekt, man kan inte ha ett enda litet fel och ibland kan det vara lite svårt att märka vad man har gjort fel om det bara till exempel är ett mellanslag eller något.