A collection of Python projects built to practice core programming concepts including Object Oriented Programming, file handling, error handling, and user interaction design.
A terminal-based ATM simulation built using Object Oriented Programming.
Features:
- Check balance
- Deposit and withdraw money with input validation
- Full transaction history
- Two-class design —
ATM(banking logic) andATMController(user interface) - Colored terminal output with ASCII art banner
Concepts used: OOP, classes, methods, error handling, user input
How to run:
python atm_simulation.pyScreenshots:
An interactive number guessing game with persistent scoreboard and custom settings.
Features:
- Custom number range — user sets their own min and max
- Custom number of attempts
- Optional hints (even or odd)
- Best score saved to file and persists between sessions
- Game stats — wins, losses, games played
Concepts used: File I/O, functions, loops, conditionals, error handling
How to run:
python number_guessing_game.pyScreenshot:
A personal task manager that saves tasks between sessions using JSON.
Features:
- Add tasks with categories (Work / Personal / Other)
- View pending and completed tasks separately
- Mark tasks as complete
- Remove tasks with confirmation prompt
- Filter tasks by category
- All data saved to JSON file — persists between sessions
Concepts used: JSON file handling, functions, lists, dictionaries, error handling
How to run:
python to_do_list.pyScreenshots:
Sample Output:
Welcome to Your Personal To-Do Manager
Created by Hifsa Iftikhar
3 completed | 2 pending tasks
--- Main Menu ---
1. Add New Task
2. Show Pending Tasks
3. Show Completed Tasks
4. Mark Task as Complete
5. Remove Task
6. Filter by Category
7. Exit
Choose an option (1-7): 1
--- Add New Task ---
Task description: Submit ML Assignment
Category (Work / Personal / Other): Work
Task added: 'Submit ML Assignment' [Work]
Choose an option (1-7): 2
=== Your Tasks ===
1. Submit ML Assignment [Work] — Pending
2. Buy groceries [Personal] — Pending
Choose an option (1-7): 7
--- Summary ---
Pending tasks : 1
Completed tasks: 3
Thanks for using the To-Do Manager. Goodbye!
No external libraries needed. All projects use Python standard library only.
Python version: 3.6 or higher
- Make sure Python is installed on your computer
- Download the
.pyfile - Open terminal in the same folder
- Run:
python filename.py
Hifsa Iftikhar
GitHub: @hifsaiftikhar




