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.
The repository is structured as a progressive curriculum. Each module introduces new complexities, shifting from standard libraries to advanced third-party frameworks.
| 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 |
- 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)
- Processing: Pandas, NumPy
- Machine Learning: Scikit-Learn (
TfidfVectorizer,cosine_similarity) - Frontend UI: Streamlit (Interactive ML Dashboard)
- Scraping: BeautifulSoup4, Requests
- Document Processing: PyMuPDF (fitz)
- System Metrics: psutil
- File System: OS, Shutil
git clone https://github.com/asharali31/50-python-challenges.git
cd 50-python-challengesIt 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/activateThe 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 cryptographyNavigate 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 EnhancerThe recommendation engine uses Streamlit for a professional web interface:
cd Day-36-to-45_Data-Science-Projects
streamlit run day_10.pyThe URL shortener is a full-fledged Flask application:
cd Day-46-to-50_URL-Shortener_Full-Stack-Project
python app.pyAccess the app at http://127.0.0.1:5000
-
Data Persistence: Moved from volatile memory
$\to$ CSV/JSON files$\to$ Relational SQLite databases. -
Security: Implemented industry-standard encryption using the
cryptographylibrary 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
psutilandshutil.
- 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.
- 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
asyncioorCeleryfor the web scraping tasks to handle larger datasets. - API Expansion: Convert the URL shortener into a REST API utilizing FastAPI.
- Fork the project.
- Create your feature branch:
git checkout -b feature/NewChallenge. - Commit your changes:
git commit -m 'Add some AmazingFeature'. - Push to the branch:
git push origin feature/NewChallenge. - Open a Pull Request.
This project is licensed under the MIT License. See the LICENSE file for more details.
- LinkedIn: Engr. Ashar Ali
- GitHub: @asharali31
- Email: asharaliarain786@gmail.com
โญ๏ธ If you find this journey inspiring, feel free to give this repository a star!