Skip to content

asharali31/50-python-challenges

Repository files navigation

๐Ÿ 50 Python Challenges: From Scripting to Full-Stack Mastery

Python Flask Pandas Scikit-Learn GitHub License

๐ŸŒŸ Introduction

This repository is a documented journey of technical evolution. What started as a series of 50+ Python challenges evolved into a comprehensive portfolio showcasing the transition from basic procedural scripting to data-driven analytical tools and full-stack web application.

Each project is designed to solve a specific problem, ranging from automating tedious file management to building an intelligent book recommendation system and a production-ready URL shortener.


๐Ÿš€ Project Overview

The repository is structured as a progressive curriculum. Each module introduces new complexities, shifting from standard libraries to advanced third-party frameworks.

๐Ÿ“‚ Repository Structure & Roadmap

Module Focus Area Implementation Highlights Key Tools
01-11 Python Utilities Personalized bio generators, Emoji enhancers, Compatibility calculators Core Python
12-21 Data Handling CSV-based Contact Books, Encrypted Notes Vaults cryptography, json, csv
22-31 Web Scraping Wikipedia content extraction, PDF text mining BeautifulSoup4, PyMuPDF
32-35 Automation Intelligent File Sorters, Live System Resource Monitors psutil, shutil, os
36-45 Data Science ML-based Book Recommendations, Salary Data Synthesis Streamlit, Scikit-Learn, Pandas
46-50 Full-Stack URL Shortener with database persistence & analytics Flask, SQLite3

๐Ÿ› ๏ธ Technologies Used

๐Ÿ’ป Backend & Logic

  • Language: Python 3.10+
  • Web Framework: Flask (Backend API & Routing)
  • Database: SQLite3 (Relational data storage for URL mapping)
  • Security: Fernet (AES-128 Symmetric Encryption for the Notes Locker)

๐Ÿ“Š Data Science & Analysis

  • Processing: Pandas, NumPy
  • Machine Learning: Scikit-Learn (TfidfVectorizer, cosine_similarity)
  • Frontend UI: Streamlit (Interactive ML Dashboard)

๐ŸŒ Web & System Automation

  • Scraping: BeautifulSoup4, Requests
  • Document Processing: PyMuPDF (fitz)
  • System Metrics: psutil
  • File System: OS, Shutil

โš™๏ธ Installation & Setup

1. Clone the Repository

git clone https://github.com/asharali31/50-python-challenges.git
cd 50-python-challenges

2. Environment Setup

It is highly recommended to use a virtual environment to avoid dependency conflicts:

# Create virtual environment
python -m venv venv

# Activate on Windows
.\venv\Scripts\activate

# Activate on macOS/Linux
source venv/bin/activate

3. Install Dependencies

The project uses several requirements.txt files across folders. To install all necessary libraries for the entire portfolio:

pip install flask pandas numpy scikit-learn streamlit beautifulsoup4 requests pymupdf psutil cryptography

๐Ÿ“– Usage Instructions

๐Ÿ› ๏ธ Running Utility & Automation Scripts

Navigate to the specific day's folder and run the script:

cd Day-01-to-11_Python-Utilities
python day_05.py  # Example: Run the Emoji Enhancer

๐Ÿงช Running the Book Recommendation Engine (Data Science)

The recommendation engine uses Streamlit for a professional web interface:

cd Day-36-to-45_Data-Science-Projects
streamlit run day_10.py

๐Ÿ—๏ธ Launching the Full-Stack URL Shortener

The URL shortener is a full-fledged Flask application:

cd Day-46-to-50_URL-Shortener_Full-Stack-Project
python app.py

Access the app at http://127.0.0.1:5000


๐ŸŽ“ Learning Outcomes & Challenges

Technical Growth

  • Data Persistence: Moved from volatile memory $\to$ CSV/JSON files $\to$ Relational SQLite databases.
  • Security: Implemented industry-standard encryption using the cryptography library to handle sensitive user data.
  • Algorithm Implementation: Built a Content-Based Filtering system using TF-IDF and Cosine Similarity to calculate document distance.
  • System Interaction: Mastered the bridge between Python and the Operating System via psutil and shutil.

Challenges Overcome

  • Dynamic HTML Parsing: Handling inconsistent web structures during scraping.
  • State Management: Managing session data and database connections in a stateless Flask environment.
  • Data Normalization: Cleaning raw text data to improve the accuracy of the recommendation engine.

๐Ÿ”ฎ Future Improvements

  • Containerization: Wrap the Full-Stack project in a Docker container for seamless deployment.
  • Authentication: Add User Auth (JWT) to the URL Shortener to allow user-specific dashboards.
  • Async Processing: Implement asyncio or Celery for the web scraping tasks to handle larger datasets.
  • API Expansion: Convert the URL shortener into a REST API utilizing FastAPI.

๐Ÿค Contribution Guide

  1. Fork the project.
  2. Create your feature branch: git checkout -b feature/NewChallenge.
  3. Commit your changes: git commit -m 'Add some AmazingFeature'.
  4. Push to the branch: git push origin feature/NewChallenge.
  5. Open a Pull Request.

๐Ÿ“œ License

This project is licensed under the MIT License. See the LICENSE file for more details.


๐Ÿ“ฌ Connect With Me

โญ๏ธ If you find this journey inspiring, feel free to give this repository a star!

About

A comprehensive 50+ day Python mastery journey. From core utility scripts and web scraping to data science and full-stack development. A portfolio of 50+ challenges showcasing growth and versatility.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors