Skip to content

About

πŸ’³ ATM Management System (C Language)

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

Β 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’³ ATM Management System (C Language)

πŸ“Œ Objective

The objective of this project is to demonstrate your ability to apply programming logic in the C language and adapt to an existing codebase by implementing new features and fixing existing issues. You are given a partially implemented ATM management system. Your task is to add the missing features and ensure proper file-based persistence and functionality.

πŸ›  Implemented Features

  1. 🧾 Registration

    • Users can register with a unique username (duplicates are not allowed).
    • User data is stored in database.db.
  2. πŸ” Login

    • Users can log in to access account operations securely.
  3. πŸ”„ Update Account Information

    • Users can update the country or phone number of an account.
    • Prompts for account id and field to update.
    • All changes are written back to database.db.
  4. πŸ” Check Account Details

    • Users can retrieve information for a single account using its id.
    • Interest is displayed based on account type:
      • savings: 7%
      • fixed01: 4%
      • fixed02: 5%
      • fixed03: 8%
      • current: No interest
  5. πŸ’Έ Make Transactions

    • Supports withdrawals and deposits for eligible accounts.
    • ❌ Transactions are not allowed for fixed-term accounts.
  6. πŸ—‘ Remove Account

    • Allows users to delete their own accounts.
    • Changes are persisted in database.db.
  7. πŸ” Transfer Ownership

    • Users can transfer ownership of an account to another registered user.
    • Validates both accounts and updates ownership in the database.

πŸ“ Project Structure

.
β”œβ”€β”€ data
β”‚   └── database.db           # Stores all user and account data
└── src
    β”œβ”€β”€ auth.c                # Handles login and registration
    β”œβ”€β”€ funcs.c               # Core functionality for account operations
    β”œβ”€β”€ header.h              # Shared declarations
    β”œβ”€β”€ header.h.gch          # Precompiled header (can be ignored or regenerated)
    β”œβ”€β”€ main.c                # Program entry point
    β”œβ”€β”€ manageDB.c            # File/database handling
    └── system.c              # System UI and navigation logic

🧰 Compilation & Execution

To compile the project, run:

gcc src/*.c -l sqlite3 -o atm

To execute:

./atm

πŸ“Œ Notes

  • All data is stored in a single file: data/database.db.

Feel free to enhance this project further by adding encryption, a GUI, or additional validations.

About

πŸ’³ ATM Management System (C Language)

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages