A collection of Python projects designed to demonstrate advanced object-oriented programming (OOP) principles. Each project showcases practical applications, ranging from command-line tools to web applications, APIs, and image processing, leveraging Python's capabilities and various libraries. This repository is ideal for learners and developers looking to explore OOP concepts through real-world examples.
This repository contains the following 10 projects, each in its own subdirectory with dedicated functionality:
-
Flatmates Bill Splitter
A command-line application to split bills among flatmates based on days stayed, generating a PDF report.- Key Features: Bill splitting, PDF generation.
- Technologies: Python,
fpdf.
-
Math Painting
A graphical application that creates animated mathematical art using trigonometric functions and Pygame.- Key Features: Dynamic patterns, real-time visualization.
- Technologies: Python,
pygame,numpy.
-
Webcam Photo Sharer
An application to capture webcam photos, upload them to Dropbox, and generate shareable links.- Key Features: Webcam capture, cloud storage integration.
- Technologies: Python,
opencv-python,dropbox.
-
Flatmates Bill Web App
A Flask-based web version of the Flatmates Bill Splitter with a user-friendly interface and PDF reports.- Key Features: Web interface, bill splitting, PDF download.
- Technologies: Python,
flask,fpdf.
-
Calorie Webapp
A Flask web app to calculate daily calorie needs based on user inputs like weight, height, and activity level.- Key Features: BMR calculation, web form.
- Technologies: Python,
flask.
-
Automated Emails
An application to send personalized emails to multiple recipients using a template and CSV data.- Key Features: Email automation, template personalization.
- Technologies: Python,
smtplib,pandas.
-
Instant Dictionary Webapp
A Flask web app for instant word lookups, providing definitions, synonyms, and pronunciations.- Key Features: Dictionary API integration, responsive UI.
- Technologies: Python,
flask,requests.
-
Instant Dictionary API
A RESTful API for fetching word definitions, synonyms, and pronunciations, built with Flask.- Key Features: JSON responses, API endpoints.
- Technologies: Python,
flask,requests.
-
Cinema Ticket Booking
A command-line application for booking cinema tickets, managing showtimes, and generating confirmations.- Key Features: Movie selection, seat management.
- Technologies: Python (standard library).
-
Photo Searcher
A command-line application to search for photos using a public API (e.g., Unsplash) and download selected images.- Key Features: Photo search, image downloading.
- Technologies: Python,
requests.
- Python 3.x
- A virtual environment is recommended for dependency management:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Clone the repository:
git clone https://github.com/kanhaiya-gupta/Advanced-Python-with-OOP-Projects.git cd Advanced-Python-with-OOP-Projects -
Navigate to the desired project directory (e.g.,
App-2-Flatmates-Bill). -
Install project-specific dependencies as listed in each project's directory. For example:
pip install -r requirements.txt # If a requirements.txt existsOr install manually based on the project's README (e.g.,
pip install flask requests). -
Follow the project-specific instructions in its subdirectory for setup, configuration, and usage.
Each project has its own entry point (typically main.py or app.py) and usage instructions. For example:
- For command-line apps (e.g., Flatmates Bill Splitter, Automated Emails, Cinema Ticket Booking, Photo Searcher), run:
python main.py
- For web apps or APIs (e.g., Flatmates Bill Web App, Calorie Webapp, Instant Dictionary Webapp, Instant Dictionary API), run:
Then access at
python app.py
http://127.0.0.1:5000in a browser or API client.
Refer to individual project directories for detailed instructions, including any API keys or environment variables required (e.g., Dropbox, Unsplash, or Dictionary API keys).
- Some projects (e.g., Webcam Photo Sharer, Automated Emails, Instant Dictionary Webapp, Instant Dictionary API, Photo Searcher) require external API keys or email credentials. Set these as environment variables or configure as instructed in the respective project folder.
- Web-based projects (Flatmates Bill Web App, Calorie Webapp, Instant Dictionary Webapp, Instant Dictionary API) use Flask and run locally by default.
- Ensure your system has a webcam for Webcam Photo Sharer and a compatible SMTP service (e.g., Gmail) for Automated Emails.
Contributions are welcome! To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature). - Commit your changes (
git commit -m "Add your feature"). - Push to the branch (
git push origin feature/your-feature). - Open a pull request.
Please ensure your code follows PEP 8 guidelines and includes appropriate documentation.
This project is licensed under the MIT License. See the LICENSE file for details.
Kanhaiya Gupta - GitHub
- Built as a learning resource for advanced Python and OOP concepts.
- Thanks to the open-source community for libraries like Flask, Pygame, OpenCV, and Requests.