๐Ÿฆ ATM Management System

Professional banking system with encryption, real-time notifications & enhanced UI

C99 Standard MIT License XOR Encryption POSIX Threads Named Pipes IPC GitHub Actions CI/CD Professional Makefile
View on GitHub Features

๐Ÿš€ Quick Start

git clone https://github.com/g-laliotis/atm-management-system.git cd atm-management-system make ./bin/atm # Sample credentials Username: Alice, Password: 1234password Username: Michel, Password: password1234

โœจ Core Features

๐Ÿ‘ค

User Management

Secure registration and login with unique username validation and encrypted password storage

๐Ÿ’ฐ

Account Operations

Create, update, and manage multiple account types: savings, current, fixed01/02/03

๐Ÿ’ธ

Transactions

Deposit and withdraw with balance validation. Fixed accounts protected from transactions

๐Ÿ“Š

Interest Calculation

Automatic interest calculation: Savings 7%, Fixed01 4%, Fixed02 5%, Fixed03 8%

๐Ÿ”„

Transfer Ownership

Transfer accounts between users with instant real-time notifications

๐Ÿ—‘๏ธ

Account Removal

Delete accounts with ownership verification and persistent storage updates

๐ŸŽจ Bonus Features

๐Ÿ”

Password Encryption

XOR cipher encryption for secure password storage in text files

๐ŸŽฏ

Enhanced Terminal UI

Color-coded messages, professional layout with Unicode box-drawing characters

๐Ÿ””

Real-time Notifications

Named pipes (FIFO) with background threads for instant transfer alerts

๐Ÿ“

Professional Structure

Organized folders: bin/, obj/, src/, data/, logs/, docs/

๐Ÿ—„๏ธ

SQLite Support

Optional database backend with conditional compilation (`make sqlite`)

๐Ÿงช

Test Suite

Comprehensive automated testing with `make test` for all core functionality

๐Ÿš€

CI/CD Workflows

GitHub Actions for automated testing, releases, and security analysis

โšก

Code Optimization

Modular design with separated utilities and reduced code duplication

๐Ÿ—๏ธ Project Structure

atm-management-system/ โ”œโ”€โ”€ bin/ # Compiled binaries โ”œโ”€โ”€ obj/ # Object files โ”œโ”€โ”€ src/ # Source code โ”‚ โ”œโ”€โ”€ header.h # Header file with structures โ”‚ โ”œโ”€โ”€ main.c # Main program and menu โ”‚ โ”œโ”€โ”€ auth.c # Authentication with encryption โ”‚ โ”œโ”€โ”€ system.c # Account management โ”‚ โ”œโ”€โ”€ utils.c # UI and notification utilities โ”‚ โ””โ”€โ”€ db.c # Database layer (SQLite optional) โ”œโ”€โ”€ data/ # Data storage โ”‚ โ”œโ”€โ”€ records.txt # Account records โ”‚ โ”œโ”€โ”€ users.txt # User credentials (encrypted) โ”‚ โ””โ”€โ”€ atm.db # SQLite database (when using make sqlite) โ”œโ”€โ”€ logs/ # Application logs โ”œโ”€โ”€ docs/ # Documentation โ”‚ โ”œโ”€โ”€ FEATURES.md # Additional features โ”‚ โ””โ”€โ”€ index.html # GitHub Pages โ”œโ”€โ”€ test_atm.c # Comprehensive test suite โ”œโ”€โ”€ .github/ # GitHub Actions workflows โ”‚ โ””โ”€โ”€ workflows/ # CI/CD automation โ”œโ”€โ”€ CHANGELOG.md # Version history โ”œโ”€โ”€ CONTRIBUTING.md # Contribution guidelines โ”œโ”€โ”€ DEVELOPMENT.md # Development summary โ”œโ”€โ”€ LICENSE # MIT License โ”œโ”€โ”€ Makefile # Build configuration โ””โ”€โ”€ README.md # Project documentation

๐Ÿ’ป Building & Running

# Build with text files (default) make # Build with SQLite database make sqlite # Run comprehensive test suite make test # Run the application make run # or ./bin/atm # Clean build artifacts make clean # Show all targets make help # Install system-wide (optional) sudo make install

๐Ÿงช Testing Real-time Notifications

Open two terminals to test the instant notification system:

# Terminal 1 ./bin/atm # Login as Alice # Transfer account to Michel # Terminal 2 ./bin/atm # Login as Michel # You'll see instant notification when Alice transfers!

๐Ÿ”ง Technical Details

Language

C (C99 standard)

Threading

POSIX threads for notifications

IPC

Named pipes (FIFOs)

Encryption

XOR cipher

Build System

GNU Make

CI/CD

GitHub Actions

Optional DB

SQLite3

๐Ÿ“š Documentation

Complete documentation and development resources:

README Development Features Issues

๐Ÿ”’ Security

Security features implemented:

๐Ÿ“ˆ Interest Rates

Savings Account

7% annual (monthly interest)

Fixed01 (1 year)

4% annual

Fixed02 (2 years)

5% annual

Fixed03 (3 years)

8% annual

Current Account

No interest