π A Modern Banking Solution with GTK, C, and PDF Receipt Generation
Welcome to the GTK Bank System β a robust desktop banking application designed with secure transactions, PDF receipt generation, and an intuitive UI. Built using C, GTK, and Cairo, this project showcases how traditional banking systems can be modernized with elegant graphical interfaces.
I developed this project to demonstrate that C is not limited to low-level programming. By integrating GTK for UI and Cairo for PDF generation, I have built a full-fledged banking system featuring:
- Secure file-based user authentication
- Real-time transaction tracking
- Automatic PDF receipt generation
- Cross-platform compatibility
This project reflects my expertise in GUI development, data persistence, and system design using pure C.
β
User Authentication
β
Deposit & Withdrawal with Balance Tracking
β
PDF Receipt Generation
β
Password Management
β
Transaction History
β
Cross-Platform Support
- β¨ Auto-Saving β Transactions generate PDF receipts automatically
- β¨ Detailed Records β Includes timestamp, transaction type, and amounts
- β¨ Professional Formatting β Clean layout with bank branding
- β¨ Instant Access β Opens automatically after generation
Ensure you have GTK installed on your system:
sudo apt update && sudo apt install libgtk-3-dev- Install GTK
- Download and install MSYS2 from https://www.msys2.org/.
- Open MSYS2 MinGW 64-bit and run the following commands to install GTK:
pacman -S mingw-w64-x86_64-gtk3 pacman -S mingw-w64-x86_64-gcc
- Add GTK to Path
- Find your MSYS2 installation directory (e.g.,
C:\msys64\mingw64\bin) and add it to your system Environment Variables underPath.
- Find your MSYS2 installation directory (e.g.,
https://github.com/Deba-Codex/GTK-Bank-System.git
cd GTK-Bank-Systemgcc Bank_System.c -o Bank_System `pkg-config --cflags --libs gtk+-3.0`
./Bank_Systemgcc Bank_System.c -o Bank_System.exe `pkg-config --cflags --libs gtk+-3.0`
./Bank_System.exe- Run the program and enter your username and password.
- If new, a new account will be created for you.
- After login, you can deposit, withdraw, change password, or view transaction history.
- Click Logout to switch users securely.
- The receipt button lets you view past transactions.
I've designed the interface to be clean, minimalistic, and easy to use. The application is centered on the screen for a modern feel, and fonts are optimized for clarity.
Enhancing UI/UX in C? YES, IT'S POSSIBLE!
Icons, colors, and spacing are carefully arranged to improve usability while keeping performance optimal.
graph TD
A[π» User Interface] -->|Handles user inputs| B[π Authentication]
B -->|Validates user credentials| C[π° Transaction Management]
C -->|Processes deposits & withdrawals| D[π¨οΈ PDF Generation]
D -->|Creates & saves receipts| E[πΎ Data Persistence]
C --> F[π Transaction History]
F -->|Stores & retrieves past records| E
- Fork the repository.
- Create a feature branch (
git checkout -b feature). - Commit your changes (
git commit -am 'Add feature'). - Push to the branch (
git push origin feature). - Open a Pull Request.
This project is licensed under the MIT License β see LICENSE for details.
- π§ Email: debasishdash2616@gmail.com
- πΌ LinkedIn: Debasish Dash
If you find this project useful, don't forget to star β the repository!

