This project contains the lectures and projects from the course by Dr. Angela Yu. Practice projects and comments that are relevant to myself and to my learning process.
This challenge is designed to help you enhance your Python programming skills over the course of 100 days. Whether you are a beginner looking to build a solid foundation or an experienced developer aiming to deepen your Python knowledge, this challenge is tailored for everyone. Each day, you'll find a new coding task or project in its dedicated folder. The challenges are crafted to cover a wide range of Python concepts, from basic syntax to advanced topics like web development, data analysis, and more.
- Diverse Coding Challenges: Explore a wide range of Python programming concepts, from fundamental syntax to advanced topics and projects like web development, data analysis, and more.
- Progressive Difficulty: Start with beginner-friendly tasks and gradually advance to more complex challenges.
- Real-world Applications: Apply your Python skills to real-world scenarios by working on projects that simulate practical coding situations.
- Flexibility and Adaptability: Tailor the challenge to your specific interests and goals.
- day specific .py files. These contain the daily course with personal comments in areas that i deemed necessary
- day specific project folders. These contain the day specific projects with all the files and the structure of the project.
Please make sure that the required libraries, frameworks and files are installed and present for proper project functionality.
-
Fork this repository:
Click on the "Fork" button at the top-right of this page to create your own copy of these Selenium automation scripts.
-
Clone your forked repository:
Copy and run the desired files or project folders.
To use the day specific .py files:
- Copy the content of day_xx.py .
- Paste the content into a new Python file (e.g.,
my_day_xx.py
). - Save the file and look over / run it.
Feel free to modify and adapt the files based on your specific requirements.
To use the day specific project folders:
- Copy the content of
day xx - project name
folder. - Paste the content into a new folder.
- Save the contents run
main.py
. - Feel free to open and analyze other files that are within the project folder.
You can customize the files / folders as needed for your own desired usage. Feel free to explore the files and folders in the repository and adapt them to suit your needs.
day specific .py : contain several explanations and practical examples of the topic for the specified day day specific project folder : contains a project that is build using topics and methods used during the day, along with previously gained knowledge.
09.01.2024 → day 07 - Hangman - Contains the well known Hangman game with a personalized list of words and some ASCII art that is displayed while you play the game.
- Chose a random word, compare the letters and fill in the slots if the letter is contained in the given word.
- Have a game loop that allows the user to guess until the word is guessed or the number of lives are depleted.
- Have a visual representation of the progression, i.e. letters remaining and lives lost so far.
15.01.2024 → day 08 - Cesar Cypher - Contains the Cesar Cypher software with a few variants that are included in the repository.
- Taking a common phrase and shifting the characters to make the phrase encrypted.
- Provide the shift amount to be able to decrypt the phrase.
- Compare initial phrase, encrypted and decrypted answer.
18.01.2024 → day 09 - Silent Auction - Contain the Silent Auction application used to log bids without making them public.
- Entering and saving a bid for each person.
- Clear the screen, so the previous bid would not be visible.
- Compare bids and get the highest winning bid.
24.01.2024 → day 10 - Calculator - Contains the Calculator application used for basic math.
- Focused on creating functions and using them within a while loop and practice loop to reset the program if the user enters a specific key.
- Provide some graphical references for the operations.
- Store the previous result and continue operations with it.
25.01.2024 → day 11 - Blackjack - Contains the Blackjack application to play against the computer by respecting a set of rules.
- Focused on calculating cards and switching the A from 11 to 1 based on the dealt hand.
- Make the Calculator to respect a set of rules.
- Random generate and deal cards to the Player and the Calculator, and save the dealt values.
31.01.2024 → day 14 - Higher Lower - Game - Guessing game that will randomize the A and B at start.
- B option will become A option and B will get another random generated option.
- Counting the score of the player.
- Personal twist with Football stadiums instead of the course template.
06.02.2024 → day 16 - Coffee Machine OOP - Contains the Coffee Machine app in an OOP style.
- Focused on using the OOP style to address various parts of the Coffee Machine.
07.02.2024 → day 16 - Quiz Game OOP - Contains the Quiz Game app in an OOP style.
- Focused on using OOP and importing from several files.
- Saving the score and progress along the way to provide the user with a sense of progression.
12.02.2024 → day 18 - Hirst Painting - Contains a Hirst like painting program.
- focused on extracting colors from a predefined image
- randomizes the extracted colors and creates a Hirst like painting with a random color.
- the app uses turtle module.
13.02.2024 → day 19 - Turtle Race - Contains a Turtle race program.
- focused on generating turtles and make them race at random speeds
- requesting input from the user and calculating the winner vs user input.
14.02.2024 → day 20-21 - Snake Game - Contains the well known Snake game made using Turtle module. Given the complexity of the project, this is listed as a two-day project.
- OOP structure focused on break down the game specific functions.
- Score tracking, speed increasing and collision detections are a few features of the app.
15.02.2024 → day 22 - Pong Game - Contains the well known Pong game made using Turtle module.
- OOP structure focused on break down the game specific functions and elements.
- Score tracking, speed increasing and collision detections are a few features of the app.
- Made to be played by Two players.
19.02.2024 → day 23 - Turtle Crossing - Contains a Turtle Crossing app made using Turtle module.
- OOP structure focused on break down the app specific functions and elements.
- Score tracking, speed increasing and collision detections are a few features of the app.
- Turtle set-up to move forward, difficulty increases with every cleared level.
21.02.2024 → day 24 - Mail Merge - Contains a Mail Merging app.
- Focused on file paths and folder accessing to get, handle and update the data.
- Replacing a filler in a template with names from a different list.
- Auto generating personalized (name based) mails.
26.02.2024 → day 25 - CSV files - Contains a script used to count the squirrels in Central Park, NY.
- Focused on file handling and data accessing.
- Extracting, saving and updating the data in various CSV files.
28.02.2024 → day 26 - NATO Alphabet - Contains a script used to convert letters from an input word.
- Converts a word in to NATO alphabet notations.
12.03.2024 → day 27 - Miles to KM converter - Contains a script used to convert miles to KM.
- Uses a GUI based script that allows user input.
- Returns the result to the user and binds function to a button.
13.03.2024 → day 28 - Pomodoro app - Contains the Pomodoro app.
- Uses a GUI based app that allows to track learning time based on Pomodoro principles.
- Using the basic app design the user can also add sound notifications.
14.03.2024 → day 25 - Romania County Game - Contains guess the county app made specifically for Romania.
- The folder has 2 .py files one is a course specific and another one is the Romania County Game.
- Has additionally included a high score file and a timer that is visible to the player while also counting down.
18.03.2024 → day 29 - Password Manager - Pass Manager is an app made to store various details.
- GUI app that helps keep track of passwords, usernames, and websites.
- Can be transformed to a .exe and can run locally without the need for python environment.
- 20.03.2024 - updated with a personal version and an oop version
25.03.2024 → day 31 - Capstone Project - Flash Card App that can be used to learn other languages.
- GUI app that helps learning words in other languages, focused around working with diffrent files.
- Flash green when the answer is correct and red when it is wrong.
26.03.2024 → day 32_1 - SMTP merger - Script to send emails that pick a random quote.
- Made using smtp and file handling.
27.03.2024 → day 32 - Automated Birthday Wisher - Script to automate birthday wishes.
- Made using the SMTP module and Pandas to handle the file navigation.
- Picks the email template from a db and sends the birthday wishes based on the date and time extracted when the script runs.
02.04.2024 → day 33_1 - Kanye Quote Machiner - Fun GUI app that generates random quotes.
- Made by pulling API data.
- GUI designed in tkinter with specific elements.
03.04.2024 → day 33_2 - ISS overhead notifier - Script that will notify you if the ISS is above you.
- Made by pulling API data.
- Mixing various modules that have been used so far.
04.04.2024 → day 34 - Trivia GUI Quizz App - App that random generates a quiz.
- Uses API data and interactions.
- OOP structure to the application.
- GUI designed with tkinter module.
10.04.2024 → day 36 - Stock Tracking App - App that tracks the price of stocks and pulls the news for that specific company.
- Uses API data and interactions.
- Notification module with sms text and twilio API.
15.04.2024 → day 37 - Habit Tracker - App that tracks habbits.
- Uses API data and interactions.
- API calls detailed in the main file.
17.04.2024 → day 38 - Workout Tracker with GoogleSheets - App that tracks Workouts and results.
- Uses API data and interactions.
- Early example of language model transfered to data sheet and interpreed by an API.
22.04.2024 → day 39 - Capstone - Cheap Flight Finder - App that finds cheap flights based on the user's requests.
- Uses API data and interactions to pull information, compare, and generate a notification if conditions are met.
25.04.2024 → day 40 - Flight Deals - Group Email - Scaled up the Cheap Flight Finder project.
- Added a list of people that can get notified by adding e-mails.
- OOP structure, focused and API calls, managing the notifications.
30.04.2024 → day 41 - HTML Introduction - Introductions to HTML structure.
- Several exercises are based on HTML structure and implementation.
02.05.2024 → day 42 - HTML Intermediate - Intermediate level of HTML structure and design.
- Several exercises are based on intermediate level of HTML structure and implementation.
28.05.2024 → day 43 - CSS Introduction - Introductions to CSS structure.
- Several exercises are based on CSS structure and implementation.
03.06.2024 → day 44 - CSS - Intermediate - Intermediate level of CSS structure and design.
- Several exercises are based on intermediate level of CSS structure and implementation.
05.06.2024 → day 45 - Web Scraping - Beautiful Soup - Introduction to webscraping.
- Introduction to Beautiful Soup and how to scrape for data.
06.06.2024 → day 45_1 - Top 100 movies - Top 100 movies to watch application.
- Uses Beautiful Soup to scrape the data and other data manipulation techniques to make the list of top 100 movies to watch.
20.06.2024 → day 46 - Spotify Playlist - Auto generated Spotify Playlist.
- Uses Beautiful Soup to scrape the data of top 100 billboard.
- Logs and uses the Spotify API to check if scraped songs are available in your country.
- Creates a Spotify playlist with the date requested by the user and the billboard 100 title.
24.06.2024 → day 47 - Online Price Tracker - Price tracker script.
- Uses Beautiful Soup to scrape the price of a specific item.
- Sends an email with the price alert to a preset email using the smtplib module.
26.06.2024 → day 48 - Scraping with Selenium - Scraping data with Selenium interactions.
- OOP structure to scrape data with by using Selenium locators logic.
27.06.2024 → day 48_1 - The Cookie Clicker Project - Cookie Cliker bot with Selenium.
- Using Selenium to find items and interact with them based on the prices.
- Compares the prices and clicks the min value upgrade available.
01.07.2024 → day 48_1 - The Cookie Clicker Project - Max approach - New apporach to Cookie Clicker
- Chosing max cost available upgrade and ignores the clicker item
03.07.2024 → day 53 - Capstone Scraping and Data entry - Scraping program that fills out the data in to a Google form.
- Scrape data using Beautiful Soup.
- Fill out the scraped data in a Google form using Selenium Automation.
08.07.2024 → day 54 - Auditorium Exercise - Auditorium Exercise from the course tracker.
- Decorator to track the speed at which the functions do the calculations.
10.07.2024 → day 55_1 - Auditorium Exercise - Auditorium Exercise from the course tracker.
- Createing the logging_decorator() function.
11.07.2024 → day 55_2 - Higher Lower - URL - Higher Lower game app made with Flask server services.
- Works based on URL guessing.
- Renders various GIFs based on the guess of the user.
16.07.2024 → day 56 - Personal Site - Personal Site project with Flask.
- Rendering CSS and HTML files with Flask.
- Building specific folders for images and interactions.
17.07.2024 → day 56_1 - Name Card - Personalized name card Website.
- Rendering CSS and HTML files with Flask, can be used as a baseline for a personal digital Card.
- Adding personal touch to the HTML5 UP template.
28.08.2024 → day 57 - Jinja - Introduction to Jinja.
- Basic website building blocks using Jinja and Flask.
29.08.2024 → day 57_1 - Blog Capstone Project Part 1 - Templating - Templating a blog-like page using Jinja.
- Pulls information from an API.
- Setting up a template that will be auto applied to a blog like page.
- Redirects to the detailed page applying the same templating
03.09.2024 → day 58 - Bootstrap Intro - Introduction to Bootstrap.
- Easy to code exercise with TO-DOs that focus on applying Bootstrap to a web page.
04.09.2024 → day 58_1 - Bootstrap Components - Diving in to Bootstrap.
- Templating a web page using Bootstrap elements.
05.09.2024 → day 58_2 - TinDog - Tinder for Dogs build with Bootstrap.
- Templating a Tinder like page for dogs using Bootstrap.
03.10.2024 → day 59 - Blog Capstone part 2 - styling - Continue the day 57 by adding styling.
- Stylize the skeleton blog build in day 57.
16.10.2024 → day 60 - day 60 - Requests with Flask - Functional contact form - The blog created on day 57 has now a functional contact form.
- Made using smtplib, jinja, requests and flask.
- Focused on introduction of mailing service being added to the contact form and routing it, so the mails are sent to target email address.
17.10.2024 → day 61 - Advanced Forms with Flask - WTForms - Premade form rendering with Flask.
- Uses WTForms premade to import and render the form with Flask.
28.10.2024 → day 62 - Coffe and WiFi project - Project list with Coffee shops and facilities provided - Wi-Fi and other stuff.
- Skeleton HTML added alongside CSV data that stores the details, requirements.txt added with the necessary libs in order to make the project run
- Flask and Jinja to be user in the python file that will drive the project
29.10.2024 → added main.py for day 62 - Coffe and WiFi project - Added main.py file that contains the flask app.
- Renders templates using Jinja and pulls data from the CSV file that holds data about coffee shops.
30.10.2024 → day 63 - Book manager site - no DB yet - Book manager with no db, runs on Flask
- Renders templates using Jinja.
30.10.2024 → day 63_1 - SQLite DB - SQLite DB operations from python code.
- Python implementation for a database using SQLite DB and usage of python syntax to work with the db.
04.11.2024 → day 63_2 - SQLAlchemy - How to manipulate DB using SQLAlchemy.
- Contains examples on how to add, edit, update, delete DB entries using Python language and SQLAlchemy library.
06.11.2024 → day 63_3 - Book Manager with DB - Remaking the Book Manager site with DB.
- Removed the CSV file that served as preliminary database.
- Added structure template files with HTML - main.py with logical structure and functionality to be added soon.
07.11.2024 → main.py - Added main.py for day 63_3 Project.
- Contains the logical structure and the functionality of the project.
- Can be used as a baseline for various projects that include DB manipulation.
11.11.2024 → day 64 - My top 10 movies Website - Top 10 movie Website for each taste.
- Cover image model with a DB and details of the movie on the back of the card.
- Added structure template files with HTML - main.py with logical structure and functionality to be added soon.
12.11.2024 → main.py - Added main.py for day 64 Project.
- Make sure you use OS module for the keys or hard-code your keys in the code file.
- The project is a mix of API calls, search, add to db, buttons and layout using python code.
13.11.2024 → day 65 - Web Design School - Web design principles.
- Breakdown of the color theory that is applicable when you design Web pages and / or applications.
14.11.2024 → day 66 - API building with RESTful routing - API Building with Flask.
- Contains the requirements to build it, some personal notes, and the DB file that can be used.
- main.py with logical structure and functionality to be added soon.
18.11.2024 → main.py - Added main.py for day 66 Project.
- Routes declared are available in the URL; also, some routes are available only by testing with Postman.
- Pay attention to the DB part that is in charge of saving and adding elements to the database.
19.11.2024 → day 67 - Blog Project - RESTful Routing - Blog project adapted to use a database and RESTful Routing.
- Contains the requirements to build it, some personal notes, the styling section with HTML and CSS, the image assets and the DB file that can be used.
- main.py, with logical structure and functionality to be added soon.
20.11.2024 → main.py - Added main.py for day 67 Project.
- Routes declared and linked to buttons.
- DB manipulation with example, server setup and implementation, and form handling to submit contact requests and blog posts.
21.11.2024 → day 68 - Advanced Authentication with Flask - Handling advanced authentication with Flask.
- Introduction to hashing and salting passwords in a DB.
- Refer to notes and flow image for additional information and details.
- main.py with logical structure and functionality to be added soon.
25.11.2024 → main.py - Added main.py for day 68 Project.
- Routes declared, introducing hashing and salting before writing to the DB.
- DB manipulation with example, server setup and implementation, and form handling to submit contact requests and blog posts.
- Use your own personal key to run the app.
26.11.2024 → day 69 - Blog Capstone - Adding Users - A Blog project that adds users to the database.
- adding the formatting structure and the layout basses for the project alongside images and other assets.
- main.py and forms.py with logical structure and functionality to be added soon.
27.11.2024 → forms.py - Added forms.py for day 69 Project.
- Class created to handle the forms that are used for the blog, separating the user and the content in different templates.
28.11.2024 → main.py - Added main.py for day 69 Project.
- Please use your own key for the app.config.
- contains a TODO structure with routes added and personal comments.
02.12.2024 → day 70 - Git, Github and Version Control - Introduction to Version Control.
- List of notes and commands that will help you move the work from local directory to GitHub repositories.
03.12.2024 → day 71 - Deploy the webApp(blog) - How-to deploy any of your work.
- List of notes that are used to deploy an app and several hosting options based on your target.
04.12.2024 → day 72 - Data Exploration with Pandas - Explore data handling with pandas.
- Introduction to data manipulation using Pandas and working with big data CSV files.
05.12.2024 → day 73 - Data Vizualization - Mathplotlib - Data visualization using Matplotlib.
- Visualization of data that is handled with Pandas.
- Chart styling based on desired effect, updated for use in PyCharm instead of Jupyter Notebook.
10.12.2024 → day 74 - Aggregate and Merge Data in Pandas - How to combine and summarize datasets using Pandas.
- Techniques for aggregating data to derive details and merging datasets to create views for analysis.
- Real-World examples with the included .csv files.
11.12.2024 → day 75 - Google Trends Data - Resampling and Visualising - How to combine and visualising datasets.
- Techniques for sampling data and merging datasets to create views for analysis.
- Real-World examples with the included .csv files.
13.12.2024 → day 76 - Plotly Charts and Appstore analysis - Chart output of sampled data.
- Techniques for structuring data to create views for analysis and also customize the charts based on the needs of the user.
- Real-World examples with the included .csv file.
Contributions are welcome! Feel free to contribute to the 100 Days of Code Challenge project.
If you have suggestions, ideas, or improvements, please don't hesitate.
Thank you for considering contributing!
MIT License