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:
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 |
The Tech Stack for PythonSensei is rather broad as the project covers various topics. To name a few key components:
- Git Bash as terminal
- Python3 as primary language
- Javascript as additional language
- 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
- 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
- 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
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.
-
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.
-
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
-
Enter the shell and run
- Run the
start.py
file by typingpython start.py
orpy start.py
- Run the
-
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