Welcome to my Python learning journey! This repository contains all the projects I've built while following the 100 Days of Code: The Complete Python Pro Bootcamp course by Angela Yu.
Important Note: I follow a unique learning approach where I:
- First, I build the projects - I read the project requirements and attempt to build them independently
- Then, I watch the video solutions - After completing my version, I watch Angela's video to understand different approaches and best practices
- Finally, I compare and learn - I analyze the differences between my implementation and the course solution to deepen my understanding
This methodology helps me:
- Develop problem-solving skills independently
- Learn from mistakes and different approaches
- Build confidence in my coding abilities
- Understand multiple ways to solve the same problem
Location: hangman-game/
A classic word guessing game with ASCII art visualization. Players have 6 lives to guess a hidden word by suggesting letters one at a time.
Location: ceaser-cipher/
A Python implementation of the classic Caesar Cipher encryption and decryption algorithm. Features interactive CLI, custom shift values, and ASCII art.
Location: blackjack-card-game/
Command-line Blackjack game played against a computer dealer with realistic rules. Features ASCII art, score tracking, and replay functionality.
Location: coffee-maker-v1/
Coffee machine simulator with multiple drinks, payment system, and resource management. Features espresso, latte, and cappuccino with realistic pricing.
Location: coffee-maker-v2/
Enhanced OOP-based coffee machine simulator with modular design. Features separate classes for CoffeeMaker, Menu, and MoneyMachine.
Location: quiz-game/
Command-line True/False quiz app with real-time score tracking. Features modular OOP design with separate classes for logic and data.
Location: snake-game-v1/
Classic Snake game using Python's Turtle graphics. Features smooth movement, directional control, and collision prevention.
Location: snake-game-v2/
Enhanced Snake game with food spawning, score tracking, and high score persistence. Built with modular OOP design separating game logic elements.
Location: pong-game/
Classic two-player Pong game using Turtle graphics. Features real-time gameplay, score tracking, and local multiplayer with collision detection.
Location: turtle-crossing-game/
Frogger-inspired arcade game where players help a turtle cross a busy road. Features level progression, increasing difficulty, and collision detection.
Location: states-guessing-game/
Interactive geography game to guess Indian states on a map with visual feedback. Tracks scores and generates a CSV file of missed states for learning.
Location: flash-card/
French-English flashcard app with Tkinter and spaced repetition. Demonstrates GUI development, Pandas CSV handling, and state management.
Location: birthday_wisher/
Automated birthday email sender using CSV data and personalized templates. Features Gmail SMTP integration and secure environment variable management.
Location: quizzler-app/
GUI-based True/False quiz app using Tkinter and Open Trivia Database API. Features real-time scoring, visual feedback, and OOP design.
Location: stock-news-alert/
Automated stock monitor tracking TSLA prices to send SMS alerts via Twilio on significant changes. Uses Alpha Vantage and NewsAPI for data.
Location: habit-tracker/
Habit tracking application using Pixela API to create visual activity graphs. Features user management, daily logging, and streak tracking.
Location: nutritionix-api/
Workout logger using Natural Language Processing to track exercises in Google Sheets. Input activities in plain text to auto-calculate calories and duration.
Location: flight-deals-finder/
Flight deal tracker that monitors prices and sends alerts for low fares. Integrates Amadeus, Google Sheets, and Twilio.
Location: flight-deals-finder-v2/
An advanced flight tracker that handles stopovers and tracks user users. Features finding best deals and emailing all the users about the deals.
Location: spotify-playlist-automation/
Scrapes Billboard Hot 100 for a specific date and creates a private Spotify playlist with those songs using the Spotify API.
Location: amazon-price-tracker/
Tracks product prices on Amazon.in using BeautifulSoup and sends email alerts when prices drop below a target.
Location: cookie-clicker/
A Python automation script that plays the Cookie Clicker game using Selenium. Features auto-clicking and intelligent store purchases.
Location: gym-booking-automation/
Automated Selenium script to book gym classes or join waitlists. Targets specific time slots and includes login, booking verification, and session persistence.
Location: day-50-tinder-bot/
Automated Tinder bot using Selenium. Currently pending Facebook account creation for login functionality.
Location: day-51-twitter-complain-bot/
Checks internet speed and tweets complaints if below promised speeds. Currently facing login issues with X.com.
Location: insta-follower-bot/
Automated Instagram bot using Selenium that follows users from a target account's followers list. Features secure login, smart scrolling, and error handling.
Location: rent-researcher/
Scrapes Zillow rental listings using BeautifulSoup and automates Google Form submissions via Selenium. Streamlines property research with batch processing and data extraction.
Location: flask-higher-lower-game/
Web-based number guessing game built with Flask featuring dynamic routing and visual feedback. Players guess numbers via URL navigation with color-coded messages and GIF animations.
Location: name-card-site/
Elegant personal portfolio website built with Flask and HTML5 UP's Identity template. Features responsive design, social media integration, and serves as a digital business card.
Location: jinja-templating-blog/
Dynamic blog application built with Flask and Jinja2 templating. Fetches blog posts from an external API and renders them using Jinja templates with individual post pages.
Location: tindog/
Modern responsive landing page for a dog dating app built with Bootstrap 5. Features animated gradient backgrounds, pricing tiers, testimonials, and mobile-first design.
Location: upgraded_blog/
Modern responsive blog application built with Flask and Jinja2 templating. Features dynamic content from external API, multiple pages (home, about, contact), and template inheritance.
Location: blog_contact_form_flask/
A Flask blog application displaying posts from an external API, featuring a functional contact form with email notification capabilities.
Location: flask-advanced-forms/
Flask web application demonstrating advanced form handling with Flask-WTF and WTForms validators. Features secure form validation, CSRF protection, email validation, and Bootstrap 5 integration.
Location: coffee-and-wifi/
A Flask web application for discovering and sharing cafes with WiFi and power outlets. Features an interactive form to add cafes with ratings for coffee quality, WiFi strength, and power socket availability.
Location: library-project/
A Flask web application for managing a personal book collection with SQLAlchemy ORM. Features CRUD operations for books including adding new books, viewing the library, and editing ratings with persistent SQLite database storage.
Location: top-movies/
A Flask web application for managing your personal top 10 movies list with TMDB API integration. Features movie search, automatic data fetching, dynamic ranking based on ratings, and an interactive flip card UI design.
Location: cafe-api/
A RESTful API built with Flask and SQLAlchemy for managing cafe information including amenities like WiFi, power sockets, and workspace suitability. Features CRUD operations, location-based search, and API key authentication for secure deletions.
Location: upgraded-blog-with-db/
A full-featured blog application built with Flask and SQLAlchemy featuring complete CRUD operations for blog posts. Includes CKEditor for rich text editing, Bootstrap 5 for responsive design, and SQLite database for persistent storage.
Location: flask-auth/
A secure Flask web application demonstrating user authentication with registration, login, and protected routes. Implements password hashing, session management with Flask-Login, and access control for protected file downloads.
Location: blog-with-users/
A full-featured Flask blog application with user authentication, role-based access control, and commenting functionality. Features admin-only post management, Gravatar integration for user avatars, and a rich text editor for blog content.
Location: college-majors-salary/
Data analysis project exploring the relationship between college majors and salary outcomes using Pandas. Analyzes 50 undergraduate majors to identify highest/lowest earners, salary spread risk, and compares STEM, Business, and HASS groups.
Location: programming-languages-popularity/
Data visualization project analyzing programming language popularity trends on Stack Overflow from 2008 to 2020. Tracks 14 major languages using time series analysis and creates comprehensive visualizations revealing technology adoption patterns.
Location: lego-data-analysis/
Comprehensive data analysis exploring LEGO's history and evolution from 1949 to 2021 using Pandas and Matplotlib. Analyzes 15,710 sets to uncover insights about product growth, themes, colors, and the increasing complexity of LEGO sets over time.
Location: google-trends-visualization/
Data analysis project exploring correlations between Google search trends and real-world metrics including Tesla stock prices, Bitcoin values, and unemployment rates. Features time series analysis, data resampling, and dual-axis visualizations comparing search popularity with economic indicators.
Location: google-play-store-data-analysis/
Data analysis project exploring the Android app market. Analyzes over 10,000 apps to identify trends in ratings, installs, sizing, and pricing using Pandas and Plotly to gain insights into the mobile app ecosystem.
Location: advanced-computation/
Focuses on learning numerical computing using NumPy, covering N-dimensional arrays (tensors), array generation, manipulation, and practical applications like image processing.
Location: seaborn-linear-regression/
Analyzes the relationship between film budgets and box office revenue. Investigates whether higher film budgets lead to higher box office returns using linear regression and data visualization with Seaborn.
Location: nobel-prize-analysis/
Provides a comprehensive analysis of the Nobel Prize dataset, exploring trends in awards over time. Includes visualizations of prize distribution by category, gender, and country, as well as insights into age patterns and historical events.
Location: t-Tests-and-distribution/
Analyzes the historical data regarding Dr. Ignaz Semmelweis's discovery of the importance of handwashing. Uses t-tests and probability distributions to statistically demonstrate the significant reduction in mortality rates after implementing handwashing protocols at the Vienna General Hospital.
Location: predicting-house-prices/
Builds a multivariable regression model to estimate house prices in Boston. Features data exploration, visualization with Seaborn/Plotly, and model evaluation using Scikit-Learn.
Location: morse-code/
A web-based text-to-Morse code converter built with Flask. Features real-time encoding/decoding, support for special characters, and a clean user interface.
Location: tic-tac-toe/
A simple command-line Tic-Tac-Toe game for two players. Features a 3x3 grid, win detection across rows, columns, and diagonals, and a draw condition. It allows players to input moves via row and column coordinates.
python-learning-projects/
├── README.md # This file
├── hangman-game/ # Day 7: Hangman Game
│ ├── app.py
│ ├── hangman_art.py
│ ├── hangman_words.py
│ └── README.md
├── ceaser-cipher/ # Day 8: Caesar Cipher
│ ├── ceaser-cipher.py
│ ├── art.py
│ └── README.md
├── blackjack-card-game/ # Day 10: Blackjack Card Game
│ ├── main.py
│ ├── art.py
│ └── README.md
├── coffee-maker-v1/ # Day 15: Coffee Machine
│ ├── coffee_machine.py
│ ├── menu.py
│ └── README.md
├── coffee-maker-v2/ # Day 16: Coffee Machine v2 (OOP)
│ ├── main.py
│ ├── coffee_maker.py
│ ├── menu.py
│ ├── money_machine.py
│ └── README.md
├── quiz-game/ # Day 17: Quiz Game
│ ├── main.py
│ ├── data.py
│ ├── question_model.py
│ ├── quiz_brain.py
│ └── README.md
├── snake-game-v1/ # Day 20: Snake Game
│ ├── main.py
│ ├── snake.py
│ └── README.md
├── snake-game-v2/ # Day 21: Snake Game v2 (Enhanced)
│ ├── main.py
│ ├── snake.py
│ ├── food.py
│ ├── scoreboard.py
│ ├── high_score.txt
│ └── README.md
├── pong-game/ # Day 22: Pong Game
│ ├── main.py
│ ├── ball.py
│ ├── paddle.py
│ ├── scoreboard.py
│ └── README.md
├── turtle-crossing-game/ # Day 23: Turtle Crossing Game
│ ├── main.py
│ ├── player.py
│ ├── car_manager.py
│ ├── scoreboard.py
│ └── README.md
├── states-guessing-game/ # Day 25: India States Guessing Game
│ ├── main.py
│ ├── states_uts.csv
│ ├── India.gif
│ ├── missed_states.csv
│ └── Readme.md
├── flash-card/ # Day 31: Flash Card App
│ ├── main.py
│ ├── data/
│ │ ├── french_words.csv
│ │ ├── words_to_learn.csv
│ │ ├── images/
│ └── README.md
├── birthday_wisher/ # Day 32: Birthday Wisher
│ ├── main.py
│ ├── birthdays.csv
│ ├── .env
│ ├── letter_templates/
│ └── README.md
├── quizzler-app/ # Day 34: Quizzler App
│ ├── main.py
│ ├── data.py
│ ├── question_model.py
│ ├── quiz_brain.py
│ ├── ui.py
│ ├── images/
│ └── README.md
├── stock-news-alert/ # Day 36: Stock News Alert
│ ├── main.py
│ ├── .env
│ └── README.md
├── habit-tracker/ # Day 37: Habit Tracker
│ ├── main.py
│ ├── .env
│ ├── .gitignore
│ └── README.md
├── nutritionix-api/ # Day 38: Nutrition/Exercise Tracker
│ ├── main.py
│ ├── .env
│ ├── .gitignore
│ └── README.md
├── flight-deals-finder/ # Day 39: Flight Deals
│ ├── main.py
│ ├── data_manager.py
│ ├── flight_search.py
│ ├── flight_data.py
│ ├── notification_manager.py
│ └── README.md
├── flight-deals-finder-v2/ # Day 40: Flight Club
│ ├── main.py
│ ├── data_manager.py
│ ├── flight_search.py
│ ├── flight_data.py
│ ├── notification_manager.py
│ └── README.md
├── spotify-playlist-automation/ # Day 46: Spotify Playlist Time Machine
│ ├── main.py
│ ├── .env
│ ├── .gitignore
│ └── README.md
├── amazon-price-tracker/ # Day 47: Amazon Price Tracker
│ ├── bot.py
│ ├── send_mail.py
│ ├── .env
│ └── README.md
├── cookie-clicker/ # Day 48: Cookie Clicker Bot
│ ├── cookie_clicker.py
│ └── README.md
├── gym-booking-automation/ # Day 49: Gym Booking Automation
│ ├── main.py
│ ├── .env
│ ├── .gitignore
│ └── README.md
├── day-50-tinder-bot/ # Day 50: Tinder Bot
│ ├── main.py
│ ├── .gitignore
│ └── README.md
├── day-51-twitter-complain-bot/ # Day 51: Internet Speed Twitter Complain Bot
│ ├── main.py
│ ├── .gitignore
│ └── README.md
├── insta-follower-bot/ # Day 52: Instagram Follower Bot
│ ├── main.py
│ ├── .env
│ ├── .gitignore
│ └── README.md
├── rent-researcher/ # Day 53: Rent Researcher
│ ├── main.py
│ ├── .env
│ ├── .gitignore
│ └── README.md
├── flask-higher-lower-game/ # Day 55: Flask Higher Lower Game
│ ├── game.py
│ └── README.md
├── name-card-site/ # Day 56: Personal Name Card Site
│ ├── server.py
│ ├── templates/
│ │ └── index.html
│ ├── static/
│ │ ├── assets/
│ │ └── images/
│ └── README.md
├── jinja-templating-blog/ # Day 57: Jinja Templating Blog
│ ├── main.py
│ ├── post.py
│ ├── templates/
│ │ ├── index.html
│ │ └── post.html
│ ├── static/
│ │ └── css/
│ │ └── styles.css
│ └── README.md
├── tindog/ # Day 58: TinDog
│ ├── index.html
│ ├── css/
│ │ ├── solution.css
│ │ └── style.css
│ ├── images/
│ ├── goal images/
│ └── README.md
├── upgraded_blog/ # Day 59: Upgraded Blog
│ ├── server.py
│ ├── templates/
│ │ ├── header.html
│ │ ├── footer.html
│ │ ├── index.html
│ │ ├── post.html
│ │ ├── about.html
│ │ └── contact.html
│ ├── static/
│ │ ├── assets/
│ │ ├── css/
│ │ └── js/
│ └── README.md
├── blog_contact_form_flask/ # Day 60: Blog with Contact Form
│ ├── main.py
│ ├── templates/
│ │ ├── header.html
│ │ ├── footer.html
│ │ ├── index.html
│ │ ├── post.html
│ │ ├── about.html
│ │ └── contact.html
│ ├── static/
│ │ ├── assets/
│ │ ├── css/
│ │ └── js/
│ ├── .env
│ ├── .gitignore
│ └── README.md
├── flask-advanced-forms/ # Day 61: Advanced Forms with Flask-WTF
│ ├── main.py
│ ├── requirements.txt
│ ├── templates/
│ │ ├── base.html
│ │ ├── index.html
│ │ ├── login.html
│ │ ├── success.html
│ │ └── denied.html
│ └── README.md
├── coffee-and-wifi/ # Day 62: Coffee & WiFi
│ ├── main.py
│ ├── cafe-data.csv
│ ├── requirements.txt
│ ├── static/
│ │ └── css/
│ ├── templates/
│ │ ├── base.html
│ │ ├── index.html
│ │ ├── add.html
│ │ └── cafes.html
│ └── README.md
├── library-project/ # Day 63: Library Management System
│ ├── main.py
│ ├── requirements.txt
│ ├── instance/
│ │ └── books_rating.db
│ └── templates/
│ ├── index.html
│ ├── add.html
│ └── edit_rating.html
│ └── README.md
├── top-movies/ # Day 64: Top 10 Movies
│ ├── main.py
│ ├── tmdb.py
│ ├── requirements.txt
│ ├── .env
│ ├── .gitignore
│ ├── instance/
│ │ └── movies.db
│ ├── templates/
│ │ ├── base.html
│ │ ├── index.html
│ │ ├── add.html
│ │ ├── select.html
│ │ └── edit.html
│ ├── static/
│ │ └── css/
│ │ └── styles.css
│ └── README.md
├── cafe-api/ # Day 66: Cafe & WiFi API
│ ├── main.py
│ ├── instance/
│ │ └── cafes.db
│ ├── templates/
│ │ └── index.html
│ └── README.md
├── upgraded-blog-with-db/ # Day 67: Upgraded Blog with Database
│ ├── main.py
│ ├── requirements.txt
│ ├── instance/
│ │ └── posts.db
│ ├── templates/
│ │ ├── header.html
│ │ ├── footer.html
│ │ ├── index.html
│ │ ├── post.html
│ │ ├── make-post.html
│ │ ├── about.html
│ │ └── contact.html
│ ├── static/
│ │ ├── assets/
│ │ ├── css/
│ │ └── js/
│ └── README.md
├── flask-auth/ # Day 68: Flask Authentication
│ ├── main.py
│ ├── instance/
│ │ └── users.db
│ ├── templates/
│ │ ├── base.html
│ │ ├── index.html
│ │ ├── register.html
│ │ ├── login.html
│ │ └── secrets.html
│ ├── static/
│ │ ├── css/
│ │ └── files/
│ │ └── cheat_sheet.pdf
│ └── README.md
├── blog-with-users/ # Day 69: Blog with Users
│ ├── main.py
│ ├── forms.py
│ ├── requirements.txt
│ ├── .env
│ ├── .gitignore
│ ├── instance/
│ │ └── posts.db
│ ├── templates/
│ │ ├── header.html
│ │ ├── footer.html
│ │ ├── index.html
│ │ ├── post.html
│ │ ├── make-post.html
│ │ ├── register.html
│ │ ├── login.html
│ │ ├── about.html
│ │ └── contact.html
│ ├── static/
│ │ ├── assets/
│ │ ├── css/
│ │ └── js/
│ └── README.md
├── college-majors-salary/ # Day 72: College Majors & Salary Analysis
│ ├── salaries_by_college_major.csv
│ ├── salaries_by_college_major.ipynb
│ └── README.md
├── programming-languages-popularity/ # Day 73: Programming Languages Popularity
│ ├── Programming_Languages.ipynb
│ ├── QueryResults.csv
│ └── README.md
├── lego-data-analysis/ # Day 74: LEGO Data Analysis
│ ├── Lego_Analysis.ipynb
│ ├── data/
│ │ ├── colors.csv
│ │ ├── sets.csv
│ │ └── themes.csv
│ ├── assets/
│ └── README.md
├── google-trends-visualization/ # Day 75: Google Trends Visualization
│ ├── Google Trends and Data Visualisation.ipynb
│ ├── TESLA Search Trend vs Price.csv
│ ├── Bitcoin Search Trend.csv
│ ├── Daily Bitcoin Price.csv
│ ├── UE Benefits Search vs UE Rate 2004-19.csv
│ ├── UE Benefits Search vs UE Rate 2004-20.csv
│ └── README.md
├── google-play-store-data-analysis/ # Day 76: Google Play Store App Analytics
│ ├── Google Play Store App Analytics.ipynb
│ ├── apps.csv
│ └── README.md
├── advanced-computation/ # Day 77: Computation with NumPy
│ ├── Computation_with_NumPy_and_N_Dimensional_Array.ipynb
│ ├── yummy_macarons.jpg
│ └── README.md
├── seaborn-linear-regression/ # Day 78: Seaborn and Linear Regression
│ ├── Seaborn_and_Linear_Regression_(start).ipynb
│ ├── cost_revenue_dirty.csv
│ └── README.md
├── nobel-prize-analysis/ # Day 79: Nobel Prize Analysis
│ ├── Nobel_Prize_Analysis.ipynb
│ ├── nobel_prize_data.csv
│ └── README.md
├── t-Tests-and-distribution/ # Day 80: t-Tests and Distributions
│ ├── Dr_Semmelweis_Handwashing_Discovery.ipynb
│ ├── annual_deaths_by_clinic.csv
│ ├── monthly_deaths.csv
│ └── README.md
├── predicting-house-prices/ # Day 81: Predicting House Prices
│ ├── Multivariable_Regression_and_Valuation_Model.ipynb
│ ├── boston.csv
│ └── README.md
├── morse-code/ # Day 82: Morse Code Converter
│ ├── app.py
│ ├── templates/
│ ├── static/
│ └── README.md
├── tic-tac-toe/ # Day 84: Tic Tac Toe
│ ├── main.py
│ └── README.md
├── [future-project-folders]/ # Additional projects will be added here
└── .gitignore # Git ignore file
This is a personal learning repository, but I welcome:
- Suggestions for improvements
- Bug reports
- Code review feedback
- Learning tips and resources
This repository is for educational purposes as part of the 100 Days of Code course. All projects are created for learning and personal development.
Happy Coding! 🚀
"The only way to learn a new programming language is by writing programs in it." - Dennis Ritchie