Skip to content

Solutions and projects from the 100 Days of Code: Python challenge. A complete record of my learning path, including daily mini-projects, milestone challenges, and code for building web apps, games, and data analysis tools. Commit daily and track progress.

Notifications You must be signed in to change notification settings

David-Kamau-Builds/100_Days_Of_Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

72 Commits
Β 
Β 
Β 
Β 

Repository files navigation

100 Days of Python Challenge

Overview

A comprehensive 100-day Python programming challenge organized into 15 weekly branches, building coding skills through daily practice and projects.

Progress Overview

  • βœ… Week 1: Python Fundamentals (Days 1-7) - Complete
  • βœ… Week 2: Functions & Logic (Days 8-14) - Complete
  • βœ… Week 3: OOP & GUI (Days 15-21) - Complete
  • βœ… Week 4: OOP & GUI (Days 22-28) - Complete
  • βœ… Week 5: File I/O, Error Handling & APIs (Days 29-35) - Complete
  • βœ… Week 6: APIs & Web Scraping (Days 36-42) - Complete
  • βœ… Week 7: Web Development Foundations (Days 43-49) - Complete
  • βœ… Week 8: Web Development (Days 50-56) - Complete
  • βœ… Week 9: Web Applications (Days 57-63) - Complete
  • πŸ”„ Week 10: Game Development (Days 64-70) - In Progress
  • ⏳ Week 11: Automation & Scripting (Days 71-77) - Coming Soon
  • ⏳ Week 12: Machine Learning Basics (Days 78-84) - Coming Soon
  • ⏳ Week 13: Advanced Projects (Days 85-91) - Coming Soon
  • ⏳ Week 14: Portfolio Projects (Days 92-98) - Coming Soon
  • ⏳ Week 15: Capstone Project (Days 99-100) - Coming Soon

How to Navigate

  1. Switch to desired week branch: git checkout Week_1
  2. Each branch contains Day folders with Python files and documentation
  3. Follow along with daily challenges and projects
πŸ“ Week 1 - Python Fundamentals (Days 1-7)

Day 1 - Hello World

  • Concept: Basic output
  • Project: Simple print statement
  • Skills: Introduction to Python syntax

Day 2 - Tip Calculator

  • Concept: Variables and user input
  • Project: Bill splitting calculator with tip
  • Skills: Input/output, arithmetic operations, data types

Day 3 - Conditional Logic Projects

  • Concept: If/elif/else statements
  • Projects: Pizza ordering system + Treasure hunt adventure game
  • Skills: Nested conditionals, decision making, user input validation

Day 4 - Rock Paper Scissors Game

  • Concept: Random module and conditionals
  • Project: Interactive game with ASCII art
  • Skills: Random selection, multiple conditions, game logic

Day 5 - Password Generator

  • Concept: Loops and lists
  • Project: Customizable password generator (simple + complex versions)
  • Skills: For loops, list manipulation, random.choice(), random.shuffle()

Day 6 - Reeborg's World Challenges

  • Concept: Functions and while loops
  • Project: Maze solving and hurdles navigation
  • Skills: Function definition, while loops, algorithmic thinking

Day 7 - Hangman Game

  • Concept: Integration of all previous concepts
  • Project: Complete hangman game with ASCII art
  • Skills: Combining variables, loops, conditionals, functions, and user interaction

Week 1 Learning Outcomes:

  • Python syntax and basic programming concepts
  • User input/output handling
  • Conditional logic and decision making
  • Loops and iteration
  • Function definition and usage
  • Working with lists and the random module
  • Building complete interactive applications
πŸ“ Week 2 - Functions & Logic (Days 8-14)

Day 8 - Caesar Cipher

  • Concept: Function parameters and arguments
  • Project: Encoder/decoder with custom shift amounts
  • Skills: String manipulation, modulo operations, module imports

Day 9 - Secret Auction Program

  • Concept: Dictionaries and error handling
  • Project: Secret auction bidding platform with input validation
  • Skills: Dictionary methods, try/except blocks, OS module, cross-platform compatibility

Day 10 - Calculator

  • Concept: Functions as first-class objects
  • Project: Interactive calculator with continuous operations
  • Skills: Function storage in dictionaries, function references, chaining calculations

Day 11 - Blackjack Game

  • Concept: Functions with outputs and game state management
  • Project: Command-line Blackjack (21) game
  • Skills: Return values, list manipulation, conditional logic, loops

Day 12 - Number Guessing Game

  • Concept: Functions with outputs, difficulty settings, and game loops
  • Project: Command-line Number Guessing Game (guess a random number between 1 and 100)
  • Skills: while loops, function parameters and return values, conditional logic, user input validation

Day 13 - Debugging Exercise

  • Concept: Debugging, function scope, and list manipulation
  • Project: Small debugging task β€” fix a mutate function that transforms a list by doubling items, adding a random integer, and using a helper maths module
  • Skills: Debugging techniques, loops and list operations, using helper modules, random.randint, and practicing with a debugger (breakpoints, Step Into/Step Over)

Day 14 - Higher or Lower Game

  • Concept: Functions with default parameters, game loops, and data structures
  • Project: Higher or Lower guessing game where players compare two famous people and guess who has more Instagram followers
  • Skills: Functions with default parameters, module imports, game state management, string formatting with f-strings, conditional logic, random selection

Week 2 Learning Outcomes:

  • Advanced function concepts (parameters, return values, default arguments, functions as objects)
  • Dictionaries as core data structures and for function dispatch patterns
  • Error handling with try/except blocks
  • Game development patterns and game state management
  • String manipulation and formatting
  • Module organization and imports
  • Debugging and code inspection techniques
  • Building more complex interactive applications
πŸ“ Week 3 - Data Structures (Days 15-21)

Day 15 - Coffee Machine Simulator

  • Concept: Data Structures (Dictionaries), Modular Functions, and Program Loops.
  • Project: A simulator for a coin-operated coffee machine that manages resources (water, milk, coffee) and processes transactions.
  • Skills: Dictionaries for data management, function modularity, global variable scope, while loops for continuous operation, input validation, and f-string formatting.

Day 16 - Coffee Machine in OOP

  • Concept: Introduction to Object-Oriented Programming (OOP).
  • Project: Refactored the Coffee Machine from Day 15 using classes and objects (MenuItem, Menu, CoffeeMaker, MoneyMachine).
  • Skills: Class creation, object attributes and methods, and structuring code into logical, reusable components.

Day 17 - The Quiz Project

  • Concept: Object-Oriented Programming (OOP) and Modular Design.
  • Project: A complete quiz game built with multiple classes (Question, QuizBrain) to manage the game's data and logic separately.
  • Skills: OOP principles (classes, objects, attributes, methods), modular code structure, transforming data into objects, and managing program flow with a while loop.

Day 18 - Turtle & GUI Programming

  • Concept: Turtle Graphics, GUI, and External Libraries.
  • Project: A replica of a Damien Hirst "spot painting" created by extracting colors from an image and using the turtle module to draw on a GUI canvas.
  • Skills: Using the turtle module, managing a GUI window, installing and using external libraries (colorgram), working with tuples for RGB colors, and procedural art generation.

Day 19 - Turtle Race & Event Listeners

  • Concept: State Management, Multiple Object Instances, and Higher-Order Functions.
  • Project: An interactive turtle racing game where the user bets on a winner, and multiple turtle objects race to a finish line.
  • Skills: Managing program state, creating multiple instances from a class, using event listeners (screen.ontimer()), and handling user input with pop-up dialogs (screen.textinput()).

Day 20 - Building the Snake Game (Part 1)

  • Concept: Object-Oriented Design, Animation Control, and Event Handling.
  • Project: The first part of building the classic Snake game, focusing on creating the snake's body and controlling its movement.
  • Skills: OOP class design, smooth animation with screen.tracer(0) and screen.update(), controlling game speed with time.sleep(), and handling user input with screen.listen() and screen.onkey().

Day 21 - Building the Snake Game (Part 2)

  • Concept: Class Inheritance and Collision Detection.
  • Project: Completed the Snake game by adding food, a scoreboard, and collision detection logic.
  • Skills: Using class inheritance, detecting collisions between game objects, and using list slicing.

Week 3 Learning Outcomes:

  • Deep understanding of Object-Oriented Programming (classes, objects, attributes, methods, and inheritance).
  • Structuring complex applications by separating data and logic into different classes.
  • Building graphical user interfaces (GUIs) with the turtle module.
  • Managing animation and program state for interactive applications.
  • Handling user input through event listeners for real-time control.
  • Practical application of data structures like lists and dictionaries within an OOP context.
  • Using external Python libraries to extend program functionality.
πŸ“ Week 4 - OOP & GUI (Days 22-28)

Day 22 - Building the Pong Game

  • Concept: OOP Class Interaction and Game Logic.
  • Project: A complete implementation of the classic Pong arcade game, featuring two paddles, a ball, and a scoreboard.
  • Skills: Designing interacting classes (Ball, Paddle, Scoreboard), handling collision detection, and managing game state in a main loop.

Day 23 - The Turtle Crossing Game

  • Concept: OOP Design, Class Interaction, and Dynamic Difficulty.
  • Project: A "Frogger"-style game where a player turtle must cross a road with moving cars that get faster with each level.
  • Skills: Separating concerns into multiple classes (Player, CarManager, Scoreboard), detecting collision with a list of objects, and dynamically increasing game difficulty.

Day 24 - Files, Directories, and Paths

  • Concept: File I/O and Directory Management.
  • Project: A Mail Merge tool that reads a list of names from one file and uses them to generate personalized invitation letters from a template.
  • Skills: Opening, reading, and writing files (with open(...)), using readlines() to get a list of lines, and using replace() to customize strings.

Day 25 - Working with CSV Data and Pandas

  • Concept: Data Analysis with the Pandas Library.
  • Project: A U.S. States guessing game where the user clicks on a map, and the state's name is written on the map if the guess is correct.
  • Skills: Reading CSV files with Pandas, working with DataFrames and Series, and using turtle to place text at specific x, y coordinates.

Day 26 - List and Dictionary Comprehensions

  • Concept: List and Dictionary Comprehensions.
  • Project: A NATO Phonetic Alphabet generator that converts a user's word into a list of corresponding code words.
  • Skills: Using list and dictionary comprehensions for concise code, and iterating over a Pandas DataFrame with iterrows().

Day 27 - Tkinter, *args, **kwargs and Creating GUI Programs

  • Concept: GUI Programming with Tkinter and Advanced Function Arguments.
  • Project: A Mile to Km converter GUI application built with tkinter.
  • Skills: Creating windows and widgets, managing layout with grid(), using *args for unlimited positional arguments, and **kwargs for unlimited keyword arguments.

Day 28 - Tkinter, Dynamic Typing and the Pomodoro GUI Application

  • Concept: State Management in GUI, Dynamic Typing, and UI/UX Design.
  • Project: A Pomodoro Technique timer application to help manage work and break intervals, featuring a countdown timer and visual progress tracking.
  • Skills: Advanced tkinter (canvas for images and text), managing application flow with after(), and handling application state.

Week 4 Learning Outcomes:

  • Solidified Object-Oriented Programming (OOP) skills by building games with interacting classes.
  • Gained experience in file I/O for reading from and writing to files.
  • Introduced to data analysis and manipulation using the Pandas library with CSV files.
  • Mastered Pythonic constructs like list and dictionary comprehensions.
  • Acquired foundational skills in building graphical user interfaces (GUIs) with tkinter.
  • Learned to manage application state and user events in GUI applications.
πŸ“ Week 5 - File I/O, Error Handling & APIs (Days 29-35)

Day 29 - Password Manager with Encryption

  • Concept: Data Security, Advanced GUI Programming, and File Encryption.
  • Project: A secure password manager application with encryption capabilities, featuring password generation, encrypted storage, and search functionality.
  • Skills: Cryptography with Fernet encryption, advanced Tkinter GUI with themed widgets, pandas for CSV data management, clipboard integration, and comprehensive error handling.

Day 30 - Errors, Exceptions and JSON Data

  • Concept: Errors, Exceptions, and JSON Data.
  • Project: A secure password manager application with encryption capabilities, featuring password generation, encrypted storage, and search functionality.
  • Skills: Cryptography with Fernet encryption, advanced Tkinter GUI with themed widgets, pandas for CSV data management, clipboard integration, and comprehensive error handling.

Day 31 - Flash Card App - Capstone Project

  • Concept: Advanced GUI Programming with Timed Events and Data Persistence.
  • Project: French language learning flashcard application with automatic card flipping, progress tracking, and personalized learning experience.
  • Skills: Canvas widget layering, timer management with window.after(), CSV file handling for progress tracking, dynamic data updates, and user experience design.

Day 32 - Send Email (smtplib) & Manage Dates

  • Concept: Email Automation, Date Handling, and Environment Security.
  • Project: Automated birthday wisher that sends personalized birthday emails and a daily motivational quote sender.
  • Skills: SMTP email automation with TLS encryption, datetime operations for scheduling, pandas data filtering, template-based content generation, and secure credential management with environment variables.

Day 33 - API Endpoints & API Parameters - ISS Overhead Notifier

  • Concept: API Integration, Real-time Monitoring, and Automated Notifications.
  • Project: International Space Station overhead notifier that tracks ISS position and sends email alerts during optimal viewing conditions.
  • Skills: Multiple API integration (ISS Position, Sunrise-Sunset), JSON data processing, proximity detection algorithms, continuous monitoring loops, comprehensive error handling, and environment-based configuration.

Day 34 - API Practice - Creating a GUI Quiz App

  • Concept: API Integration with GUI Applications and MVC Architecture.
  • Project: Quizzler trivia quiz application that fetches questions from Open Trivia Database API and presents them in an interactive Tkinter interface.
  • Skills: API data fetching with requests library, HTML entity decoding, advanced Tkinter canvas widgets, image buttons, visual feedback with timed transitions, MVC design pattern, and separation of concerns across multiple modules.

Day 35 - Keys, Authentication & Environment Variables - Rain Alert

  • Concept: API Authentication, SMS Integration, and Secure Configuration Management.
  • Project: Automated weather monitoring system that checks forecast for rain and sends SMS alerts via Twilio.
  • Skills: OpenWeatherMap API integration, Twilio SMS service, environment variable management for credentials, weather data processing with condition codes, proxy support, and configuration validation.

Week 5 Learning Outcomes:

  • Mastered file I/O operations and data persistence with CSV and JSON formats.
  • Implemented encryption and security best practices for sensitive data storage.
  • Integrated multiple external APIs for real-world applications.
  • Built automated notification systems with email and SMS.
  • Applied error handling and exception management throughout applications.
  • Combined GUI programming with API data for interactive applications.
  • Managed credentials securely using environment variables.
  • Created practical automation tools for daily use.
πŸ“ Week 6 - APIs & Web Scraping (Days 36-42) - Complete

Day 36 - Stock Trading News Alert Project

  • Concept: Financial Data API Integration and Multi-Platform Notifications.
  • Project: Automated stock monitoring system that tracks stock price changes and sends WhatsApp notifications with relevant news articles when significant price movements occur.
  • Skills: AlphaVantage API integration for stock prices and news sentiment, percentage change calculations, Twilio WhatsApp messaging, datetime and timezone handling, news aggregation and formatting, conditional alert thresholds, and error handling for API limits.

Day 37 - Habit Tracking Project - API Post Requests & Headers

  • Concept: Advanced HTTP Methods, API Authentication, and Habit Tracking.
  • Project: Pixela habit tracker integration that creates visual graphs of daily activities using POST, PUT, and DELETE requests with custom headers for authentication.
  • Skills: Advanced HTTP methods (POST, PUT, DELETE), custom headers for API authentication, object-oriented API client design, comprehensive error handling, environment variable configuration, and habit tracking with data visualization.

Day 38 - Workout Tracking Using Google Sheets

  • Concept: Natural Language Processing APIs, Multiple Authentication Methods, and Cloud Data Storage.
  • Project: Exercise tracker that uses natural language processing to analyze workout descriptions and automatically logs data to Google Sheets via Sheety API.
  • Skills: Nutritionix API for exercise analysis, multiple authentication methods (API keys, basic auth, bearer tokens), Google Sheets integration via Sheety, natural language processing, personalized calorie calculations, and real-time data logging.

Day 39 - Capstone Part 1 - Flight Deal Finder

  • Concept: Multiple API Integration, Data Management, and Automated Monitoring Systems.
  • Project: Automated flight deal tracking system that monitors flight prices and sends notifications when deals are found, integrating Amadeus, Sheety, and Twilio APIs.
  • Skills: Amadeus API for flight data and OAuth2 authentication, Google Sheets integration via Sheety API, multi-channel notifications (SMS/WhatsApp) via Twilio, automated price monitoring, IATA code lookup, and modular architecture design.

Day 40 - Capstone Part 2 - Flight Club

  • Concept: Customer Management, Email Automation, and Enhanced Notification Systems.
  • Project: Enhanced flight deal finder with email notification capabilities for multiple customers, creating a complete flight club notification system with customer database management.
  • Skills: Customer database management via Google Sheets, bulk email processing with SMTP, multi-channel notifications (Email + WhatsApp), enhanced error handling, USD currency standardization, and scalable notification architecture.

Day 41 - Introduction to HTML

  • Concept: Web Foundations and HTML5 Document Structure.
  • Project: Personal movie recommendation webpage with semantic HTML structure and accessibility features.
  • Skills: HTML5 semantic elements (header, main, section, footer), document structure and organization, text content markup, meta tags for responsive design, and web accessibility principles.

Day 42 - HTML Intermediate - Forms and Structure

  • Concept: Enhanced HTML Structure, Security Best Practices, and User Experience Design.
  • Project: Interactive birthday party invitation webpage featuring enhanced HTML structure, semantic elements, and proper link security practices with engaging visual design.
  • Skills: Complete HTML5 document structure with proper DOCTYPE and meta configuration, semantic HTML elements and proper nesting for accessibility, external link security best practices with rel="noopener", image attributes and optimization for performance, content accessibility standards with proper alt text, and responsive design meta tags for mobile compatibility.

Week 6 Learning Outcomes:

  • Financial API Integration: Successfully integrated stock market APIs for real-time financial data and automated trading alerts.
  • Advanced HTTP Methods: Mastered POST, PUT, DELETE requests with custom headers and authentication for full API interaction.
  • Multi-API Systems: Built complex applications combining multiple APIs (financial, fitness, travel, communication) for comprehensive functionality.
  • Cloud Data Management: Implemented Google Sheets as a cloud database with real-time synchronization and user management.
  • Automated Notifications: Created multi-channel notification systems using email, SMS, and WhatsApp for comprehensive user engagement.
  • Natural Language Processing: Integrated AI-powered APIs for exercise recognition and analysis from plain text descriptions.
  • Web Development Foundations: Transitioned to web technologies with HTML5, semantic markup, and accessibility best practices.
  • Security Best Practices: Implemented proper link security, credential management, and authentication patterns.
πŸ“ Week 7 - Web Development Foundations (Days 43-49) - Complete

Day 43 - Introduction to CSS

  • Concept: Web Foundations and CSS Styling Fundamentals.
  • Project: Introduction to Cascading Style Sheets for styling and formatting web pages, focusing on selectors, properties, and layout fundamentals.
  • Skills: CSS syntax and structure, selector specificity and inheritance, box model manipulation, text and font styling, color theory and application, and basic layout techniques.

Day 44 - Intermediate CSS - Motivational Poster

  • Concept: Advanced CSS Layout and Responsive Design Techniques.
  • Project: A responsive motivational poster webpage showcasing intermediate CSS techniques including flexbox layouts, responsive design, hover effects, and modern typography using Google Fonts.
  • Skills: Flexbox for layout and alignment, CSS clamp() function for responsive typography, CSS transitions and transforms, media queries for responsive design, box-shadow and text-shadow effects, and CSS custom properties.

Day 45 - Web Scraping with Beautiful Soup

  • Concept: Web Scraping Fundamentals and Data Extraction.
  • Project: Web scraping projects using Beautiful Soup library to extract and parse data from websites, including movie rankings and news articles with data processing and JSON output.
  • Skills: Beautiful Soup HTML parsing and navigation, HTTP requests with the requests library, CSS selector syntax for element targeting, regular expressions for data cleaning, JSON file operations and data serialization, and data sorting and manipulation techniques.

Day 46 - Create a Spotify Playlist using the Musical Time Machine

  • Concept: Automated Web Scraping and Spotify API Integration.
  • Project: A "Musical Time Machine" that scrapes the Billboard Hot 100 for any historical date and automatically generates a matching, authenticated playlist in the user's Spotify account.
  • Skills: Spotify API integration with OAuth2 authentication, web scraping using Beautiful Soup with fallback selector strategies, local HTTP server implementation for OAuth callbacks, secure credential management with environment variables, and advanced JSON data processing for API responses.

Day 47 - Automated Jiji Price Tracker

  • Concept: Advanced Web Scraping and Automation
  • Project: An automated price tracker that monitors Jiji.co.ke for specific products, cleans the data, and sends email alerts for the top deals.
  • Skills: Web scraping with Beautiful Soup, handling HTTP headers, SMTP email automation, data cleaning with Regex, and modular code structure.

Day 48 - Selenium Webdriver Browser Automation

  • Concept: Browser Automation, Dynamic Scraping, and Parallel Processing.
  • Project: An advanced automated scraping tool for Jiji.co.ke that handles dynamic content, manages multiple browser tabs for parallel data extraction, and generates email reports.
  • Skills: Selenium Webdriver configuration, JavaScript execution for scrolling, window handle management, SMTP email composition, and JSON data persistence.

Day 49 - Automated Gym Class Booking Bot

  • Concept: Advanced Form Interaction and Interactive Automation
  • Project: An intelligent automation tool that navigates a gym booking portal, handles complex authentication flows, scrapes schedules, and provides an interactive CLI for booking classes.
  • Skills: Selenium Webdriver, advanced CSS/XPath selectors, custom retry logic, CLI design, state detection, and explicit waits.

Week 7 Learning Outcomes:

  • Mastered CSS fundamentals, responsive layouts, and modern web styling techniques
  • Extracted and processed data from static and dynamic web pages using Beautiful Soup and Selenium
  • Automated playlist creation and data flows using APIs and OAuth2 authentication
  • Controlled browsers for scraping, data extraction, and interactive automation with Selenium
  • Automated email alerts and reports with HTML formatting and robust error handling
  • Used regex, JSON, and modular code for clean, persistent data storage
  • Built command-line interfaces for user-driven automation workflows
  • Managed credentials and configuration securely with environment variables
πŸ“ Week 8 - Web Development (Days 50-56) - Complete

Day 50 - Tinder Bot Automation

  • Concept: Selenium WebDriver for complex browser automation, window switching, and modal handling.
  • Project: An automated Tinder bot that logs in via Facebook, handles authentication dialogs, and automatically likes profiles continuously.
  • Skills: Selenium Webdriver setup, XPath and CSS selectors for element targeting, window handle management for multi-window workflows, keyboard input with Keys, exception handling with ElementClickInterceptedException and NoSuchElementException, environment variable management with python-dotenv, and resilient automation with retry logic.

Day 51 - Internet Speed Twitter Bot

  • Concept: Multi-site web automation and data extraction with Selenium WebDriver.
  • Project: An automated bot that measures internet speed via speedtest.net and tweets complaints to your internet provider if speeds fall below promised levels.
  • Skills: Selenium WebDriver automation across multiple websites, XPath and CSS selectors for element targeting, timing and waits for asynchronous operations, form submission and keyboard input simulation, data extraction from web pages, class-based automation design patterns, and multi-step workflow automation.

Day 52 - Instagram Follower Bot

  • Concept: Intelligent browser automation with stealth techniques and human-like interaction patterns.
  • Project: An automated Instagram bot that targets followers of a specified account and automatically follows them with configurable limits to avoid detection.
  • Skills: Selenium WebDriver automation with stealth configuration, XPath selectors for dynamic elements, explicit waits with WebDriverWait, JavaScript injection for scrolling and element visibility, exception handling for click interception, random delays for human-like behavior, environment variable management, and class-based bot architecture.

Day 53 - Zillow Property Scraper & Google Forms Submission Bot

  • Concept: Web scraping and automated form submission with Selenium WebDriver.
  • Project: An automated bot that scrapes property listings from a Zillow clone website and automatically submits the collected data to a Google Form with intelligent form handling.
  • Skills: Selenium WebDriver setup with explicit waits, CSS selectors with data-test attributes, dynamic element filtering by visibility and state, form input handling with send_keys(), JavaScript injection for scrolling elements into view, multi-page form navigation, automated response submission, and sequential data processing.

Day 54 - Decorators - Function Speed Calculation

  • Concept: Python decorators for enhancing function behavior and performance monitoring.
  • Project: A speed calculation decorator that measures and prints the execution time of functions, demonstrating decorator patterns and their practical application in web frameworks.
  • Skills: Creating custom decorators with wrapper functions, using *args and **kwargs for flexible function signatures, time module for performance measurement, decorator syntax with @ symbol, higher-order functions, and real-world decorator usage in Flask routing.

Day 55 - Flask Number Guessing Game

  • Concept: Building interactive web applications with Flask and dynamic routing.
  • Project: A web-based number guessing game where players guess a randomly generated number (0-9) through HTTP requests and receive visual feedback with animated GIFs.
  • Skills: Flask application setup and routing, dynamic route parameters with type conversion, conditional game logic, HTML response generation, inline CSS styling, external media embedding, and Flask development server configuration.

Day 56 - Meme Website with Flask

  • Concept: Building multi-page web applications with Flask, template rendering, and static file management.
  • Project: A dynamic meme website with multiple pages for browsing memes, viewing individual meme details, and adding new memes to the collection using Jinja2 templates.
  • Skills: Flask multi-page routing with url_for(), Jinja2 template rendering and inheritance, static file management (CSS and JavaScript), GET and POST request handling, template context passing, and responsive web design with CSS styling.

Week 8 Learning Outcomes:

  • Mastered Selenium WebDriver automation for complex browser interactions and multi-step workflows
  • Built intelligent bots that navigate social media platforms and other websites with human-like behavior patterns
  • Implemented stealth techniques and randomized delays to avoid bot detection systems
  • Learned Python decorators and their real-world applications in web frameworks
  • Created interactive web applications with Flask, including routing, template rendering, and static file management
  • Handled form submission and data collection across multiple web applications
  • Applied security best practices with environment variable credential management
  • Integrated JavaScript and CSS for enhanced web application functionality
πŸ“ Week 9 - Web Applications (Days 57-63) - Complete

Day 57 - Templating with Jinja in Flask Applications

  • Concept: Jinja2 Templating, Dynamic Routing, and API Integration.
  • Project: A blog website and age/gender predictor that fetches data from external APIs and renders it dynamically using Jinja2 templates.
  • Skills: Flask route configuration with type converters, consuming APIs with requests, Jinja2 syntax (loops, conditionals, filters), and dynamic URL generation.

Day 58 - Web Design with Bootstrap

  • Concept: Bootstrap Framework, Responsive Design, and Front-end Integration.
  • Project: A responsive landing page application built with Flask and styled using the Bootstrap framework.
  • Skills: Bootstrap Grid System, component implementation, linking external assets via CDN, and Flask template rendering.

Day 59 - Blog Capstone Part 2: Styling

  • Concept: Bootstrap Integration, Responsive Design, and Static Files.
  • Project: An enhanced version of the Flask Blog and Age/Gender Guesser, now fully styled using the Bootstrap 5 framework.
  • Skills: Integrating Bootstrap with Flask templates, using grid systems, serving static CSS files, and component implementation.

Day 60 - Flask Contact Form with Email Integration

  • Concept: Flask Form Handling, SMTP Email Integration, and Security Best Practices.
  • Project: A professional contact form web application that processes form submissions and automatically sends email notifications via SMTP with unique confirmation tracking.
  • Skills: Flask POST request handling, SMTP email automation with STARTTLS encryption, environment variable management for credentials, UUID generation for tracking IDs, form validation, and responsive web design with Font Awesome icons.

Day 61 - Flask Authentication with WTForms

  • Concept: Flask-WTF Integration, CSRF Protection, and Form Validation.
  • Project: A secure Flask authentication system using WTForms for form handling, validation, and CSRF protection with flash messaging and responsive design.
  • Skills: Flask-WTF form creation with custom validators, CSRF token integration, flash message handling, configuration class design with environment variable validation, Bootstrap form styling, and template inheritance.

Day 62 - Flask Cafe Directory with CSV Data Management

  • Concept: Flask-Bootstrap Integration, CSV Data Management, and Custom Form Validation.
  • Project: A comprehensive Flask web application for managing a cafe directory with CSV data storage, featuring custom validation, duplicate prevention, and Bootstrap styling.
  • Skills: Flask-Bootstrap5 integration, CSV file operations with proper encoding, custom validators for time format and security, duplicate data prevention, flash messaging, and comprehensive error handling with custom error pages.

Day 63 - Flask Library Management with SQLAlchemy

  • Concept: SQLAlchemy ORM, Database Models, and CRUD Operations.
  • Project: A Flask web application for managing a personal book library using SQLAlchemy ORM for database operations with complete CRUD functionality and SQLite integration.
  • Skills: SQLAlchemy DeclarativeBase and model creation, mapped columns with data types and constraints, database session management, SQLAlchemy query methods, Flask route handling for database operations, and template rendering with dynamic database data.

Week 9 Learning Outcomes:

  • Advanced Flask Development: Mastered comprehensive Flask web application development with multiple routes, template rendering, and static file management
  • Template Engineering: Implemented sophisticated Jinja2 templating with inheritance, loops, conditionals, and dynamic content rendering from APIs and databases
  • Bootstrap Integration: Successfully integrated Bootstrap framework for responsive design, professional UI components, and mobile-friendly interfaces
  • Form Handling and Validation: Created secure forms with WTForms, custom validators, CSRF protection, and comprehensive error handling with user feedback
  • Email Integration: Implemented SMTP email automation with secure credential management and professional email composition
  • Database Operations: Transitioned from CSV file storage to SQLAlchemy ORM for robust database operations with complete CRUD functionality
  • Security Best Practices: Applied environment variable management, CSRF protection, input validation, and secure authentication patterns
  • Error Handling: Implemented comprehensive error handling with custom error pages, flash messaging, and user-friendly feedback systems
πŸ“ Week 10 - Game Development (Days 64-70) - In Progress

Content will be added as the week progresses...

πŸ“ Week 11 - Automation & Scripting (Days 71-77) - Coming Soon

Content will be added as the week progresses...

πŸ“ Week 12 - Machine Learning Basics (Days 78-84) - Coming Soon

Content will be added as the week progresses...

πŸ“ Week 13 - Advanced Projects (Days 85-91) - Coming Soon

Content will be added as the week progresses...

πŸ“ Week 14 - Portfolio Projects (Days 92-98) - Coming Soon

Content will be added as the week progresses...

πŸ“ Week 15 - Capstone Project (Days 99-100) - Coming Soon

Content will be added as the week progresses...

Challenge Goals

  • Build consistent coding habits
  • Learn Python fundamentals through practical projects
  • Create a portfolio of 100 Python programs
  • Document learning progress and insights

About

Solutions and projects from the 100 Days of Code: Python challenge. A complete record of my learning path, including daily mini-projects, milestone challenges, and code for building web apps, games, and data analysis tools. Commit daily and track progress.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages