This repository contains the daily challenges and projects completed as part of the 100 Days of Code challenge by Replit. Additional features and functionalities have been implemented, along with code adjustments to ensure local functionality.
- Interactive command-line games
- Random number generation
- Score tracking and statistics
- Top Trumps card game
- Bingo generation and gameplay
- Character Systems
- MokeBeast monster creation
- RPG character generation
- Visual novel engine
- Guess Who implementation
- Command Line Interfaces
- Color text and effects
- Multi-option menus
- Input validation
- Graphical Interfaces
- Tkinter GUI development
- Event-driven programming
- Calculator interface
- Web Interfaces
- HTML/CSS responsive design
- Flask web framework
- Dynamic content routing
- File Operations
- CSV/JSON handling
- Auto-save functionality
- Backup systems
- Database Integration
- SQLite and Shelve
- Data structure optimization
- Persistent storage
- Query optimization
- Security Features
- Password hashing/salting
- User authentication
- Session management
- Access control
- Content Scraping
- BeautifulSoup integration
- URL validation
- Content extraction
- Link fixing
- Price Tracking
- Multi-retailer support
- Price history tracking
- Custom price alerts
- European price format handling
- Monitoring Systems
- Automated notifications
- Data validation
- Task scheduling
- Event tracking
- Frontend Development
- HTML5/CSS3 design
- JavaScript integration
- Dynamic theming
- Responsive layouts
- Backend Systems
- Flask framework
- Database integration
- WebSocket support
- Error handling
- External Services
- Weather API integration
- Spotify platform
- News services
- OAuth authentication
- Implementation
- API key management
- Rate limiting
- Data caching
- Error handling
- Email Features
- SMTP integration
- HTML formatting
- Scheduled delivery
- Error handling
- Task Management
- Scheduling system
- Job queuing
- Process monitoring
- Event triggers
- Utility Tools
- Time/date handlers
- Calculators
- Content formatters
- Web Applications
- Portfolio sites
- Blog engines
- Weather dashboards
- Social features
Day + Challenge Name | Description |
---|---|
Day 4: Color Text | Learned how to add colored text output using ANSI color codes and created examples with different colors. |
Day 5: Which Character Are You? | Created an Avengers character quiz that determines which character you are based on yes/no questions. |
Day 6: Secure Login | Built a login system that gives personalized greetings to three different users with username/password verification. |
Day 7: Fake Fan Question Generator | Created a "Big Bang Theory" fan quiz that asks follow-up questions to determine if someone is a true fan. |
Day 8: Affirmations Generator | Built a daily affirmation generator that provides custom messages based on name and day of the week. |
Day 9: Generation Generator | Created a program that determines which generation someone belongs to based on their birth year. |
Day 10: Bill Calculator with Tips | Enhanced a bill calculator to include tip calculations and split bills among multiple people. |
Day 11: Seconds Calculator | Built a program to calculate the number of seconds in a year, including handling leap years. |
Day 12: Debug Challenge | Fixed a broken quiz program by correcting syntax errors and logical issues. |
Day 13: Grade Calculator | Created a program that calculates percentage grades and assigns letter grades based on test scores. |
Day 14: Rock, Paper, Scissors | Created a basic version of Rock, Paper, Scissors game with player vs player gameplay. |
Day 15: Animal Sound Generator | Built a program that generates animal sounds with an option to exit the loop. |
Day 16: Name the Lyrics | Created a lyrics guessing game that counts attempts until correct guess. |
Day 17: Epic Rock, Paper, Scissors | Enhanced Rock, Paper, Scissors with score tracking and first-to-three wins system using getpass for secret moves. |
Day 18: Guess the Number | Built a number guessing game with attempt counting and input validation for numbers between 1 and 1,000,000. |
Day 19: Loan Calculator | Created a loan calculator that shows 10-year loan growth with 5% APR on a $1,000 initial amount. |
Day 20: List Generator | Built a program that generates number sequences based on user-defined start, end, and increment values. |
Day 21: Math Facts Game | Created an interactive multiplication quiz that tests users on their math facts, tracks scores, and awards emojis for perfect scores. |
Day 22: Random Number Guessing Game | Enhanced the number guessing game to use a random number between 1 and 1,000,000 with attempt tracking. |
Day 23: Login System | Built a login system with username/password verification that loops until correct credentials are entered. |
Day 24: Infinity Dice | Created a dice rolling game with customizable sides and replay option, using random number generation. |
Day 25: Character Stats Generator | Developed a RPG character generator that calculates health and strength stats using different dice rolls. |
Day 26: Music Player | Built a simple music player interface with play/pause functionality using pygame mixer. |
Day 27: Character Builder | Created a character generator with name, type, health, and strength attributes using dice rolls for stats. |
Day 28: Enhanced Colorful Text | Created a program that prints text in different colors using ANSI color codes and formatting. |
Day 29: Rainbow Text | Built a program that prints text in rainbow colors using color cycling. |
Day 30: Enhanced Rainbow Text | Enhanced the rainbow text printer with more colors and improved formatting options. |
Day 31: Classic User Interface | Created a classic user interface using string manipulation and f-strings. |
Day 32: Random Greeting Generator | Built a program that generates random greetings from different languages. |
Day 33: To Do List Manager | Created a to-do list manager with options to view, add, edit, and remove items. |
Day 34: Email Spammer | Built a program that sends customized spam messages to a list of email addresses. |
Day 35: Enhanced To Do List | Enhanced the to-do list manager with duplicate prevention, item editing, removal confirmation, and list erasing. |
Day 36: Name Rolodex | Created a name management system that stores capitalized first and last names while preventing duplicates. |
Day 37: Star Wars Name Generator | Built a program that generates Star Wars names based on user input using string manipulation. |
Day 38: Rainbow Text Generator | Created a program that changes text colors based on specific letters using ANSI color codes. |
Day 39: Hangman Game | Implemented the classic Hangman game with lives system, word guessing, and letter tracking. |
Day 40: Contact Card | Created a contact card system using dictionaries to store and display personal information. |
Day 41: Website Rating | Built a website rating system that stores and displays website information with star ratings. |
Day 42: MokeBeast | Created a monster collection game with color-coded types and stats using dictionaries. |
Day 43: Bingo Card Generator | Developed a random bingo card generator with proper number distribution and formatting. |
Day 44: Bingo Game | Enhanced the bingo card generator with gameplay mechanics and win condition checking. |
Day 45: To Do List Manager | Built an advanced to-do list with priority levels, due dates, and multiple viewing options. |
Day 46: Mokédex | Built a full Mokébeast collection system that stores multiple beasts with their details (name, type, special move, HP, MP) using a 2D dictionary, with color-coded output based on beast type. |
Day 47: Top Trumps | Created a Top Trumps card game where players compare character stats (Intelligence, Speed, Guile, etc.) using dictionaries to store character information. |
Day 48: High Score Table | Developed a high score system that saves player initials and scores to a file, with ability to add new scores and display the table. |
Day 49: High Score Analysis | Enhanced the high score system to analyze and display the highest scoring player from the saved data. |
Day 50: Idea Storage | Built an idea storage system that allows adding new ideas and retrieving random ones from a persistent file. |
Day 51: Auto-Save To Do List | Enhanced the to-do list with auto-save and auto-load functionality for persistent data storage. |
Day 52: Pizza Price Calculator | Created a pizza shop system that calculates order costs based on quantity and size, storing customer details in a 2D list. |
Day 53: RPG Inventory | Created a video game inventory system with add, view, and remove functionality, using auto-save and auto-load features. |
Day 54: Shop $$ Tracker | Built a program that reads a CSV file to calculate daily shop earnings by multiplying cost and quantity. |
Day 55: Backup Manager | Enhanced the to-do list with automatic backup functionality, creating random filenames in a backup folder. |
Day 56: File Organizer | Created a program that reads music streaming data and organizes songs into folders by artist. |
Day 57: Factorial Calculator | Built a recursive function to calculate factorials of numbers. |
Day 58: Debug Challenge | Used the debugger to fix a broken number guessing game with multiple issues. |
Day 59: Palindrome Checker | Created a program that checks if a word is a palindrome using recursion and string manipulation. |
Day 60: Event Countdown | Built an event countdown timer that calculates days until/since events with emoji feedback |
Day 61: Personal Twitter | Created a single-user Twitter clone with timestamp-based storage and chronological viewing |
Day 62: Secret Diary | Developed a password-protected diary system with entry storage and viewing |
Day 63: Own Library | Created a personal library of reusable functions and utilities |
Day 64: Jobs OOP | Created a class hierarchy for different jobs using Object-Oriented Programming |
Day 65: Character Classes | Built an RPG character system with classes for Player, Vampire, and Orc |
Day 66: Calculator | Created a GUI calculator using tkinter |
Day 67: Guess Who | Created a GUI-based Guess Who game using tkinter and image loading |
Day 68: Guess Who 2.0 | Added error handling and UI improvements to Guess Who |
Day 69: Visual Novel | Created a visual novel game with branching storylines using the Guess Who images |
Day 70: Login System | Built a dual-user login system with admin and normal user authentication |
Day 71: Hashed Login | Created multi-user login system with salt and hash password protection |
Day 72: HTML Basics | Introduction to HTML fundamentals and basic webpage structure |
Day 73: HTML & CSS | Created basic webpage with styling using CSS |
Day 74: Portfolio Site | Built personal portfolio using HTML and CSS |
Day 75: Link Tree | Created custom link tree page for social media profiles |
Day 76: Flask Intro | Introduction to Flask web framework and server setup |
Day 77: Blog Templates | Implemented blog system using Flask templates |
Day 78: Reflections | Added reflection system with dynamic routing |
Day 79: Login Form for a Webpage | Created a login form that takes a username, email address, and password, with a submit button that posts data to /login . |
Day 80: Connect Login Form to Flask | Integrated the login form with Flask, ensuring it works with three valid username and password combinations, and created separate pages for valid and invalid users. |
Day 81: "I'm Not a Robot" Check | Developed a verification system with tricky questions to identify potential bots, including yes/no questions, free text, and dropdown selections. |
Day 82: Go Bilingual | Created a bilingual webpage that displays content based on the URL ending, allowing users to switch between languages. |
Day 83: Custom Themes for Blogging Engine | Enhanced a blogging engine to support custom themes, allowing users to change the theme via GET requests. |
Day 84: Signup Form for Flask Website | Built a signup form that collects user details and creates an account in a database, redirecting users to the login form upon successful signup. |
Day 85: Extend Login System with Sessions | Extended the login system to use sessions for storing user login information, ensuring users cannot access pages without logging in. |
Day 86: Fully Functional Blog Engine | Developed a blog engine with features for adding and viewing posts, with a simple login system for the author. |
Day 87: Simplify Login Page for Blog Engine | Refined the login page to reduce code complexity and improve user experience. |
Day 88: Adapt Blog Engine for User Access | Modified the blog engine to allow public access to the blog while restricting admin features to the author. |
Day 89: Community Chat App | Created a chat application with user authentication, messages display, real-time communication updates, and admin features for message deletion. |
Day 90: Random User Generator | Used randomuser.me API to pull data for 10 users and save their profile pictures locally using JSON data management and API requests. |
Day 91: Dad Jokes Manager | Built a program that fetches random jokes from icanhazdadjoke API, allows saving jokes to a database, and viewing saved jokes. Features include joke management and persistent storage. |
Day 92: Weather App | Created a weather app using the Open-Meteo API. Features include city search with geolocation, timezone selection, and displaying current weather conditions with temperature and weather description. |
Day 93: Music Time Machine | Spotify API integration to discover popular songs by year and country |
Day 94: News Summarizer | Built a command-line news aggregator that fetches top headlines using NewsAPI and generates summaries using OpenAI's GPT model. Features country selection, error handling, and formatted output. Added supporting multiple countries and languages, with AI-powered translation and summarization |
Day 95: Daily Track Generator | Created a music recommendation system that converts news headlines into song suggestions using NewsAPI, OpenAI for summarization, and Spotify API for track discovery. Features embedded players and cross-API integration |
Day 96: Tech News Scraper | Built a web scraper for Hacker News using BeautifulSoup. Features category filtering, content extraction, and AI-powered summarization |
Day 97: Wikipedia Summarizer | Created a tool that scrapes Wikipedia articles and generates concise summaries using OpenAI API, including references management |
Day 98: Motivational Emailer | Built an automated email system that sends scheduled motivational quotes using Gmail SMTP, featuring quote randomization and HTML formatting. |
Day 99: Events Web Scraper | Created web scraper that monitors websites for events, stores them in a local database, and sends email notifications |
Day 100: Price Comparison Scraper | Built an automated price monitoring system that tracks products across multiple retailers, stores price history in a local database, and sends email alerts when prices drop below target. Features include European price format handling and retailer-specific selectors. |
-
Clone the repository:
git clone <repository-url>
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
- Create a
.env
file in the root directory - Add necessary paths and configurations
- Create a
-
Run the Python scripts using your preferred Python interpreter.
-
For the Flask application:
python main.py
- Access the application in your web browser at
http://127.0.0.1:81
(5000, or the port you specified).
- Access the application in your web browser at
-
For database setup (if applicable):
- Ensure any necessary database migrations or initializations are performed.
.
├── code/
│ ├── lessons_4-20.ipynb
│ └── ...
├── data/
│ ├── website/
│ │ └── flask/
│ │ ├── static/
│ │ │ ├── css/
│ │ │ │ └── style.css
│ │ │ ├── db/
│ │ │ ├── images/
│ │ │ └── js/
│ │ ├── templates/
│ │ │ └── chatroom.html
│ │ └── main.py
│ └── data files
├── .env
├── requirements.txt
└── README.md
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a new branch (
git checkout -b feature/improvement
) - Make your changes
- Commit your changes (
git commit -am 'Add new feature'
) - Push to the branch (
git push origin feature/improvement
) - Open a Pull Request
You can find detailed explanations and code walkthrough in the Jupyter notebooks.
Each notebook contains:
- Step-by-step explanations
- Code samples
- Challenge solutions
- Additional resources
- Store sensitive credentials in environment variables (e.g.,
.env
files) and ensure they are secure. - Protect your credentials: Never share them or commit sensitive files (e.g.,
.env
) to version control. - Use strong, regularly updated credentials for enhanced security.
- Implement HTTPS to encrypt data in transit.
- Regularly update dependencies to patch vulnerabilities.
- Use a web application firewall (WAF) to protect against common web exploits.
- Limit user permissions by following the principle of least privilege.
- Regularly monitor logs for suspicious activity or unauthorized access attempts.
If you like my work, consider supporting my studies!
Your support will allow me to focus on my studies and work on new projects by covering educational tools and software licenses.
Your contributions will help cover fees and materials for my Computer Science and Engineering studies at the UOC starting in September 2025.
Every little bit helps—you can donate from as little as $1.
Thank you for helping me achieve my dreams!
This project is inspired by the 100 Days of Code challenge on Replit. Please visit Replit for more information and resources.