Hello,
This is a repository of my final projects for Angela Yu's 100 Days of Code: The Complete Python Pro Bootcamp for 2023. I am currently on Day 89 and slowly putting the finished projects into Github for my reference. This repository is still a work in progress, thank you for visiting!
Day 1 Project: Band Name Generator
- Topics: Printing, Commenting, Debugging, String Manipulation, and Variables
Day 2 Project: Tip Calculator
- Topics: Data Types, Numbers, Operations, Type Conversion, f-Strings
Day 3 Project: Treasure Island Hunt
- Topics: Conditional Statements, Logical Operators, Code Blocks and Scope
Day 4 Project: Rock, Paper, Scissors
- Topics: Randomisation and Python Lists
Day 5 Project: Password Generator
- Topics: Python Loops
Day 6 Project: Escaping the Maze
- Topics: Functions, Code Blocks, and While Loops
Day 7 Project: Beginner Hangman
- Topics: For & While Loops, IF/ELSE, Lists, Strings, Range, Random module, ASCII art, Improve User Experience
Day 8 Project: Caesar Cipher
- Topics: Functions with Inputs, Positional vs. Keyword Arguments
Day 9 Project: Silent Auction Program
- Topics: Dictionaries and Nesting
Day 10 Project: Text-based Calculator
- Topics: Functions with Outputs, Docstrings
Day 11 Project: Blackjack Game
- Blackjack Capstone Project
- Still a work in progress
Day 12 Project: The Number Guessing Game
- Topics: Namespaces, Local vs. Global Scope, Modifying a Global Variable, Python Constants
Day 13 Debugging: Finding and Fixing Errors in your Code
- Topics: Describe the Problem, Reproduce the Bug, Evaluate Each Line, Use a print() Statement, Use a Debugger
Day 14 Project: Higher Lower Game
- Topics: Using Dictionaries, Conditionals, Functions, Debugging, and Random module
Day 15 Project: Coffee Machine
- Topics: Setup Local Development Environment and Coffee Machine Project, PEP8 Style Guide, Functions, Using Pycharm
Day16 Project: Coffee Machine in OOP
- Topics: Object Oriented Programming (OOP): Classes, Objects, Constructing Objects, Accessing Attributes, Add Python Packages, Modifying Object Attributes and Calling Methods
Day17 Project: Quiz Game
- Topics: Object Oriented Programming (OOP): Classes, Attributes, Class Constructors (init()), Methods
Day 18 Project: The Hirst Painting
- Topics: Turtle Graphics, Tuples, and Importing Modules
Day 19 Project: Etch a Sketch and Turtle Racing Game
- Topics: Turtle Graphics, Event listeners, Functions, Objects States and Instances, Turtle Coordinate System
Day 20 Project: Snake Game Part 1
- Topics: Turtle module, Animating Snake Segments, OOP and classes
Day 21 Project: Snake Game Part 2
- Topics: Turtle module, Class Inheritance, Slicing
Day 22 Project: Pong Game
- Topics: Turtle module, OOP: Classes, Game Logic
Day 23 Project: Turtle Crossing Game Capstone
- Topics: OOP: Constructor Classes, Inheritance, Turtle Coordinate System, Turtle Game engine
Day 24 Project: Mail Merge Project
- Topics: Open, Read, and Write to Files, Relative and Absolute File Paths, Readlines Method, Replace() Method, Strip() Method
Day 25 Project: The States Game
- Topics: CSV Library, Pandas Library: DataFrames and Series
Day 26 Project: NATO Alphabet
- Topics: List Comprehension, Dictionary Comprehension, Iterate over Pandas DataFrames
Day 27 Project: Unit Converter Program
- Topics: Graphical User Interfaces with Tkinter (Widgets and Methods), Advanced Functions (*Args, **Kwargs)
Day 28 Project: Pomodoro Timer
- Topics: Tkinter, Canvas Widget, Add Images to Tkinter, UI, Dynamic Typing
Day 29 Project: Password Manager 1.0
- Topics: Tkinter: Working with Images and Setting up the Canvas, Using grid() and columnspan Dialogue boxes and pop-ups, Reviewed list comprehensions, and join() method
Day 30 Project: Password Manager 2.0
- Topics: Errors, Raising Exceptions, Write, read and update JSON Data, IndexError Handling, KeyError Handling, Exception Handling
Day 31 Project: Capstone Project Flash Card Program
- Topics: Tkinter, Exception handling, Write, read and update JSON Data, Reading CSVs, Pandas, Opening and Writing to Files
Day 32 Project: Automated Happy Birthday Email
- Topics: Email SMTP, Datetime module, Pandas, Dictionary comprehensions
Day 33 Project: ISS Overhead Notifier Project
- Topics: API: API Endpoints, Making API Calls, HTTP Codes, Exceptions, JSON Data, API Parameters, Python split() method
Day 34 Project: The Quizzler App (GUI Quiz App)
- Topics: API: Review API Endpoints, Making API Calls, API Parameters, Unescaping HTML Entities, Class based Tkinter UI, Python Typing, Type Hints
Day 35 Project: Rain Alert App
- Topics: API: API Keys, Authentication, Environment Variables, Sending SMS, Review python slicing
Day 36 Project: Stock News Monitoring
- Topics: API: API Keys, Authentication, Sending Messages, working with JSON
Day 37 Project: Habit Tracking
- Topics: Advanced Authentication and POST/PUT/DELETE Requests
Day 38 Project: Exercise Tracking with Python and Google Sheets
- Topics: APIs and making POST Requests, Python DateTime strftime(), Authorization Headers (Basic Authentication), Environment Variables, OpenAi GPT-3, Nutritionix API
Day 39 CAPSTONE Project: Part 1 - Cheap Flight Finder
- Topics: APIs and making POST Requests, Python DateTime strftime(), Timedelta in datetime module, OOP Classes, Exception Handling
Day 40 CAPSTONE Project: Part 2 - Cheap Flight Finder
- Topics: APIs and making POST Requests, Python DateTime strftime(), Timedelta in datetime module
Day 41 Project: Personal Website (simple HTML)
- Topics: Intro to HTML: HTML Tag, HTML Boilerplate, HTML Lists, HTML Image Elements, HTML Links and Anchor Tags
Day 42 Project: Personal Website (with tables and forms)
- Topics: Intermediate HTML: HTML Tables, HTML Forms
Day 43 Project: Personal Website (with simple CSS)
- Topics: Intro to CSS: Inline, Internal and External CSS, Debugging CSS Code, ID Selectors, Class Selectors, Tag Selectors
Day 44 Project: Personal Website (Stylised with Advanced CSS)
- Topics: Intermediate CSS: Favicons, Box Model, CSS Display Property, Static and Relative Positioning, Absolute Positioning, Centering Elements with CSS, Font Styling, CSS Sizing, Font Properties
Day 45 Project: Scrape a List of 100 Greatest Movies
- Topics: Scraping the Web with Beautiful Soup
Day 46 Project: Spotify Playlist Musical Time Machine
- Topics: Scraping the Web with Beautiful Soup, strip() method, list comprehensions, requests module
Day 47 Project: Amazon Price Tracker
- Topics: Scraping the Web with Beautiful Soup, strip() method, smtplib module, requests module
Day 48 Project: Cookie Game Playing Bot
- Topics: Scraping with Selenium: Webdriver, Finding and Selecting Elements on a website, automate forms, clicking buttons; Advanced Web Scraping
Day 49 Project: LinkedIn Automated Job Applications with Selenium
- Topics: Scraping with Selenium: Webdriver, Finding and Selecting Elements on a website; Exception Handling: NoSuchElementException
Day 50 Project: Auto Dating Swiping Bot
- Topics: Selenium (Xpath, window_handles, switch_to_window, ElementClickInterceptedException) and Python
Day 51 Project: Twitter Bot
- Topics: Selenium (Xpath), Python, Review Classes and methods
Day 52 Project: Instagram Follower Bot
- Topics: Selenium, Python, Classes, Exception Handling
Day 53 Project: CAPSTONE Project: Data Entry Job Automation
- Topics: Selenium, Python, Selenium
Day 54 Project: Web Development with Flask
- Topics: Python, Flask Framework
Day 55 Project: HTML & URL Parsing in Flask and the Higher Lower Game
- Topics: Advanced Decorators, Rendering HTML, Parsing URLs and Flask Debugging
Day 56 Project: Name Card Website Template
- Topics: Static files, HTML/CSS File Rendering and a Flask Personal Site
Day 57: Templating with Jinja on Flask Apps
- Topics: URL Building and Templating with Jinja in a Flask Application
Day 58: Startup Website with Bootstrap
- Topics: Bootstrap layout, Bootstrap Components
Day 59 Project: Blog Capstone Part 2
- Topics: Bootstrap templates for a multi-page Website, Dynamically generate pages, Interactive and adaptive Nav bars, Mobile responsiveness, API, Jinja to render templates
Day 60 Project: POST Requests with Flask and HTML Forms
- Topics: POST requests with Flask, HTML Forms, send emails with smtplib
Day 61 Project: Advanced Forms with Flask-WTForms
- Topics: Flask-Bootstrap, Flask-WTF extension to create Forms, Form Validation, Jinja and Flask-Bootstrap Template Inheritance
Day 62 Project: Coffee and Wifi Project
- Topics: Advanced Flask, WTForms, Bootstrap, Jinja, CSS and CSV
Day 63 Project: Virtual Bookshelf
- Topics: Flask, SQLite Databases (SQLite3; SQLAlchemy), CRUD Operations with SQLAlchemy
Day 64 Project: Top 10 Movies Website
- Topics: Flask, SQLite Databases (SQLite3; SQLAlchemy), CRUD Operations with SQLAlchemy, requests module
Day 65 Project: Hotel Website Design with Canva
- Topics: Color Theory, Typography, User Interface (UI) Design, User Experience (UX) Design, Daily UI
Day 66 Project: Build an API with RESTful Routing
- Topics: REST APIs, HTTP GET, POST PUT, PATCH, DELETE, (CRUD), API Documentation, Postman (API Testing Tool)
Day 67 Project: Blog Capstone Part 3: Building a RESTful Blog with Editing
- Topics: SQLAlchemy, WTForms, Datetime module, Jinja Templating
Day 68 Project: Authentication with Flask
- Topics: Authentication, Encryption and Hashing, Salting Passwords, Hashing and Salting using Wekzeug, Flask-Login, Flask Flash Messages Passing Authentication Status to Templates (Template Inheritance)
Day 69 Project: Blog Capstone Project Part 4: Adding Users
- Topics: Flask, Get/POST requests, flask-gravatar, Relational Databases(SQLAlchemy) CKEditorField, Python decorators, WTForm, Werkzeug (hash and salt passwords), Gravatar
Day 70: Git, Github, and Version Control
- Topics: Git, Github, and Version Control: Git Commands, Creating a Remote Repository, Creating Files (.gitignore), Branching, Merging, Cloning, Forking, Pull vs Push Requests
Day 71: Deploying the Web Application
- Topics: Flask, Web Hosting (Render), .gitignore, Version Control, Environment Variables, Gunicorn, PostgreSQL
Day 72: Data Exploration with Pandas
- Topics: Pandas, Python, Beautiful Soup (Web Scraping)
Day 73: Data Visualization with Matplotlib
- Topics: Matplotlib, Pandas, Python
Day 74: Analyze Lego Data Set (Aggregate and Merge Data with Pandas)
- Topics: Matplotlib (Create line, bar charts, scatter plot), Use relational databases by using primary and foreign keys, Pandas (.agg(), .groupby(), .merge(), .sort_values(), .value_counts(), .rename()), Python
Day 75: Google Trends Data: Resampling and Visualizing Time Series
- Topics: Pandas and Matplotlib: Data Cleaning, Resampling Time Series Data, Converting to Datetime, Data Visualisation (Line Charts, Locators, DateFormatters, Line Style, and Markers)
Day 76: Analyze Android App Store (with Plotly)
- Topics: Pandas (Data Cleaning: Removing NaN Values, Finding and Removing Duplicates, Dropping Unused Columns, Removing NaN Values, Converting Data to Numeric Types, Working with Nested Column Data) and Plotly ( Pie, Donut, Bar Charts, Box Plots, Scatter Plots, Colour Scales)
Day 77: Computation with Numpy and N-dimensional Arrays
- Topics: Numpy: Generating and Manipulating ndarrays, Broadcasting, Scalars and Matrix Multiplication, Linear Algebra with Vectors, Manipulating Images as ndarrays
Day 78: Linear Regression and Data Visualization with Seaborn
- Topics: Seaborn (Regression a scatter plot, Bubble charts), Matplotlib, Pandas, Linear regression with scikit-learn, convert data with floor division.
Day 79: Analyzing the Nobel Prize with Plotly, Matplotlib, and Seaborn
- Topics: Seaborn , Matplotlib, Plotly
Day 80: T-Tests & Distributions: Analyzing a Hospital Data Set
- Topics: Matplotlib, Plotly, Numpy, Scipy, T-tests
Day 81: Capstone Project: Predict Housing Prices
- Topics: Seaborn, Plotly
Day 82: Professional Portfolio Project: Text to Morse Code Converter
- Topics: Python Scripting
Day 83: Professional Portfolio Project: Portfolio Website
- Topics: HTML 5 Template, Flask, SMTPLIB
Day 84: Professional Portfolio Project: Tic Tac Toe
- Topics: Functions, list comprehensions, random module
Day 85: Professional Portfolio Project: Image Watermarking App
- Topics: Tkinter, PIL library
Day 86: Professional Portfolio Project: Speed Typing Test
- Topics: Tkinter, Pandas
Day 87: Professional Portfolio Project: Breakout Game
- Topics: Python, Turtle
Day 88: Professional Portfolio Project: Cafes and Wifi Website
- Topics: Python, Flask, SQLAlchemy, REST APIs, Jinja, Web Development
Day 89: Professional Portfolio Project: ToDo App
- Topics: Python, Flask, SQLAlchemy, REST APIs, Auth, Web Development
Day 90: Professional Portfolio Project: Disappearing Text Writing App
- Topics: Python, Tkinter
Day 91: Professional Portfolio Project: PDF to Audiobook
- Topics: Python, Flask, W3.CSS, Web Development
Day 92: Professional Portfolio Project: Image Colour Palette Generator
- Topics: Python, Flask, Pandas, PIL, W3.CSS