Skip to content

kamaltamil/Python-Console-Applications

Repository files navigation

Python Console Applications

A collection of three Python-based console applications for managing banking operations, library resources, and train ticket bookings. These applications demonstrate core programming concepts including account management with deposit/withdraw/transaction functionality, book borrowing and management with librarian controls, and passenger ticket booking with admin train management. All projects use CSV files for lightweight data persistence and feature command-line interfaces for user interaction.

Table of Contents

  1. Bank Management System
  2. Library Management System
  3. Train Ticket Booking System
  4. Technology Stack
  5. Installation & Setup

Bank Management System

A comprehensive banking application that simulates real-world banking operations with separate functionalities for administrators and regular users.

Features

For Admins:

  • Login with Admin ID and Password
  • Check total bank balance
  • View total number of registered users
  • Retrieve user details by Account Number
  • Delete user accounts

For Users:

  • Sign up (create new account with unique account number)
  • Login with Email and Password
  • Deposit money
  • Withdraw money (with balance validation)
  • Transfer money to another account
  • Check account balance

Project Structure

Bank-Management-System/
├── main.py           # Main application entry point
├── user.py           # User class and operations
├── customer_data.py  # Customer data management
├── README.md         # Project documentation
└── <data_files>      # CSV files for storing customer and transaction data

How to Run

cd Bank-Management-System
python main.py

Library Management System

A digital library management system that enables librarians to manage books and users while allowing patrons to borrow books and track their borrowing history.

Features

For Librarians:

  • Login with Admin credentials
  • Add new books to the system
  • View user details and their borrowing status

For Users:

  • Sign up with a unique ID
  • Login with credentials
  • Borrow available books
  • View personal borrowing status and history

Project Structure

Library-Management-System/
├── main.py           # Main program, handles application flow
├── user.py           # User-related operations
├── user.py           # Librarian-related operations
├── Books_data.csv    # Stores book inventory details
├── User_Details.csv  # Stores user information
└── README.md         # Project documentation

How to Run

cd Library-Management-System
python main.py

Train Ticket Booking System

A command-line train reservation system that allows passengers to book train tickets and administrators to manage trains and passenger information.

Features

For Passengers:

  • Signup: Create account with name, address, phone number, and password
  • Login: Authenticate using phone number and password
  • Book Tickets: Search and book train tickets between locations with real-time seat availability
  • View Bookings: Check booking history and reservation details

For Administrators:

  • Login: Secure admin authentication (default credentials provided)
  • Add Trains: Add new trains with details like route, price, and seat capacity
  • View Passengers: Access passenger information and booking records

Project Structure

Train-Ticket-Booking-System/
└── Train-Ticket-Booking-main/
    ├── main.py              # Main application entry point
    ├── passenger.py         # Passenger class with booking functionality
    ├── train.py             # Train class for train management
    ├── train_list.csv       # Stores train information
    ├── passenger_list.csv   # Stores passenger booking data
    └── README.md            # Project documentation

How to Run

cd Train-Ticket-Booking-System/Train-Ticket-Booking-main/
python main.py

Technology Stack

All three applications are built using:

  • Language: Python 3.x
  • Data Storage: CSV (Comma-Separated Values)
  • Interface: Command Line Interface (CLI)
  • Dependencies: Built-in Python modules only (no external packages required)

Key Python Concepts Used:

  • File I/O and CSV handling
  • Object-Oriented Programming (Classes)
  • User authentication and validation
  • Data management and persistence
  • Exception handling
  • Control flow (conditionals and loops)

Installation & Setup

Prerequisites

  • Python 3.x installed on your system
  • Terminal/Command Prompt access
  • No external package installations required

Steps to Run Any Application

  1. Clone or download the repository:

    git clone <repository_url>
    cd Python-Console-Applications
  2. Navigate to the desired application:

    cd Bank-Management-System
    # OR
    cd Library-Management-System
    # OR
    cd Train-Ticket-Booking-System/Train-Ticket-Booking-main/
  3. Run the application:

    python main.py
  4. Follow the on-screen prompts to interact with the application.


Data Files

Each application uses CSV files to persist data:

  • Bank Management System: Stores customer account details and transaction history
  • Library Management System: Stores book inventory and user borrowing records
  • Train Ticket Booking System: Stores train information and passenger booking details

Note: CSV files are created automatically when you run the applications for the first time.


Security Notes

These applications are designed for educational purposes. For production use, consider:

  • Implementing proper password hashing (bcrypt, argon2)
  • Using a relational database (MySQL, PostgreSQL) instead of CSV files
  • Adding comprehensive input validation and sanitization
  • Implementing secure authentication mechanisms (JWT, OAuth)
  • Adding error logging and monitoring
  • Encrypting sensitive data

Learning Objectives

By exploring these projects, you'll learn:

✓ Basic Python programming and syntax
✓ File handling and CSV operations
✓ Object-Oriented Programming principles
✓ User input validation
✓ Data persistence techniques
✓ Building command-line applications
✓ Authentication and authorization basics
✓ Error handling and debugging


Contributing

Feel free to fork this repository and submit pull requests with improvements, bug fixes, or new features.


License

This project is open source and available for educational and personal use.


Author

Kamal Tamil


Happy Coding! 🐍

About

Python-based console applications covering bank account management (deposits, withdrawals, transfers), library book management (borrowing, returns, inventory), and train ticket booking (reservations, passenger management). Features user authentication, role-based access for admins and users, and CSV data storage for persistence.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages