DEV Community

Sojin Samuel
Sojin Samuel

Posted on

Python Persona: How Strong of a Pythonista Are You?

This is a submission for Weekend Challenge: Passion Edition

What I Built

Python Persona is a desktop app that analyzes any GitHub user's Python code and shows you who they are as a developer. You type a username, it fetches their repos, downloads their Python files, and shows you their frameworks, packages, features, and code patterns. Every data point links to the exact file and line on GitHub so you can study the real code.

I also built an AI learning roadmap feature. When you spot a topic you want to learn, you click it and the app builds a reverse dependency graph. It works backwards from your topic to the foundations, then teaches you step by step. This came from my own frustration with ChatGPT and Grok. They answer at whatever level they think is right, but often I cannot understand the answer because my foundation is not strong enough. This app fixes that by teaching prerequisites first.

The app also stores every analysis in Snowflake and compares your code against everyone you have studied. You see which packages you are missing, which features you have never used, and which repos from top developers you should study next.

Image

Demo

Code

🐍 Python Persona

Stop guessing what to learn. Start studying real code.

Why this app exists

Python Persona is a desktop app that analyzes any GitHub user's Python code and shows you who they are as a developer. You type a username, it fetches their repos, downloads their Python files, and shows you their frameworks, packages, features, and code patterns. Every data point links to the exact file and line on GitHub so you can study the real code.

I also built an AI learning roadmap feature. When you spot a topic you want to learn, you click it and the app builds a reverse dependency graph. It works backwards from your topic to the foundations, then teaches you step by step. This came from my own frustration with ChatGPT and Grok. They answer at whatever level they think is right, but often I cannot understand the answer because my…

How I Built It

Architecture

The app uses Electron for the desktop UI and Python for the backend. When you type a username, Electron spawns a Python child process that fetches repos from the GitHub API, downloads the Python source files, and parses them with Python's ast module. The AST analyzer detects 15+ Python features like context managers, async functions, dataclasses, type hints, generators, match statements, and walrus operators. For each feature it records the file and line number so the report can link straight to GitHub.

For the AI roadmap, I used Google AI Studio (Gemini 2.0 Flash). The prompt asks the AI to work backwards from the user's topic and identify every prerequisite recursively. The output is structured JSON with 4 to 8 steps, each having an excerpt, difficulty level, study time, common misconceptions, and curated resources. The AI picks real canonical URLs instead of search links. If you do not have a Google AI key, a local fallback generates deep chains for common topics like async, generators, decorators, and context managers.

For Snowflake, every analysis gets stored in the user's own database. The app auto-creates the database and tables on first use. The "Compare Yourself" feature queries all stored profiles and shows you which packages everyone uses that you do not, which features you have zero usage of, and which repos from the top 5 Pythonistas you should study. Comparison results are cached in Snowflake so you do not re-fetch the same data twice. The cache tracks whether you used a GitHub API token or not, so if you add a token later it re-fetches with the better data.

I also used the GitHub API for profile data, repo listing, language detection, file contents, and commit history. The dev.to API pulls their Python-tagged articles so you can learn from what they wrote, not just what they coded.

The app also has a one-to-one comparison feature. Click "Compare with My Profile" on any report and it fetches both profiles side by side. You see packages you already know, topics to practice, and new concepts to explore. Every topic in the comparison is clickable and launches the AI roadmap.

Prize Categories

  • Best Use of Snowflake: Every analysis is stored in Snowflake. The Compare Yourself feature aggregates all stored profiles and compares your code against everyone. Comparison results are cached with source tracking so they refresh when your API token status changes.

  • Best Use of Google AI: The AI summary, roast, and learning roadmap are powered by Google AI Studio (Gemini 2.0 Flash). The reverse dependency graph prompt produces structured JSON roadmaps with curated resources. The local fallback ensures the feature works even without an API key.

Top comments (0)