Todo app
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

2.4 KiB

title description navigation date img tags
Bank ATM Bank ATM. true 2018-03-18 /img/bank-atm/arduino-fritzing.png [C++14 Qt4 Software Hardware]

Bank ATM.

The goal of this project was to create a banking system, including an ATM client. It was created for one of the courses (project 3) at Hogeschool Rotterdam and was written in C++14 and Qt4.

The slides{target="_blank"} for the presentation that I gave at Hogeschool Rotterdam.

Product demo

Korte video waarin de meeste functionaliteit van de bank ATM wordt getoond.

::VideoLazy{:src="/img/bank-atm/demo.webm"} ::

Overzicht componenten

  • Bank
    • MySQL server
    • Native applicatie
  • Arduino Nano
    • RFID-RC522
    • Matrix membrane 4x4 keypad
  • USB kabel voor seriële communicatie

component summary

Overzicht systeem

De applicatie bestaat uit 3 threads, welke allemaal een unieke functie hebben. De main thread bevat de GUI. De database thread voert alle queries uit en slaat deze data op. En als laatst de serial thread, deze thread bevat een listener die alle seriële data ontvangt. Afhankelijk van wat de serial thread aan user input ontvangt zal de SerialCommand class "commando's" uitvoeren die de GUI en database thread gebruiken.

system summary

Database ERD

Hieronder is de ER (Entity-relationship) diagram te vinden.

database ERD

Database ontwerp

  • MySQL server
  • Lokaal opgeslagen

Hieronder is de EER (Enhanced entity-relationship) diagram te vinden.

database EER

Arduino - fritzing

  • Arduino Nano
  • RFID-RC522
  • Matrix membrane 4x4 keypad

arduino design

GUI

  • Native applicatie
  • Geschreven in C++14 en Qt4
  • Cross platform (build tool: qmake)
  • Multithreaded

Ten alle tijden kan de sessie worden afgebroken door de pas uit de pinautomaat te verwijderen, de interface wordt daarna naar de inlogpagina doorgestuurd. Alle velden waar de gebruiker gegevens kan invoeren, hebben de mogelijkheid voor het weergeven van foutmeldingen.

Hieronder zijn schermvoorbeelden te vinden.

GUI flow