From 9364bee5d686c0c7b813cd02409eb7dece7ee2d7 Mon Sep 17 00:00:00 2001 From: Muhammad Rayyan Asim Date: Mon, 3 Aug 2026 12:03:06 +0500 Subject: [PATCH 01/21] Update README.md Signed-off-by: Muhammad Rayyan Asim --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 8f2703b..3be978f 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,6 @@

-

- Logo -

- --- Welcome to the Python Projects repository. This collection features 80+ practical Python projects across multiple categories, designed for developers of all skill levels. Whether you are a beginner or an experienced programmer, you will find projects that help you learn, build, and grow. From 1f98f8601618333537f1ea1ac2b6748f4c6a4d32 Mon Sep 17 00:00:00 2001 From: Rayyan Asim Date: Thu, 13 Aug 2026 05:39:05 +0500 Subject: [PATCH 02/21] add a new website --- .DS_Store | Bin 0 -> 8196 bytes assets/.DS_Store | Bin 0 -> 6148 bytes assets/css/site.css | 42 +++++ main.html | 437 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 479 insertions(+) create mode 100644 .DS_Store create mode 100644 assets/.DS_Store create mode 100644 assets/css/site.css create mode 100644 main.html diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2be88d19e71c8e8fff988a52ab43addbbea3c0c5 GIT binary patch literal 8196 zcmeHM&2QsG6o1o}wr*+b?WU#60*aJt*=<)s6mcL;Tb4k-Xwq)Vegr3Rvu0gSu$_KT zDsqP#e*k{~cO-5cxpH6+2#Fg9PMkO)!S9WoUEB5E5URAEYUYh+-tWD6znSr5Tp|*s zZflWfj)+E)S?c2`QWE!bzK{mO76uF8iG1?Pwrnq* z$siAZX5#*itt1{`k5B%ik^;wc8^>NJyz778=-8I$FDyJ31A{{^43CUxBjY3YD-Y#y z#W(z}S2EnY{8W|FZuIL$W6v^=>w0cQI=*2!rmFx}%Y@3kJC@Uu$0gZyTAspIf(}g^ z)$01Sv$Mseh57vA(yjCP{Mq8-t)=<=8*jdKey)wq6mGt~Q-5S1I`YdPW)Z$OXd=PE zS4je_=1~}w__ZI@Z~B!mtWj-j{KbjMDgDay)!g*V^z3YI_NBRNFJFJV z@v68fmc+7nU#yE=u_xN1Bf8>9d=Z!!=+FCW!E?V9J=9{0`KaPLwshKPXUrJ<8e~(G zx+o274M}d~;})MYo5;n;=9q@Iq!u<(9r6GrKRamYqUO^LMA1svc$~1oez$0q)==Jo zhc()vN*u$RGUj(uVK%7>-7=ME7d6JE_!GY;uv016GW_07Lk~C!^f0|k%k*KY?q3Pr zA=os)fEkZQvG_}b#X;!pQaPc;JVmu8=sj?I432qb>R^~(U}+IETT$c)t%Ic%FtkY( zT8sNp{6w{NjM%{JJtPY=$un!CG|0shx3uGU#ZVNlDLiZ5fDIo{b{s)J;T1a*iGPeX zFn0!>A~UL!;)S`5deNcfVqBa*1s4|Bu;9&vOyPt%7kp0|-e;A^khbm)=q3i_`ElB_Whk)$-SHE0iXIggtKX2#%zp*)_LI3~& literal 0 HcmV?d00001 diff --git a/assets/.DS_Store b/assets/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fdda4e8fa9a1cfefb0c1aeaec433b9b46a607b67 GIT binary patch literal 6148 zcmeHKPfrs;6rTsxwji>Uf*@)(=@mmuVyyAtS}+DRme7htz`ENmb!9u#>~32SiM{L1 z58wyzZsN_OUqDYL-aYvNO!Up46#Meg`wOq#!ve^&N*B?7}JRVQR2jlCdhpbx)%%JTTOmCI1%8a>IsGHWZV|S}s zdXCY+bg1o#0H*f}+O+PA*pf6PlZj+io7~yS<+IazEy8#L&rM zZ6r0CPK~9;$J67dCMHi$otdg?qn26QYz-{>k*~P1;oCvwCw=9fxmEs=eb}#g%yk!;?*tB` zD{DS-z7W{W1-ilT;vM9>*y1LC+4g+Is&*izvSNCkNgH-yd)+lH+bz-p3j)@xI5kFP z5yK)aE*CwUr_5aWA_>hHH$x>W6^&%1f}JBBY6>Cq_K`01GG)|GW{iroB(ck!Cv&7o zDx^uCkQd}7c|~56cjP_!OuoW#NW)o}fjnG=8*mHmz%n$T1#RfSQ<f+}gQRf?ohQgji+(7{uiYP-t9Wg+i9YBVo-BA8Li87pkxH9HZR|a)L0d@2MUAPl4 zBt~<@K*Yd)2KwbvKLUb=Xo?v4s| + + + + +80+ Python Projects by M.Rayan Asim + + + + + + +
+
+

Project Categories

+

Structured domains to focus your learning.

+
+
+ +
+
+ +
+

GUI

+

Graphical User Interfaces.

+
Tkinter, PyQt5
+
+ +
+
+ +
+

Calculator

+

Math & Logic tools.

+
Math, Logic
+
+ +
+
+ +
+

Games

+

Interactive entertainment.

+
Pygame, Turtle
+
+ +
+
+ +
+

Machine Learning

+

AI & Data Models.

+
Scikit, Pandas
+
+ +
+
+ +
+

Utilities

+

Handy CLI scripts.

+
OS, Sys, Requests
+
+
+
+ +
+
+
+
+

Featured Projects

+

A handpicked selection of top scripts and applications.

+
+ + View All 80+ + +
+
+ +
+
+
+Games + Beginner +
+

Tic Tac Toe

+

A classic command-line implementation of the beloved game.

+
+ + View code + +
+ +
+
+
+Games + Intermediate +
+

Snake Game

+

Retro snake game built using the Turtle graphics library.

+
+ + View code + +
+ +
+
+
+Calculator + Advanced +
+

Sudoku Solver

+

Backtracking algorithm to automatically solve any valid Sudoku puzzle.

+
+ + View code + +
+ +
+
+
+Utilities + Beginner +
+

QR Code Generator

+

Simple script to generate scannable QR codes from text or URLs.

+
+ + View code + +
+ +
+
+
+Machine Learning + Advanced +
+

Spam Message Detection

+

NLP model using Naive Bayes to classify SMS messages as spam or ham.

+
+ + View code + +
+ +
+
+
+Machine Learning + Advanced +
+

Crypto Price Prediction

+

Time-series forecasting script to predict short-term cryptocurrency trends.

+
+ + View code + +
+
+
+
+ +
+
+

Progressive Learning

+

Projects categorized by complexity to match your current skill level.

+
+
+
+

Beginner

+

Focus on core syntax, loops, functions, and basic I/O. Ideal for those just starting out.

+
+
+

Intermediate

+

Involves APIs, basic GUIs, simple data scraping, and object-oriented concepts.

+
+
+

Advanced

+

Tackles machine learning models, complex algorithms, databases, and full applications.

+
+
+
+ +
+
+

Ready to start building?

+

Join the community, fork the projects, and enhance your Python skills today.

+ +
+

Support the Creator

+ +

ETH: 0x0000000000000000000000000000000000000000

+
+
+
+ + + + + \ No newline at end of file From d47ba41a0528a840aa770ef48756b2061b9e2ba7 Mon Sep 17 00:00:00 2001 From: Rayyan Asim Date: Thu, 13 Aug 2026 05:41:39 +0500 Subject: [PATCH 03/21] Add initial pyproject.toml configuration --- pyproject.toml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..4a95085 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,6 @@ +[project] +name = "python-projects" +version = "0.0.0" + +[tool.vercel] +entrypoint = "GUI.search_applications:app" From e35e82d821bd9e8289e3d2e92d4d1d0a13ad20da Mon Sep 17 00:00:00 2001 From: Rayyan Asim Date: Thu, 13 Aug 2026 05:48:31 +0500 Subject: [PATCH 04/21] Refactor entrypoint in pyproject.toml and add FastAPI application with project listing functionality --- api/__pycache__/app.cpython-314.pyc | Bin 0 -> 1671 bytes api/app.py | 24 ++++++++++++++++++++++++ pyproject.toml | 2 +- requirements.txt | 15 +++++++++------ 4 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 api/__pycache__/app.cpython-314.pyc create mode 100644 api/app.py diff --git a/api/__pycache__/app.cpython-314.pyc b/api/__pycache__/app.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cdedd31f93e62f21d14497b0cc743d560b0bacd3 GIT binary patch literal 1671 zcmbVMO=ufO6rR~#{n#s6b}dIOP9-@maYTp&tx~0-iD{~Yn*1QPR6aDZ*jgKTjig;> z))6FXg&uk=J>^h(DFqRk*qyr2ze{d%eM(P#v(n0n>tg7@%)B@A zz2A9nPLKG95sa6|KU`iD5c-2N&JcUV-p4@H&;nBM9C`;^IKpXRPOyYqcnT$ZFiX58 zW`-Q${aq20xXUS0XdmtR545X~b`PN4iZG30o~K+<3^UIam0E9Q=58>YSll;-kOa&c z%)J+3Ie{YJw*r1Ef+EIo0(6`ebsUqJr=(G;7POTJ;4&3!$tXuN#8}oAEgJp3b}w4e z%X&#IM!^Vk6Jy2F=-)#Lvj_PS5gzFtOvGMKyhk-c6GW|4)N&$itd@(0nx_fV)_cYg zI#bZCglg(A&A3@%5-|*m_&|jRCJn*z6#V_wH_-~6`{vZ6_a9wv$x2I7o>3mwUGFd^ zULc+e*aZi6zyzMJ8}Lmy>W&PY9UK`habWxp3Adxdc`j!+Q5>20X1@>yblauo$aVKA zltqrDvyY-HKOkfZSs~+p9?dzWkDuvX79c6dQ5K%~4LHe*oVz-W(17K`@(}2W4{Y;7 zvWGOqBc#U$#Cl}5U+9i!`Jn9?&Ws;|7Myq^=xX&yZzm4X@GpCXZtM>cWFy1t>A+C1 zW7F}lC-E&v9PQS}S@qNE#w+d6%#+bm>(aIy z;3Cb}w&ciTIkJ&#oxZd=ed#A(a3?UT zZ>({xeytgN;tTKi1C9Cmd}E=$&`fXnr#Agl8~HCv4@+NP-a2`H^W^zK@NNK(N zA8NW2 zO-p!}+IeE$H%mr-rKnvb&`pSc;`BN!9T8*v3!3~H4gKc!ujw_h<3@t(lh8+@_3^di iy8_1V;yn=wBOROUc%9qHHlElOWE|nQ$Nu7!ZSEfxmoXCn literal 0 HcmV?d00001 diff --git a/api/app.py b/api/app.py new file mode 100644 index 0000000..689c7ca --- /dev/null +++ b/api/app.py @@ -0,0 +1,24 @@ +from fastapi import FastAPI +import os + +app = FastAPI() + + +@app.get("/") +async def root(): + return {"message": "Python Projects — minimal API", "routes": ["/projects"]} + + +@app.get("/projects") +async def projects(): + base = os.path.dirname(os.path.dirname(__file__)) + items = [] + for name in sorted(os.listdir(base)): + if name.startswith('.') or name in ('__pycache__', '.git'): + continue + path = os.path.join(base, name) + if os.path.isdir(path): + items.append(name) + elif os.path.isfile(path) and name.endswith('.py'): + items.append(name) + return {"projects": items} diff --git a/pyproject.toml b/pyproject.toml index 4a95085..9818888 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,4 +3,4 @@ name = "python-projects" version = "0.0.0" [tool.vercel] -entrypoint = "GUI.search_applications:app" +entrypoint = "api.app:app" diff --git a/requirements.txt b/requirements.txt index 25483a9..c3a4906 100644 --- a/requirements.txt +++ b/requirements.txt @@ -27,9 +27,12 @@ seaborn mediapipe pyshorteners -fonttools>=4.43.0 # not directly required, pinned by Snyk to avoid a vulnerability -holidays>=0.45 # not directly required, pinned by Snyk to avoid a vulnerability -zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability -nltk>=3.8.2 # not directly required, pinned by Snyk to avoid a vulnerability -protobuf>=4.25.8 # not directly required, pinned by Snyk to avoid a vulnerability -urllib3>=2.5.0 # not directly required, pinned by Snyk to avoid a vulnerability +fastapi>=0.95.0 +uvicorn>=0.22.0 + +fonttools>=4.43.0 # not directly required, pinned by Snyk to avoid a vulnerability +holidays>=0.45 # not directly required, pinned by Snyk to avoid a vulnerability +zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability +nltk>=3.8.2 # not directly required, pinned by Snyk to avoid a vulnerability +protobuf>=4.25.8 # not directly required, pinned by Snyk to avoid a vulnerability +urllib3>=2.5.0 # not directly required, pinned by Snyk to avoid a vulnerability From 770f366e4d176e6fd34ed181d96bb6caf7dd7e56 Mon Sep 17 00:00:00 2001 From: Rayyan Asim Date: Thu, 13 Aug 2026 05:53:42 +0500 Subject: [PATCH 05/21] fix: add vercel.json, mangum adapter, and clean requirements for Vercel deployment --- api/index.py | 37 ++++++++++++++++++++++++++ requirements.txt | 68 +++++++++++++++++++++--------------------------- vercel.json | 19 ++++++++++++++ 3 files changed, 86 insertions(+), 38 deletions(-) create mode 100644 api/index.py create mode 100644 vercel.json diff --git a/api/index.py b/api/index.py new file mode 100644 index 0000000..a951cf7 --- /dev/null +++ b/api/index.py @@ -0,0 +1,37 @@ +from fastapi import FastAPI +from fastapi.middleware.cors import CORSMiddleware +from mangum import Mangum +import os + +app = FastAPI(title="Python Projects API") + +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_methods=["*"], + allow_headers=["*"], +) + + +@app.get("/api") +async def root(): + return {"message": "Python Projects — API", "routes": ["/api/projects"]} + + +@app.get("/api/projects") +async def projects(): + base = os.path.dirname(os.path.dirname(__file__)) + items = [] + for name in sorted(os.listdir(base)): + if name.startswith('.') or name in ('__pycache__', '.git', 'api', '.venv', '.venv3'): + continue + path = os.path.join(base, name) + if os.path.isdir(path): + items.append({"name": name, "type": "directory"}) + elif os.path.isfile(path) and name.endswith('.py'): + items.append({"name": name, "type": "file"}) + return {"projects": items} + + +# Required for Vercel serverless — wraps ASGI app as AWS Lambda handler +handler = Mangum(app) diff --git a/requirements.txt b/requirements.txt index c3a4906..e872a13 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,38 +1,30 @@ -pygame -googlesearch-python -qrcode -pyautogui -pyttsx3 -winapps -matplotlib -tkcalendar -pyqt5 -pyqtwebengine -yfinance -pillow -openpyxl -sympy -pytube -hijri_converter -requests -instaloader -opencv-python -textblob -vaderSentiment -langdetect -screen-brightness-control -numpy -prophet -seaborn -mediapipe -pyshorteners - -fastapi>=0.95.0 -uvicorn>=0.22.0 - -fonttools>=4.43.0 # not directly required, pinned by Snyk to avoid a vulnerability -holidays>=0.45 # not directly required, pinned by Snyk to avoid a vulnerability -zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability -nltk>=3.8.2 # not directly required, pinned by Snyk to avoid a vulnerability -protobuf>=4.25.8 # not directly required, pinned by Snyk to avoid a vulnerability -urllib3>=2.5.0 # not directly required, pinned by Snyk to avoid a vulnerability +# === Web API (required for Vercel deployment) === +fastapi>=0.95.0 +uvicorn>=0.22.0 +mangum>=0.17.0 + +# === Utility packages (buildable on Vercel Linux) === +qrcode>=7.4 +matplotlib>=3.7.0 +yfinance>=0.2.0 +pillow>=10.0.0 +openpyxl>=3.1.0 +sympy>=1.12 +hijri_converter>=2.3.1 +requests>=2.31.0 +instaloader>=4.10.0 +textblob>=0.17.1 +vaderSentiment>=3.3.2 +langdetect>=1.0.9 +numpy>=1.24.0 +seaborn>=0.12.0 +pyshorteners>=1.0.1 +googlesearch-python>=1.2.3 + +# === Security pinning (Snyk) === +fonttools>=4.43.0 +holidays>=0.45 +zipp>=3.19.1 +nltk>=3.8.2 +protobuf>=4.25.8 +urllib3>=2.5.0 diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000..269b6e9 --- /dev/null +++ b/vercel.json @@ -0,0 +1,19 @@ +{ + "version": 2, + "builds": [ + { + "src": "api/index.py", + "use": "@vercel/python" + } + ], + "routes": [ + { + "src": "/api/(.*)", + "dest": "api/index.py" + }, + { + "src": "/(.*)", + "dest": "main.html" + } + ] +} From 896ff39945ff54e0269a0d39a94b448e58af16a9 Mon Sep 17 00:00:00 2001 From: Rayyan Asim Date: Thu, 13 Aug 2026 05:54:58 +0500 Subject: [PATCH 06/21] fix: remove deprecated builds key from vercel.json, use auto-detection --- vercel.json | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/vercel.json b/vercel.json index 269b6e9..e29c5ef 100644 --- a/vercel.json +++ b/vercel.json @@ -1,19 +1,13 @@ { "version": 2, - "builds": [ - { - "src": "api/index.py", - "use": "@vercel/python" - } - ], "routes": [ { "src": "/api/(.*)", - "dest": "api/index.py" + "dest": "/api/index.py" }, { "src": "/(.*)", - "dest": "main.html" + "dest": "/main.html" } ] } From fa4273e251c0293ab7a5b021e8193d0dd2e50b83 Mon Sep 17 00:00:00 2001 From: Rayyan Asim Date: Thu, 13 Aug 2026 06:02:55 +0500 Subject: [PATCH 07/21] fix: overwrite api/app.py, add public/index.html, switch vercel.json to rewrites --- api/app.py | 29 ++- public/index.html | 437 ++++++++++++++++++++++++++++++++++++++++++++++ vercel.json | 11 +- 3 files changed, 461 insertions(+), 16 deletions(-) create mode 100644 public/index.html diff --git a/api/app.py b/api/app.py index 689c7ca..8815221 100644 --- a/api/app.py +++ b/api/app.py @@ -1,24 +1,39 @@ from fastapi import FastAPI +from fastapi.middleware.cors import CORSMiddleware +from mangum import Mangum import os -app = FastAPI() +app = FastAPI(title="Python Projects API") +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_methods=["*"], + allow_headers=["*"], +) -@app.get("/") + +@app.get("/api") async def root(): - return {"message": "Python Projects — minimal API", "routes": ["/projects"]} + return {"message": "Python Projects — API", "routes": ["/api/projects"]} -@app.get("/projects") +@app.get("/api/projects") async def projects(): base = os.path.dirname(os.path.dirname(__file__)) items = [] for name in sorted(os.listdir(base)): - if name.startswith('.') or name in ('__pycache__', '.git'): + if name.startswith('.') or name in ( + '__pycache__', '.git', 'api', '.venv', '.venv3', 'public', 'assets' + ): continue path = os.path.join(base, name) if os.path.isdir(path): - items.append(name) + items.append({"name": name, "type": "directory"}) elif os.path.isfile(path) and name.endswith('.py'): - items.append(name) + items.append({"name": name, "type": "file"}) return {"projects": items} + + +# Required for Vercel serverless — wraps ASGI app as Lambda handler +handler = Mangum(app) diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..0e83ec8 --- /dev/null +++ b/public/index.html @@ -0,0 +1,437 @@ + + + + + +80+ Python Projects by M.Rayan Asim + + + + + + +
+
+

Project Categories

+

Structured domains to focus your learning.

+
+
+ +
+
+ +
+

GUI

+

Graphical User Interfaces.

+
Tkinter, PyQt5
+
+ +
+
+ +
+

Calculator

+

Math & Logic tools.

+
Math, Logic
+
+ +
+
+ +
+

Games

+

Interactive entertainment.

+
Pygame, Turtle
+
+ +
+
+ +
+

Machine Learning

+

AI & Data Models.

+
Scikit, Pandas
+
+ +
+
+ +
+

Utilities

+

Handy CLI scripts.

+
OS, Sys, Requests
+
+
+
+ +
+
+
+
+

Featured Projects

+

A handpicked selection of top scripts and applications.

+
+ + View All 80+ + +
+
+ +
+
+
+Games + Beginner +
+

Tic Tac Toe

+

A classic command-line implementation of the beloved game.

+
+ + View code + +
+ +
+
+
+Games + Intermediate +
+

Snake Game

+

Retro snake game built using the Turtle graphics library.

+
+ + View code + +
+ +
+
+
+Calculator + Advanced +
+

Sudoku Solver

+

Backtracking algorithm to automatically solve any valid Sudoku puzzle.

+
+ + View code + +
+ +
+
+
+Utilities + Beginner +
+

QR Code Generator

+

Simple script to generate scannable QR codes from text or URLs.

+
+ + View code + +
+ +
+
+
+Machine Learning + Advanced +
+

Spam Message Detection

+

NLP model using Naive Bayes to classify SMS messages as spam or ham.

+
+ + View code + +
+ +
+
+
+Machine Learning + Advanced +
+

Crypto Price Prediction

+

Time-series forecasting script to predict short-term cryptocurrency trends.

+
+ + View code + +
+
+
+
+ +
+
+

Progressive Learning

+

Projects categorized by complexity to match your current skill level.

+
+
+
+

Beginner

+

Focus on core syntax, loops, functions, and basic I/O. Ideal for those just starting out.

+
+
+

Intermediate

+

Involves APIs, basic GUIs, simple data scraping, and object-oriented concepts.

+
+
+

Advanced

+

Tackles machine learning models, complex algorithms, databases, and full applications.

+
+
+
+ +
+
+

Ready to start building?

+

Join the community, fork the projects, and enhance your Python skills today.

+ +
+

Support the Creator

+ +

ETH: 0x0000000000000000000000000000000000000000

+
+
+
+ + + + + \ No newline at end of file diff --git a/vercel.json b/vercel.json index e29c5ef..2eff5e9 100644 --- a/vercel.json +++ b/vercel.json @@ -1,13 +1,6 @@ { "version": 2, - "routes": [ - { - "src": "/api/(.*)", - "dest": "/api/index.py" - }, - { - "src": "/(.*)", - "dest": "/main.html" - } + "rewrites": [ + { "source": "/api/:path*", "destination": "/api/index.py" } ] } From 5eeec3be64edb53dc8f6a25328167494f3ac4214 Mon Sep 17 00:00:00 2001 From: Rayyan Asim Date: Thu, 13 Aug 2026 06:18:47 +0500 Subject: [PATCH 08/21] redesign: clean rebuild with search/filter, scroll progress, GitHub stats, Inter font --- public/index.html | 1519 ++++++++++++++++++++++++++++++++------------- 1 file changed, 1094 insertions(+), 425 deletions(-) diff --git a/public/index.html b/public/index.html index 0e83ec8..5f29fe7 100644 --- a/public/index.html +++ b/public/index.html @@ -1,437 +1,1106 @@ + + + + + 80+ Python Projects by M.Rayan Asim + + + + + + - - - -80+ Python Projects by M.Rayan Asim - - - - - - -
-
-

Project Categories

-

Structured domains to focus your learning.

-
-
- -
-
- -
-

GUI

-

Graphical User Interfaces.

-
Tkinter, PyQt5
-
- -
-
- -
-

Calculator

-

Math & Logic tools.

-
Math, Logic
-
- -
-
- -
-

Games

-

Interactive entertainment.

-
Pygame, Turtle
-
- -
-
- -
-

Machine Learning

-

AI & Data Models.

-
Scikit, Pandas
-
- -
-
- -
-

Utilities

-

Handy CLI scripts.

-
OS, Sys, Requests
-
-
+ + + + + + + + + + + + + +
+ + + + + +
+
+
+ + Open source · MIT License +
+

+ 80+ Python Projects
+ Built to Learn From +

+

+ A curated collection of practical Python projects by M.Rayan Asim — from beginner CLI scripts to advanced ML models. +

+ + + +
+
+
80+
+
Projects
+
+
+
5
+
Categories
+
+
+
+
GitHub Stars
+
+
+
+
Forks
+
+
+
+
+ +
+ + +
+
+
+ +

Project Categories

+

Five structured domains — click any to filter the projects below.

+
+
+
+
+
GUI
+
Tkinter · PyQt5
+
+
+
+
Calculator
+
Math · Logic
+
+
+
+
Games
+
Pygame · Turtle
+
+
+
+
Machine Learning
+
Scikit · Pandas
+
+
+
+
Utilities
+
OS · Sys · Requests
+
+
+
- -
-
-
-
-

Featured Projects

-

A handpicked selection of top scripts and applications.

-
- - View All 80+ - -
-
- -
-
-
-Games - Beginner -
-

Tic Tac Toe

-

A classic command-line implementation of the beloved game.

-
- - View code - -
- -
-
-
-Games - Intermediate -
-

Snake Game

-

Retro snake game built using the Turtle graphics library.

-
- - View code - -
- -
-
-
-Calculator - Advanced -
-

Sudoku Solver

-

Backtracking algorithm to automatically solve any valid Sudoku puzzle.

-
- - View code - -
- -
-
-
-Utilities - Beginner -
-

QR Code Generator

-

Simple script to generate scannable QR codes from text or URLs.

-
- - View code - -
- -
-
-
-Machine Learning - Advanced -
-

Spam Message Detection

-

NLP model using Naive Bayes to classify SMS messages as spam or ham.

-
- - View code - -
- -
-
-
-Machine Learning - Advanced -
-

Crypto Price Prediction

-

Time-series forecasting script to predict short-term cryptocurrency trends.

-
- - View code - -
-
-
+ +
+ + +
+
+
+
+ +

Featured Projects

+
+ + View all on GitHub + + +
+ + +
+
+ + +
+
+ + + + + + +
+
+ +
+ + +
+
+ Games + Beginner +
+

Tic Tac Toe

+

Classic command-line two-player game with win detection and board rendering.

+
+ python + logic + cli +
+ + View code + + +
+ + +
+
+ Games + Intermediate +
+

Snake Game

+

Retro snake game built using the Turtle graphics library with score tracking.

+
+ turtle + OOP + game loop +
+ + View code + + +
+ + +
+
+ Calculator + Advanced +
+

Sudoku Solver

+

Backtracking algorithm that automatically solves any valid 9×9 Sudoku puzzle.

+
+ backtracking + recursion + algorithm +
+ + View code + + +
+ + +
+
+ Utilities + Beginner +
+

QR Code Generator

+

Generate scannable QR codes from any text or URL and export as an image file.

+
+ qrcode + pillow + cli +
+ + View code + + +
+ + +
+
+ Machine Learning + Advanced +
+

Spam Message Detection

+

NLP model using Naive Bayes to classify SMS messages as spam or ham with high accuracy.

+
+ NLP + sklearn + textblob +
+ + View code + + +
+ + +
+
+ Machine Learning + Advanced +
+

Crypto Price Prediction

+

Time-series forecasting using Prophet to predict short-term cryptocurrency price trends.

+
+ prophet + yfinance + forecasting +
+ + View code + + +
+ + +
+
+ Machine Learning + Intermediate +
+

Sentiment Analyser

+

Analyse the emotional tone of any text using VADER sentiment scoring.

+
+ VADER + NLP + analysis +
+ + View code + + +
+ + +
+
+ GUI + Beginner +
+

GUI Calculator

+

A fully functional desktop calculator built with Tkinter — clean layout, keyboard support.

+
+ tkinter + GUI + events +
+ + View code + + +
+ + +
+
+ Utilities + Beginner +
+

URL Shortener

+

Instantly shorten any long URL using the pyshorteners library with multiple provider options.

+
+ pyshorteners + API + requests +
+ + View code + + +
+ +
+ + +
+ +

No projects match your search.

+
+
+ +
+ -
-
-

Progressive Learning

-

Projects categorized by complexity to match your current skill level.

-
-
-
-

Beginner

-

Focus on core syntax, loops, functions, and basic I/O. Ideal for those just starting out.

-
-
-

Intermediate

-

Involves APIs, basic GUIs, simple data scraping, and object-oriented concepts.

-
-
-

Advanced

-

Tackles machine learning models, complex algorithms, databases, and full applications.

-
-
+
+
+
+ +

Progressive Learning

+

Projects categorized by complexity to match your current skill level.

+
+
+
+
Beginner
+

Core Python syntax, loops, functions, and basic I/O. No prior experience needed — just run and learn.

+
+
+
Intermediate
+

Working with APIs, basic GUIs, data scraping, and object-oriented design patterns.

+
+
+
Advanced
+

Machine learning models, complex algorithms, databases, and production-ready applications.

+
+
+
- -
-
-

Ready to start building?

-

Join the community, fork the projects, and enhance your Python skills today.

- -
-

Support the Creator

- -

ETH: 0x0000000000000000000000000000000000000000

-
-
+ +
+ + +
+
+
+

Ready to start building?

+

Fork the repo, pick a project, and level up your Python skills today.

+ + + +
+
+ + stars +
+
+ + forks +
+
+ + Updated +
+
+
+
- + -