Skip to content

Omega-Mu-Gamma-Studio/Python-Chan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

16 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ Python-chan

An anime-guided Python tutor that grows with you โ€” from your first print() to your first trained model. She's not just patient. She's delighted you're here. React Vite Zustand Framer Motion MIT License Live Demo

Built by Omega Mu Gamma Studio ยท the team behind SeeDS, KMapX, EG Suite, GateLab, Java-chan, and PlusPlus-chan.


What is Python-chan?

Python-chan is a browser-based Python learning app where a warm, brilliant mascot character walks students all the way from "what is a variable" to "I just trained a logistic regression model." She's the friend who already understands the thing you're stuck on, and explains it like she's genuinely glad you asked.

Unlike the rest of the Chan family, Python-chan isn't a single curriculum โ€” she's three full courses, stacked. Foundations gets you fluent. Data Science gets you working with real datasets. Machine Learning gets you building models that predict things. Each course is its own complete 5-unit, 75-lesson arc, and they're designed to be taken in order โ€” but a confident self-learner can jump straight to Course 2 or 3 if they already know their basics.

No abstract theory walls. No condescension. Just Python, three courses deep, taught by someone who's thrilled you're learning it.

๐Ÿ”— Try it live โ†’ python-chan.vercel.app


The Teaching Model

Every lesson across all 225 lessons follows this exact structure:

Phase Name What Happens
1 See It Work Python-chan shows working code, the output, and explains what's happening line by line
2 See It Break Same code, deliberately broken โ€” she explains the error, why it happened, and what it teaches you
3 You Try Student writes code or fills in blanks; pattern-based validation gives immediate feedback

Validation is regex/pattern-based โ€” no code execution in the browser. This keeps the app lightweight and deployable anywhere.


Curriculum โ€” 225 Lessons Across 3 Courses

Course Focus Units Lessons
1 Foundations 5 75
2 Data Science Track 5 75
3 Machine Learning Track 5 75
๐Ÿ“– View Course 1 โ€” Foundations (75 lessons)

Unit 1 โ€” Getting Started 1.1 What is Python and Why It Matters ยท 1.2 Setting Up Your Environment ยท 1.3 Your First Python Program ยท 1.4 Variables and Assignment ยท 1.5 Basic Data Types โ€” int, float, str, bool ยท 1.6 Type Conversion ยท 1.7 Arithmetic Operators ยท 1.8 Comparison and Logical Operators ยท 1.9 String Formatting with f-strings ยท 1.10 Getting Input from the User ยท 1.11 Comments and Code Hygiene ยท 1.12 Common Beginner Errors ยท 1.13 How Python Reads Your Code ยท 1.14 The Python REPL ยท 1.15 Mini Challenge โ€” Hello, World Done Right

Unit 2 โ€” Control Flow and Functions 2.1 if, elif, else ยท 2.2 Nested Conditionals ยท 2.3 while Loops ยท 2.4 for Loops ยท 2.5 break, continue, pass ยท 2.6 Defining Functions ยท 2.7 Parameters and Arguments ยท 2.8 Return Values ยท 2.9 Default and Keyword Arguments ยท 2.10 Scope โ€” Local vs Global ยท 2.11 Recursion Basics ยท 2.12 Lambda Functions ยท 2.13 map and filter ยท 2.14 List Comprehensions ยท 2.15 Mini Challenge โ€” FizzBuzz Your Way

Unit 3 โ€” Collections 3.1 Lists and Indexing ยท 3.2 List Methods and Slicing ยท 3.3 Tuples โ€” Immutable Sequences ยท 3.4 Dictionaries โ€” Keys and Values ยท 3.5 Dictionary Methods ยท 3.6 Sets and Set Operations ยท 3.7 Nested Collections ยท 3.8 Iterating Over Collections ยท 3.9 zip and enumerate ยท 3.10 Sorting and Reversing ยท 3.11 Unpacking and Spreading ยท 3.12 Dictionary Comprehensions ยท 3.13 Choosing the Right Collection ยท 3.14 Common Collection Patterns ยท 3.15 Mini Challenge โ€” Word Frequency Counter

Unit 4 โ€” Files, Errors, and Modules 4.1 Opening and Reading Files ยท 4.2 Writing to Files ยท 4.3 Working with CSV ยท 4.4 Try, Except, Finally ยท 4.5 Raising Custom Exceptions ยท 4.6 Context Managers โ€” with Statement ยท 4.7 Importing Modules ยท 4.8 The Standard Library Tour ยท 4.9 Installing Packages with pip ยท 4.10 Virtual Environments ยท 4.11 os and pathlib ยท 4.12 datetime Module ยท 4.13 random Module ยท 4.14 Writing Your Own Module ยท 4.15 Mini Challenge โ€” File-Based To-Do List

Unit 5 โ€” Object Oriented Python and Final Project 5.1 Classes and Objects ยท 5.2 The init Method ยท 5.3 Instance Attributes and Methods ยท 5.4 Class Attributes and Class Methods ยท 5.5 Inheritance ยท 5.6 Method Overriding ยท 5.7 Encapsulation ยท 5.8 Polymorphism ยท 5.9 Magic Methods โ€” str, len, eq ยท 5.10 Decorators ยท 5.11 PEP 8 and Writing Clean Code ยท 5.12 Debugging Techniques ยท 5.13 Writing Tests with unittest ยท 5.14 Project โ€” Build a CLI App ยท 5.15 Project โ€” Polish and Submit

๐Ÿ“– View Course 2 โ€” Data Science Track (75 lessons)

Unit 1 โ€” The Data Science Setup 1.1 What is Data Science? ยท 1.2 The Data Science Workflow ยท 1.3 Setting Up Jupyter and Anaconda ยท 1.4 NumPy Arrays vs Python Lists ยท 1.5 Creating and Inspecting Arrays ยท 1.6 Array Operations and Broadcasting ยท 1.7 Indexing and Slicing Arrays ยท 1.8 Reshaping and Stacking Arrays ยท 1.9 Introduction to Pandas ยท 1.10 Series and DataFrames ยท 1.11 Loading Data โ€” CSV, Excel, JSON ยท 1.12 Exploring Your Dataset ยท 1.13 Selecting and Filtering Data ยท 1.14 Handling Missing Values ยท 1.15 Mini Challenge โ€” Load and Describe a Dataset

Unit 2 โ€” Data Cleaning and Transformation 2.1 Identifying Dirty Data ยท 2.2 Renaming Columns and Reindexing ยท 2.3 Data Type Conversion ยท 2.4 Deduplication ยท 2.5 String Cleaning in Pandas ยท 2.6 Sorting and Ranking ยท 2.7 GroupBy and Aggregation ยท 2.8 Merging and Joining DataFrames ยท 2.9 Pivot Tables ยท 2.10 Apply and Lambda in Pandas ยท 2.11 Binning and Discretization ยท 2.12 Outlier Detection ยท 2.13 Feature Engineering Basics ยท 2.14 Saving Cleaned Data ยท 2.15 Mini Challenge โ€” Clean a Messy Dataset

Unit 3 โ€” Visualization 3.1 Why Visualization Matters ยท 3.2 Matplotlib โ€” Your First Plot ยท 3.3 Line Charts and Bar Charts ยท 3.4 Scatter Plots and Histograms ยท 3.5 Subplots and Layouts ยท 3.6 Styling and Themes ยท 3.7 Seaborn vs Matplotlib ยท 3.8 Distribution Plots ยท 3.9 Categorical Plots ยท 3.10 Heatmaps and Correlation ยท 3.11 Pair Plots ยท 3.12 Annotating Charts ยท 3.13 Interactive Plots with Plotly Intro ยท 3.14 Choosing the Right Chart ยท 3.15 Mini Challenge โ€” Visualize a Real Dataset

Unit 4 โ€” Statistics and Exploratory Analysis 4.1 Descriptive Statistics ยท 4.2 Probability Basics ยท 4.3 Normal Distribution ยท 4.4 Binomial and Poisson Distributions ยท 4.5 Hypothesis Testing ยท 4.6 p-Values and Significance ยท 4.7 Correlation vs Causation ยท 4.8 Univariate Analysis ยท 4.9 Bivariate Analysis ยท 4.10 Multivariate Analysis ยท 4.11 Time Series Basics ยท 4.12 Rolling Statistics ยท 4.13 EDA Workflow ยท 4.14 EDA Case Study ยท 4.15 Mini Challenge โ€” Full EDA Pass

Unit 5 โ€” Intro to ML and Final Project 5.1 What is Machine Learning? ยท 5.2 Supervised vs Unsupervised ยท 5.3 Training, Validation, Test Sets ยท 5.4 Overfitting and Underfitting ยท 5.5 The Scikit-Learn API ยท 5.6 Linear Regression ยท 5.7 Logistic Regression ยท 5.8 Model Evaluation Metrics ยท 5.9 Cross Validation ยท 5.10 Web Scraping with BeautifulSoup ยท 5.11 APIs and JSON Data ยท 5.12 SQL with Pandas ยท 5.13 Project โ€” Choose a Dataset ยท 5.14 Project โ€” Full EDA and Modeling ยท 5.15 Project โ€” Present Your Findings

๐Ÿ“– View Course 3 โ€” Machine Learning Track (75 lessons)

Unit 1 โ€” ML Foundations 1.1 The ML Pipeline ยท 1.2 Feature Engineering Principles ยท 1.3 Preprocessing with Scikit-Learn ยท 1.4 Pipelines and ColumnTransformer ยท 1.5 Baseline Models ยท 1.6 Linear Regression Deep Dive ยท 1.7 Polynomial Regression ยท 1.8 Ridge and Lasso Regularization ยท 1.9 Logistic Regression Deep Dive ยท 1.10 K-Nearest Neighbors ยท 1.11 Decision Trees ยท 1.12 Support Vector Machines ยท 1.13 Regression Metrics ยท 1.14 Classification Metrics โ€” Precision, Recall, F1 ยท 1.15 Mini Challenge โ€” Compare Three Models

Unit 2 โ€” Ensemble Methods and Model Tuning 2.1 Bagging and Random Forests ยท 2.2 AdaBoost ยท 2.3 Gradient Boosting ยท 2.4 XGBoost ยท 2.5 Stacking and Blending ยท 2.6 Cross Validation Strategies ยท 2.7 Grid Search ยท 2.8 Random Search ยท 2.9 Feature Importance and Selection ยท 2.10 Dealing with Imbalanced Data ยท 2.11 K-Means Clustering ยท 2.12 DBSCAN ยท 2.13 Principal Component Analysis ยท 2.14 Dimensionality Reduction Use Cases ยท 2.15 Mini Challenge โ€” Tune a Random Forest

Unit 3 โ€” Neural Networks 3.1 The Perceptron ยท 3.2 Multilayer Networks ยท 3.3 Activation Functions ยท 3.4 Backpropagation Intuition ยท 3.5 Keras and TensorFlow Setup ยท 3.6 Building Your First Neural Network ยท 3.7 Loss Functions and Optimizers ยท 3.8 Dropout and Batch Normalization ยท 3.9 Callbacks and Early Stopping ยท 3.10 Saving and Loading Models ยท 3.11 Image Data and Preprocessing ยท 3.12 Convolutional Layers and Pooling ยท 3.13 Building a CNN from Scratch ยท 3.14 Transfer Learning ยท 3.15 Mini Challenge โ€” Image Classifier

Unit 4 โ€” NLP and Advanced Topics 4.1 Text Preprocessing ยท 4.2 Bag of Words and TF-IDF ยท 4.3 Word Embeddings ยท 4.4 Recurrent Neural Networks ยท 4.5 Transformers and BERT Intro ยท 4.6 Sentiment Analysis Pipeline ยท 4.7 Generative Models โ€” GANs Intro ยท 4.8 Reinforcement Learning Basics ยท 4.9 ML Ethics and Bias ยท 4.10 Model Monitoring and Drift ยท 4.11 Saving Models โ€” Joblib and Pickle ยท 4.12 Building a Flask API for Your Model ยท 4.13 AutoML Tools ยท 4.14 MLOps Overview ยท 4.15 Mini Challenge โ€” Sentiment Classifier

Unit 5 โ€” Capstone Project 5.1 Problem Selection and Scoping ยท 5.2 Data Collection and Cleaning ยท 5.3 Exploratory Analysis ยท 5.4 Feature Engineering ยท 5.5 Model Selection ยท 5.6 Hyperparameter Tuning ยท 5.7 Evaluation and Interpretation ยท 5.8 Handling Edge Cases ยท 5.9 Building a Flask API ยท 5.10 Model Documentation ยท 5.11 Bias Audit ยท 5.12 Peer Review Session ยท 5.13 Project โ€” Final Implementation ยท 5.14 Project โ€” Deployment ยท 5.15 Project โ€” Presentation


Features

๐ŸŽ“ Learning System

  • Three-phase lesson structure โ€” See It Work โ†’ See It Break โ†’ You Try, across all 225 lessons
  • Three-course progression โ€” Foundations unlocks Data Science, which unlocks Machine Learning; advanced learners can unlock a track early via a placement quiz
  • Contextual hint escalation โ€” hint appears at 2 wrong attempts, solution unlocks at 5
  • Pattern-based validation โ€” instant feedback without a server or code execution engine
  • Full lesson navigation โ€” collapsible sidebar grouped by course โ†’ unit โ†’ lesson, with per-lesson completion tracking

๐ŸŽฎ Progression & Rewards

  • XP system โ€” earn XP per lesson, with bonus XP for first-attempt success and hint-free runs
  • 15 levels (5 more than her siblings, because there's 3x the curriculum) โ€” clear thresholds with a persistent progress bar
  • Level-gated cosmetics โ€” new rewards unlock as you level up, tracking your shift from "learning to code" to "shipping models"
  • localStorage persistence โ€” no account needed, progress is saved in the browser

๐ŸŽจ The Shop

App Themes (equippable backgrounds):

Level Item Style
1 Golden Hour Desk ๐ŸŒ‡ Warm light through the window, mug of tea steaming next to the keyboard โ€” the default
4 Jupyter Garden ๐Ÿชด Soft green notebook cells climbing like ivy across the screen
7 Chalkboard Constellations โœจ Equations and scatter plots drawn in chalk dust across a night sky
10 Server Room Glow ๐Ÿ–ฅ๏ธ Cool blue rack lights โ€” the model is training, and she's not leaving until it finishes
13 Golden Ratio Study ๐Ÿ“ Marble desk, brass instruments, the aesthetic of someone who actually reads the math behind the model

Character Outfits (equippable; all with full 6-expression sprite art):

Level Outfit Vibe
1 Sunlit Cardigan ๐Ÿงถ Soft, oversized, slightly too long sleeves. Her signature look, always equipped
2 Library Cardigan ๐Ÿ“– Same warmth, draped over a reading nook fit for f-strings and footnotes
4 Lab Coat & Glasses ๐Ÿ”ฌ Data Science Mode โ€” ON. Pen behind the ear, sleeves rolled
5 Greenhouse Sundress ๐ŸŒฟ NumPy arrays bloom like a garden when you know how to broadcast them
6 Night-Owl Hoodie ๐Ÿฆ‰ EDA at 2am. The dataset finally makes sense
8 Professor's Blazer ๐ŸŽ“ Machine Learning Mode โ€” ON. She means business, but she's still smiling
9 Garden Witch โœจ๐ŸŒธ The Ensemble Methods outfit. Many small spells, one strong forest
10 Idol โ€” Gradient Descent ๐ŸŽค She already performs a Celebration. Might as well dress for it
12 Neural Net Kimono ๐Ÿงต Silver thread circuitry stitched through deep navy silk
14 Capstone Crown ๐Ÿ‘‘ You survived all three courses. Wear the crown
15 Off the Clock ๐Ÿ–๏ธ model.deployed = True. She is, finally, allowed to rest

Downloadable Wallpapers (phone/desktop art, save to your device):

Level Wallpaper Vibe
3 Morning Notebook โ˜• Jupyter cells, coffee ring stain, golden light
3 Cherry Blossom Reading Nook ๐ŸŒธ A worn copy of a stats textbook in her lap
6 The Pandas DataFrame ๐Ÿผ Rows and columns rendered as a quiet, orderly garden grid
6 Scatter Plot Skyline ๐ŸŒƒ City lights mapped as a correlation plot, glowing softly
8 Rainy Lab Window ๐ŸŒง๏ธ Condensation on the glass, a model training in the reflection
9 Loss Curve Sunset ๐Ÿ“‰ The loss is finally going down. So is the sun
11 Neon Notebook Arcade ๐Ÿ•น๏ธ Retro-futurist console running an actual logistic regression
12 Mountain Summit โ€” Convergence ๐Ÿ”๏ธ She reached the global minimum. So did you
13 Shrine Steps โ€” Stats Edition ๐Ÿฎ Stone steps, dawn mist, a p-value finally below 0.05
15 Deployment Day Sunset ๐ŸŒ… The Flask API is live. Time to watch the sky instead of the logs

โœจ Character & Expressions

Python-chan has 6 distinct expressions that fire contextually throughout lessons:

State Trigger
idle Phase 1 โ€” explaining working code
thinking Hint mode; waiting for input
surprised Correct answer
happy Phase transitions and encouragement
sad Wrong answer (first few times)
idle-sleep Idle between interactions

Each equipped outfit has its own full set of 6 expression sprites โ€” swapping outfits changes Python-chan's entire look, not just a filter.

Domain Expansion โ€” a fullscreen celebration effect fires on milestone level-ups and on completing each of the three courses, complete with confetti.


Tech Stack

Layer Choice Why
Frontend React 19 + Vite 8 Fast HMR, ES modules, modern JSX transform
Styling Plain CSS + Framer Motion 12 No CSS framework overhead; animations via Motion
State Zustand 5 Minimal boilerplate, works with persist middleware out of the box
Data JSON files + localStorage Zero backend for Phase 1; data adapter ready for Phase 2
Routing React Router v7 File-level page components
Hosting Vercel Zero-config deployment

Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn

Running Locally

# Clone the repo
git clone https://github.com/Omega-Mu-Gamma-Studio/Python-Chan.git
cd Python-Chan

# Install dependencies
npm install

# Start the dev server
npm run dev

The app runs at http://localhost:5173 by default.

# Build for production
npm run build

# Preview the production build locally
npm run preview

Deploying to Vercel

This repo is Vercel-ready with no configuration needed. Connect the repo in the Vercel dashboard and it'll detect the Vite setup automatically. No environment variables required for Phase 1.


Project Structure

Python-Chan/
โ”œโ”€โ”€ public/
โ”‚   โ”œโ”€โ”€ sprites/                      # Character expressions (Sunlit Cardigan โ€” base outfit)
โ”‚   โ”‚   โ”œโ”€โ”€ teaching.png
โ”‚   โ”‚   โ”œโ”€โ”€ excited.png
โ”‚   โ”‚   โ”œโ”€โ”€ frustrated.png
โ”‚   โ”‚   โ”œโ”€โ”€ thinking.png
โ”‚   โ”‚   โ”œโ”€โ”€ oops.png
โ”‚   โ”‚   โ”œโ”€โ”€ idle.png
โ”‚   โ”‚   โ””โ”€โ”€ uniforms/                 # Outfit-specific sprite sets (6 expressions each)
โ”‚   โ”‚       โ”œโ”€โ”€ library-cardigan/
โ”‚   โ”‚       โ”œโ”€โ”€ lab-coat/
โ”‚   โ”‚       โ”œโ”€โ”€ greenhouse/
โ”‚   โ”‚       โ”œโ”€โ”€ night-owl/
โ”‚   โ”‚       โ”œโ”€โ”€ professor-blazer/
โ”‚   โ”‚       โ”œโ”€โ”€ garden-witch/
โ”‚   โ”‚       โ”œโ”€โ”€ idol/
โ”‚   โ”‚       โ”œโ”€โ”€ neural-kimono/
โ”‚   โ”‚       โ”œโ”€โ”€ capstone-crown/
โ”‚   โ”‚       โ””โ”€โ”€ off-the-clock/
โ”‚   โ””โ”€โ”€ wallpapers/                   # Downloadable device wallpapers (10 total)
โ”‚       โ”œโ”€โ”€ pythonchan-morning-notebook.png
โ”‚       โ”œโ”€โ”€ pythonchan-sakura-reading-nook.png
โ”‚       โ”œโ”€โ”€ pythonchan-dataframe-garden.png
โ”‚       โ”œโ”€โ”€ pythonchan-scatter-skyline.png
โ”‚       โ”œโ”€โ”€ pythonchan-rainy-lab.png
โ”‚       โ”œโ”€โ”€ pythonchan-loss-curve-sunset.png
โ”‚       โ”œโ”€โ”€ pythonchan-neon-notebook.png
โ”‚       โ”œโ”€โ”€ pythonchan-convergence-summit.png
โ”‚       โ”œโ”€โ”€ pythonchan-shrine-stats.png
โ”‚       โ””โ”€โ”€ pythonchan-deployment-sunset.png
โ”‚
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ character/PythonChan.jsx    # Sprite renderer; reads spriteOverrides from equipped outfit
โ”‚   โ”‚   โ”œโ”€โ”€ layout/AppLayout.jsx        # Root layout; applies theme + background
โ”‚   โ”‚   โ”œโ”€โ”€ lesson/                     # LessonCanvas, CodeBlock, PhaseIndicator
โ”‚   โ”‚   โ””โ”€โ”€ ui/                         # Sidebar, BottomBar, XPDisplay, ProgressBar, CourseSelector
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ data/
โ”‚   โ”‚   โ”œโ”€โ”€ lessons/                  # 225 JSON lesson files (course1โ€“3, unit1โ€“5, lessons 1โ€“15)
โ”‚   โ”‚   โ”œโ”€โ”€ courses/                  # 3 course JSON files (id, title, unit list)
โ”‚   โ”‚   โ”œโ”€โ”€ units/                    # 15 unit JSON files (id, title, lesson list)
โ”‚   โ”‚   โ””โ”€โ”€ shopItems.js              # All cosmetic definitions (outfits, themes, downloadables)
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ hooks/
โ”‚   โ”‚   โ”œโ”€โ”€ useLesson.js              # Lesson phase state machine
โ”‚   โ”‚   โ”œโ”€โ”€ useProgress.js            # Progress store bindings
โ”‚   โ”‚   โ””โ”€โ”€ useSound.js               # Sound effect hooks
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ pages/
โ”‚   โ”‚   โ”œโ”€โ”€ Home.jsx                  # Dashboard / course selection
โ”‚   โ”‚   โ”œโ”€โ”€ CoursePage.jsx            # Unit list for a course
โ”‚   โ”‚   โ”œโ”€โ”€ UnitPage.jsx              # Lesson list for a unit
โ”‚   โ”‚   โ”œโ”€โ”€ LessonPage.jsx            # The actual lesson experience
โ”‚   โ”‚   โ””โ”€โ”€ Shop.jsx                  # Cosmetics shop
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ services/
โ”‚   โ”‚   โ”œโ”€โ”€ lessonService.js          # JSON loader + lesson data access
โ”‚   โ”‚   โ””โ”€โ”€ storageService.js         # localStorage adapter (Phase 2: swap for API)
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ store/
โ”‚   โ”‚   โ”œโ”€โ”€ progressStore.js          # Zustand store: XP, level, outfits, progress
โ”‚   โ”‚   โ””โ”€โ”€ lessonStore.js            # Zustand store: active lesson state
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ utils/
โ”‚       โ”œโ”€โ”€ xpCalculator.js           # XP thresholds, level math, earned XP calculation
โ”‚       โ”œโ”€โ”€ patternMatcher.js         # Regex-based answer validation engine
โ”‚       โ””โ”€โ”€ pyHighlighter.js          # Python syntax highlighting for code blocks

Adding Content

Adding a New Lesson

Lesson JSON files live at src/data/lessons/course{C}/unit{N}/{N}.{M}.json. Each file follows this structure:

{
  "id": "1.1",
  "course": 1,
  "title": "What is Python and Why It Matters",
  "xp": 10,
  "phases": [
    {
      "phase": 1,
      "title": "See It Work",
      "dialogue": "Python-chan's explanation text here",
      "code": "print('Hello, Player!')",
      "output": "Hello, Player!"
    },
    {
      "phase": 2,
      "title": "See It Break",
      "dialogue": "Here's what happens when...",
      "code": "print('Hello, Player!'",
      "error": "SyntaxError: unexpected EOF while parsing"
    },
    {
      "phase": 3,
      "title": "You Try",
      "dialogue": "Your turn!",
      "prompt": "What function prints text to the console in Python?",
      "answer": "print()",
      "hint": "It's four letters and very friendly.",
      "solution": "print()"
    }
  ]
}

Adding a New Outfit

  1. Create a folder under public/sprites/uniforms/<outfit-name>/
  2. Drop in 6 PNGs named: teaching.png, idle.png, oops.png, thinking.png, frustrated.png, excited.png
  3. Add an entry to src/data/shopItems.js with spriteOverrides mapping each expression state to the correct file path
  4. That's it โ€” PythonChan.jsx and Shop.jsx both read spriteOverrides automatically

Developer Cheat Mode

In the Shop page, triple-click the Shop title to toggle the dev cheat:

  • First triple-click โ†’ instantly sets XP to 9999 and level to 15 (unlocks everything)
  • Second triple-click โ†’ resets XP and level back to 0 / 1

Roadmap

Phase 1 (Current) โœ…

  • All 225 lessons authored and published across 3 courses
  • Full cosmetics system (11 outfits, 5 themes, 10 downloadable wallpapers)
  • XP/leveling, shop, expressions, domain expansion
  • localStorage persistence, no account required

Phase 2 (Planned)

  • PostgreSQL + Express API backend
  • User accounts and cross-device sync
  • Progress stored server-side (the store already has a _resetForMigration hook and storage adapter pattern ready for this)
  • Instructor view: class-wide completion dashboards
  • No frontend rewrite required โ€” only the storage layer changes

Credits & Assets

Character Art: Python-chan's sprites were generated using AI tools and hand-curated for expression consistency by the Omega Mu Gamma Studio team. All character designs are proprietary to Omega Mu Gamma Studio.

Note: As a free, open-source educational tool, we prioritized shipping a complete learning experience over commissioning custom art. If you're an artist interested in contributing official character designs, reach out โ€” we'd love to collaborate.


Part of Omega Mu Gamma Studio

Python-chan is part of a student-built suite of open-source engineering and CS education tools from Omega Mu Gamma Studio.

Tool What it does
SeeDS 3D data structure visualizer with drag-and-drop Playground mode
KMapX Karnaugh map simplifier with don't-care support
EG Suite 3D Engineering Graphics simulator for ME22201
GateLab 2D digital logic schematic playground (CS22303)
Java-chan Anime-guided Java tutor for CS22301
PlusPlus-chan Anime-guided C++ tutor for aspiring game developers
Python-chan Anime-guided, three-course Python tutor โ€” Foundations, Data Science, and Machine Learning โ€” this repo

License

The source code for this project is released under the MIT License.

The character art, sprites, and visual assets for Python-chan are proprietary. They are not covered by the MIT License and may not be reproduced, redistributed, or used outside this project without explicit permission from Omega Mu Gamma Studio.

ยฉ 2026 Omega Mu Gamma Studio

Releases

No releases published

Packages

 
 
 

Contributors