Skip to content

ATM application using Qt C++ integrates with SQLite database, providing basic banking functionalities including Withdraw, Deposit, and Transfer operations

License

Notifications You must be signed in to change notification settings

AhmedAbd-ElFattah/ATM-Machine-GUI

Repository files navigation

ATM Application

Developed an ATM machine application for Raspberry Pi, integrated with a Yocto-based image. The project includes a dedicated Yocto layer Click here to view this yocto-layer which is responsible for compiling the ATM application and additional Linux device drivers.

Table of Contents

Project Operation

System allows new clients to reserve a number by simply pressing a dedicated push button. When the current client completes his transactions and logs out, the system increments the client number by one.

Seven Segment Module plays a role in keeping users informed. It displays the current client number, providing a clear visual cue for the user currently being served. Additionally, if user pressed push button to reserve a new number it shows his number.

Seven Segment Module

Green LED indicator serve as a mechanism to indicate the system's availability. It signifies that the ATM is not busy, indicating to users that they can log in to their accounts.

Users can input their authentication details and interact with machine through it.

Keypad 4*4

Buzzer is integrated to provide audible feedback. It signals successful data input and acknowledges button presses, offering users a confirmation of their actions

Composed of two push buttons one for scrolling up and the other for scrolling down. It integrates with operations like Show Balance, Transfer Balance, Withdraw, and Deposit to navigate between different accounts.

Application Pages

Login Page

Service Page

Account Balance Page

Deposit Page

Transfer Money Page

Getting started

  1. Install Build Host Packages of yocto dunfell Reference.
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit mesa-common-dev
  1. Select machine through
export MACHINE="raspberrypi3"
  1. Clone yocto project dunfell branch
git clone -b dunfell git://git.yoctoproject.org/poky
cd poky
  1. Download the following layers Note that one of resposibilities of meta-atm-machine layer is fetch application through git repository
git clone https://github.com/AhmedAbd-ElFattah/meta-atm-machine
git clone -b dunfell https://github.com/meta-qt5/meta-qt5
git clone -b dunfell git://git.openembedded.org/meta-openembedded
git clone -b dunfell git://git.yoctoproject.org/meta-raspberrypi
git clone -b dunfell https://github.com/schnitzeltony/meta-qt5-extra
  1. run the oe-init-build-env environment setup script
source oe-init-build-env ATM-Image
  1. Add theese layers
bitbake-layers add-layer ../meta-openembedded/meta-oe
bitbake-layers add-layer ../meta-openembedded/meta-python
bitbake-layers add-layer ../meta-openembedded/meta-networking
bitbake-layers add-layer ../meta-openembedded/meta-multimedia
bitbake-layers add-layer ../meta-openembedded/meta-gnome
bitbake-layers add-layer ../meta-raspberrypi
bitbake-layers add-layer ../meta-qt5
bitbake-layers add-layer ../meta-qt5-extra
bitbake-layers add-layer ../meta-atm-machine
  1. Build Image
bitbake atm-machine-image
  1. Flash image into SD-Card You can use this link from yocto to help you flashing image into SD-Card

About

ATM application using Qt C++ integrates with SQLite database, providing basic banking functionalities including Withdraw, Deposit, and Transfer operations

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published