A collection of intermediate-level Python projects developed as part of the 100 Days of Python course. This repository focuses on transitioning from basic scripting to structured, object-oriented applications, interactive programs, and small-scale systems with persistence and external integrations.
Each project applies multiple concepts together, emphasizing code organization, reusability, and real-world workflows.
- Object-oriented programming (classes, methods, initializers, inheritance)
- Python instances, state management, and attribute control
- Modular code, imports, module aliasing, and external libraries
- Event-driven programming and game development with Turtle
- Desktop GUI development using Tkinter
- File I/O, directory handling, and local persistence
- Reading and writing CSV files and working with JSON data
- List and dictionary comprehensions
- Error handling using
try,except, andraise - Sending emails with SMTP and handling date/time logic
- Introduction to Pandas for data handling
- Strongly dynamic typing and function argument packing/unpacking
- Deploying and hosting Python applications using PythonAnywhere
- Multi-file, modular project structures
- Object-oriented design with clear class responsibilities
- Event-driven logic and GUI-based applications
- Practical use of files, data formats, and external services
- Incremental refactors and improved versions preserved
This repository documents the shift from beginner-level exercises to intermediate software design, focusing on building maintainable, extensible Python applications while integrating real-world tools, data, and workflows.
Note: Run the games from inside its project folder to avoid image path errors (e.g. python main.py while in /snake_game).
This is because the background image (img.gif) uses a relative path.