0% found this document useful (0 votes)
2 views5 pages

Atm Management System Assignment

The assignment requires the development of a console-based ATM Management System using Python and a MySQL or PostgreSQL database. Key functionalities include user authentication, balance management, transaction handling, and secure database updates, with specific requirements for database setup, login system, and transaction operations. Students must submit the source code, SQL files, output screenshots, and an explanation of the database structure and program flow.

Uploaded by

avireddy746
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views5 pages

Atm Management System Assignment

The assignment requires the development of a console-based ATM Management System using Python and a MySQL or PostgreSQL database. Key functionalities include user authentication, balance management, transaction handling, and secure database updates, with specific requirements for database setup, login system, and transaction operations. Students must submit the source code, SQL files, output screenshots, and an explanation of the database structure and program flow.

Uploaded by

avireddy746
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Assignment: ATM Management System Using Python and

MySQL / PostgreSQL Connector


Assignment Title
Secure ATM Management System (Console Based Application)

Assignment Objective
Develop a console based ATM Management System using Python connected to MySQL or
PostgreSQL database. The system should simulate real ATM operations including
authentication, balance management, transaction handling, and secure database
updates.

Assignment Description
You are required to design and implement a fully functional ATM system that interacts with
a relational database. The application must store account information, validate user
credentials, perform financial transactions, and maintain complete transaction history.
The system must demonstrate proper use of:
- Python programming concepts
- Database connectivity using a connector
- SQL queries
- Input validation
- Conditional statements and loops
- Error handling
- Database transaction management (commit and rollback)

Technology Requirements
• Python 3.x
• MySQL Connector (mysql-connector-python) OR PostgreSQL Connector (psycopg2)
• MySQL OR PostgreSQL database
Functional Requirements
1. Database Setup
Your program must:
- Connect to the database using proper credentials
- Create database (if not exists)
- Create required tables
- Handle connection errors gracefully

2. Database Tables
Table 1: Accounts
The table must store:
- account_no (Primary Key)
- name - pin - balance
- status (ACTIVE or BLOCKED)
- created_at
Table 2: Transactions
The table must store:
- txn_id (Primary Key)
- account_no (Foreign Key)
- txn_type (DEPOSIT, WITHDRAW, TRANSFER_IN, TRANSFER_OUT)
- amount
- txn_time
- balance_after
- related_account (for transfers)
- remarks (optional)

3. Login System
• User must login using account number and PIN
• Maximum 3 failed attempts allowed
• Account should be blocked after 3 failed attempts
• Only ACTIVE accounts can login

4. ATM Menu (After Successful Login)


The system must display the following options repeatedly until logout:
1. Check Balance
2. Deposit Money
3. Withdraw Money
4. Transfer Money
5. Mini Statement
6. Change PIN
7. Logout

5. Check Balance
• Fetch balance from database
• Display available balance

6. Deposit Money
• Accept deposit amount
• Validate input (must be numeric and positive)
• Update balance in database
• Insert transaction record
• Display updated balance

7. Withdraw Money
• Accept withdrawal amount
• Validate input
• Ensure sufficient balance
• Deduct balance
• Insert transaction record
• Display success or failure message

8. Transfer Money
• Accept receiver account number and transfer amount
• Validate receiver account existence
• Validate sufficient balance
• Perform database transaction using commit and rollback
• Update sender and receiver balances
• Insert transaction records for both accounts
9. Mini Statement
• Display last N transactions of logged-in user
• Show transaction ID, type, amount, date-time, and balance after transaction

10. Change PIN


• Verify old PIN
• Accept new PIN and confirm
• Validate 4-digit numeric rule
• Update PIN in database

11. Logout
• Exit menu safely
• Close database connection

Validation Requirements
Your program must handle:
- Invalid numeric inputs
- Negative values
- Wrong PIN
- Blocked accounts
- Insufficient balance
- Invalid account numbers
- Database errors

Testing Requirements
Test your program with multiple scenarios including:
- Successful login
- Failed login attempts
- Deposit operation
- Withdrawal with insufficient balance
- Successful transfer
- Invalid transfer attempt
- Mini statement display
- PIN change validation
Submission Guidelines
Students must submit:
1. Python source code file
2. SQL file (if tables created separately)
3. Sample output screenshots
4. Short explanation of database structure and program flow

Expected Learning Outcomes


After completing this assignment, students should be able to:
- Connect Python with relational databases
- Perform CRUD operations using SQL
- Implement secure login logic
- Handle transactions with commit and rollback
- Design structured database-driven applications

End of Assignment

You might also like