Skip to content

miqueasmd/100_days_of_Code_Replit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 

Repository files navigation

100 Days of Code Challenge

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.

Features

Game Development

  • 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

User Interface

  • 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

Data & Security Management

  • 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

Web Scraping & Monitoring

  • 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

Web Development

  • Frontend Development
    • HTML5/CSS3 design
    • JavaScript integration
    • Dynamic theming
    • Responsive layouts
  • Backend Systems
    • Flask framework
    • Database integration
    • WebSocket support
    • Error handling

API & Service Integration

  • External Services
    • Weather API integration
    • Spotify platform
    • News services
    • OAuth authentication
  • Implementation
    • API key management
    • Rate limiting
    • Data caching
    • Error handling

Automation Systems

  • Email Features
    • SMTP integration
    • HTML formatting
    • Scheduled delivery
    • Error handling
  • Task Management
    • Scheduling system
    • Job queuing
    • Process monitoring
    • Event triggers

Development Tools

  • Utility Tools
    • Time/date handlers
    • Calculators
    • Content formatters
  • Web Applications
    • Portfolio sites
    • Blog engines
    • Weather dashboards
    • Social features

Challenges Completed

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.

How to Run the Code

  1. Clone the repository:

    git clone <repository-url>
  2. Install dependencies:

    pip install -r requirements.txt
  3. Set up environment variables:

    • Create a .env file in the root directory
    • Add necessary paths and configurations
  4. Run the Python scripts using your preferred Python interpreter.

  5. 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).
  6. For database setup (if applicable):

    • Ensure any necessary database migrations or initializations are performed.

Project Structure

.
├── 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

🤝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/improvement)
  3. Make your changes
  4. Commit your changes (git commit -am 'Add new feature')
  5. Push to the branch (git push origin feature/improvement)
  6. Open a Pull Request

📚 Follow Along

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

Security Best Practices

  1. Store sensitive credentials in environment variables (e.g., .env files) and ensure they are secure.
  2. Protect your credentials: Never share them or commit sensitive files (e.g., .env) to version control.
  3. Use strong, regularly updated credentials for enhanced security.
  4. Implement HTTPS to encrypt data in transit.
  5. Regularly update dependencies to patch vulnerabilities.
  6. Use a web application firewall (WAF) to protect against common web exploits.
  7. Limit user permissions by following the principle of least privilege.
  8. Regularly monitor logs for suspicious activity or unauthorized access attempts.

☕ Support Me

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!

Acknowledgements

This project is inspired by the 100 Days of Code challenge on Replit. Please visit Replit for more information and resources.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages