Skip to content

idabblewith/PythonSensei

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PythonSensei - 100 Days of Python

PythonSensei

Introduction

PythonSensei is a program that runs 100 Python projects which were created over the course of 100 Days.

The 100 programs that PythonSensei can run are primarily based on Angela Yu's 100 Days of Code Udemy Course, range from beginner to professional, and are optomised to be run via selection on a command line interface.

Please note that this collection of programs was made after having completed the 100 day challenge in 2021. This serves as a means to stitch programs together and make them more accessible. Due to deprecations over the years, the projects may be reworked.

Here is a demo of how the program works:

STARTING PYTHONSENSEI Screenshot 1

SELECTING PROGRAM Screenshot 2

RUNNING PROGRAM Screenshot 3

List of Projects

Use the table below to develop an understanding of the projects.
The last twenty projects are intended to be a culmination of the skills learned throughout Angela's course and are thus marked 'VARIOUS'.

All functional to day 100 @ 13/10/24

DAY PROJECT SKILL LEVEL NOTABLE TECH
Day 100 PACMAN VARIOUS UNSET
Day 99 DONKEY KONG VARIOUS UNSET
Day 98 TETRIS VARIOUS UNSET
Day 97 PIXELATOR VARIOUS UNSET
Day 96 SPACE INVADERS VARIOUS UNSET
Day 95 SPACE RACE DATA VARIOUS UNSET
Day 94 POLICE DEATHS VARIOUS UNSET
Day 93 DEV SALARY ANALYSIS VARIOUS UNSET
Day 92 CUSTOM WEB SCRAPER VARIOUS UNSET
Day 91 COLOR-PAL GEN VARIOUS UNSET
Day 90 PDF TO AUDIOBOOK VARIOUS PYPDF2, PYTTSX3
Day 89 DISAPPEARING TEXT VARIOUS FLASK, SQLALCHEMY
Day 88 TODO LIST VARIOUS FLASK, SQLALCHEMY
Day 87 CAFE AND WIFI VARIOUS FLASK, SQLALCHEMY
Day 86 BREAKOUT VARIOUS TURTLE
Day 85 TYPING SPEED VARIOUS TKINTER
Day 84 IMAGE WATERMARKING VARIOUS NUMPY, TKINTER, PIL, SUBPROCESS
Day 83 TIC TAC TOE VARIOUS
Day 82 STOCK ANALYSIS VARIOUS YAHOO FINANCE, PANDAS, MATPLOTLIB
Day 81 TEXT TO MORSE VARIOUS SCIPY, NUMPY, SOUNDFILE, SOUNDDEVICE
Day 80 PROPERTY VALUATION PROFESSIONAL PANDAS, SEABORN, MATPLOTLIB, PLOTLY, SCIPY
Day 79 KERNEL DENSITY EST. PROFESSIONAL PANDAS, SEABORN, MATPLOTLIB, PLOTLY, SCIPY
Day 78 NOBEL PRIZE PROFESSIONAL SEABORN, MATPLOTLIB, PLOTLY, SCIPY
Day 77 LINEAR REG. & SEABORN PROFESSIONAL SEABORN, SKLEARN, PLOTLY, MATPLOTLIB
Day 76 NUMPY PROFESSIONAL NUMPY, MATPLOTLIB, SCIPY, PIL
Day 75 PLOTTING APP STORE PROFESSIONAL PLOTLY, PANDAS, MATPLOTLIB
Day 74 GTRENDS AND MATPLOTLIB TIME SERIES PROFESSIONAL PANDAS, MATPLOTLIB
Day 73 LEGO PANDAS PROFESSIONAL PANDAS, MATPLOTLIB
Day 72 MATPLOTLIB PROFESSIONAL PANDAS, MATPLOTLIB
Day 71 PANDAS DATA EXPLORATION PROFESSIONAL PANDAS
Day 70 BLOG: DEPLOYMENT PROFESSIONAL RENDER, GUNICORN, PSYCOPG
Day 69 BLOG: ADDING USERS PROFESSIONAL SQL_ALCHEMY, GRAVATAR
Day 68 BLOG: AUTHENTICATION PROFESSIONAL FLASK_LOGIN
Day 67 BLOG: REST API/CKEDITOR ADVANCED FLASK, CKEDITOR
Day 66 REST API ADVANCED
Day 65 - ADVANCED -
Day 64 TOP 10 MOVIES ADVANCED FLASK, WTFORMS, SQLITE3
Day 63 VIRTUAL BOOKSHELF ADVANCED FLASK, WTFORMS
Day 62 FLASK: COFFEE AND WIFI ADVANCED FLASK, WTFORMS
Day 61 FLASK: ADVANCED FORMS ADVANCED FLASK, WTFORMS, BOOTSTRAP
Day 60 FLASK: FORMS AND REQUESTS ADVANCED FLASK
Day 59 FLASK: BASIC BLOG 2 ADVANCED FLASK
Day 58 FLASK: TINDOG ADVANCED FLASK
Day 57 FLASK: BASIC BLOG ADVANCED FLASK
Day 56 FLASK: NAMECARD ADVANCED FLASK
Day 55 FLASK: GUESSING GAME ADVANCED FLASK
Day 54 FUNC SPEED DECORATOR ADVANCED
Day 53 THREADED AUTOMATED REAL ESTATE ADVANCED SELENIUM, BEAUTIFUL SOUP
Day 52 INSTAGRAM BOT ADVANCED SELENIUM
Day 51 TWITTER COMPLAINT BOT ADVANCED SELENIUM
Day 50 TINDER SWIPING BOT ADVANCED SELENIUM
Day 49 AUTOMATED JOB APPLICATION ADVANCED SELENIUM
Day 48 SELENIUM GAME BOT ADVANCED SELENIUM
Day 47 AUTOMATED AMAZON PRICE TRACKER ADVANCED BEAUTIFUL SOUP
Day 46 SPOTIFY TIME MACHINE ADVANCED SPOTIPY, BEAUTIFUL SOUP
Day 45 MUST WATCH LIST INTERMEDIATE BEAUTIFUL SOUP
Day 44 PERSONAL SITE INTERMEDIATE
Day 43 HTML/CSS CV INTERMEDIATE
Day 42 HTML CV + INTERMEDIATE
Day 41 HTML CV INTERMEDIATE
Day 40 FLIGHT CLUB INTERMEDIATE REQUESTS, SMTPLIB, TWILIO
Day 39 FLIGHT SCANNER INTERMEDIATE REQUESTS, TWILIO
Day 38 NLP WORKOUT TRACKER INTERMEDIATE REQUESTS
Day 37 PIXELA TRACKER INTERMEDIATE REQUESTS
Day 36 STOCK NOTIFIER INTERMEDIATE REQUESTS, TWILIO
Day 35 RAIN ALERT INTERMEDIATE REQUESTS, TWILIO
Day 34 QUIZZLER INTERMEDIATE REQUESTS
Day 33 ISS TRACKER INTERMEDIATE SMTPLIB
Day 32 BIRTHDAY WISHER INTERMEDIATE TKINTER, PANDAS
Day 31 FLASH CARDS INTERMEDIATE TKINTER
Day 30 PASS MANAGER PRO INTERMEDIATE TKINTER
Day 29 PASS MANAGER INTERMEDIATE TKINTER
Day 28 POMODORO INTERMEDIATE TKINTER
Day 27 MILES TO KM INTERMEDIATE TKINTER
Day 26 NATO ALPHABET INTERMEDIATE PANDAS
Day 25 US STATES GAME INTERMEDIATE PANDAS
Day 24 MAIL MERGER BEGINNER
Day 23 TURTLE CROSSING CAPSTONE BEGINNER TKINTER, TURTLE
Day 22 PONG BEGINNER TKINTER, TURTLE
Day 21 SNAKE GAME P2 BEGINNER TKINTER, TURTLE
Day 20 SNAKE GAME P1 BEGINNER TKINTER, TURTLE
Day 19 TURTLE RACE BEGINNER TKINTER, TURTLE
Day 18 TURTLE ART BEGINNER TKINTER, TURTLE
Day 17 QUIZ BEGINNER REQUESTS
Day 16 OOP COFFEE MACHINE BEGINNER
Day 15 COFFEE MACHINE BEGINNER
Day 14 HIGHER LOWER GAME BEGINNER
Day 13 MULTIPROCESS PORT SCANNER BEGINNER SCAPY, SUBPROCESS
Day 12 NUMBER GUESSING GAME BEGINNER
Day 11 BLACKJACK CAPSTONE BEGINNER
Day 10 BASIC CALCULATOR BEGINNER
Day 9 SILENT BID BEGINNER
Day 8 CAESAR'S CIPHER BEGINNER
Day 7 HANGMAN BEGINNER
Day 6 BMI CHECKER BEGINNER
Day 5 PASSWORD GENERATOR BEGINNER
Day 4 ROCK PAPER SCISSORS BEGINNER
Day 3 TREASURE HUNT BEGINNER
Day 2 BILL SPLITTER BEGINNER
Day 1 BAND NAME GENERATOR BEGINNER

Tech Stack

The Tech Stack for PythonSensei is rather broad as the project covers various topics. To name a few key components:

General

  • Git Bash as terminal
  • Python3 as primary language
  • Javascript as additional language

Webapp Development

  • Flask as server framework
  • Request as primary python API library
  • PostgreSQL as our primary database
  • SQLite as our secondary database
  • SQLAlchemy ORM as ORM library
  • HTML5 to develop skeleton of websites
  • CSS3 to style website
  • Bootstrap 5 to style websites faster
  • WTForms to create forms with flask

Data Science

  • NumPy for numerical computing
  • Plotly for data visualisation on charts
  • Scikit Learn for machine learning
  • Pandas for manipulating dataframes
  • Matplotlib for data visualisation
  • Seaborn for statistical data visualisation and analysis

GUI, Automation and Scraping

  • Selenium to scan and scrape web pages
  • Beautiful Soup to parse HTML and use with Selenium
  • TKinter for graphics and GUI
  • Turtle for graphics and GUI

Local Development Setup

To run the program launcher locally, you must have Python installed and type 'python start.py' from the root directory (where start.py is located).

  • Note that you need to install npcap locally to run Day 13/scapy (https://npcap.com)
  • Note that you need to set up your email account to allow third party apps for Day 31 (for google you must setup SMTP and app passwords for your account https://myaccount.google.com/u/2/apppasswords)
  • Note that you need to get Twilio and OpenWeather API keys from Day 32 onward.
  1. Fill in and rename the .env.template file to .env

    • At the root directory, there is a .env.template file which you should open and fill in your API keys/emails/passwords.
    • Once you have done that, you must rename the file to .env
    • THIS MUST BE DONE. For security reasons, the .env file with these 36 credentials has been gitignored. You must create your own.
  2. Install Dependencies

    • If you don't have it installed already, install poetry: https://python-poetry.org
    • In the base directory of the repo where the pyproject.toml and poetry.lock files are, run poetry shell to ensure you are in the virtual environment
    • Run poetry install to install all required dependencies
  3. Enter the shell and run

    • Run the start.py file by typing python start.py or py start.py
  4. Select program

    • If all is well, you will see a greeting and be prompted to select a program.
    • Follow the prompts and select a program.

Have fun!~

idabblewith

About

100 Days of Python Challenge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published