Skip to content

Latest commit

 

History

History
270 lines (207 loc) · 9.25 KB

File metadata and controls

270 lines (207 loc) · 9.25 KB

Python 💻

An Interactive Python Learning Platform for Beginners

React TypeScript Vite Capacitor Pyodide License Stars Issues


Learn Python from zero to hero — right from your phone.

No server. No ads. No account needed. Just you, your device, and Python.

Getting StartedFeaturesChaptersTech StackScreenshotsContributing


About

Python 💻 is an interactive learning platform designed for absolute beginners. It includes structured lessons covering fundamentals, hands-on coding exercises, quizzes to test your knowledge, progress tracking, and a clean modern interface. Whether you're new to programming or looking to refresh your skills, this app makes Python easy to learn at your own pace.

  • Runs 100% offline — real Python code executes on-device via Pyodide (WebAssembly)
  • Works on Android (APK) and any browser (PWA/Web)
  • No login required — all progress saved locally
  • Dark hacker glassmorphism UI with smooth animations

Features

Core Learning

  • 23 structured chapters covering Python from basics to OOP
  • Real code execution — run Python code directly in the app
  • Interactive challenges with auto-grading via Pyodide
  • Quizzes (MCQ, fill-in-the-blank, predict-the-output, drag-and-drop)
  • Fun Tasks — mini-projects per chapter (Mad-Libs, Caesar cipher, etc.)

Gamification

  • XP & Leveling System — earn XP for completing challenges
  • Streak Tracking — maintain your daily coding streak
  • Badges & Achievements — unlock rewards as you progress
  • Boss Level Arena — 10-level guided game-building capstone project

Unique Features

  • Skill Tree Map — visual network graph of your learning path
  • The Oracle — offline rubber-duck mentor for code explanations
  • White-Hat Practice Track — cybersecurity-themed Python challenges
  • Code Golf Mode — compare your solution length to the shortest known solution
  • Unlockable Terminal Skins — earn new themes with XP milestones
  • Hidden Easter Egg Chapter — unlock with the Konami code
  • Exportable Certificates — downloadable completion certificates
  • Adaptive Difficulty — adjusts challenge difficulty based on your performance

Practice Modes

  • Practice Arena — random challenges from unlocked chapters
  • Daily Challenge — new challenge every day
  • Code Riddles — bite-size logic puzzles
  • Debug the Hacker — fix broken code snippets
  • Predict the Output — rapid-fire code prediction
  • Speed Type — typing simulator for syntax muscle memory

Chapters

# Chapter Topics
0 Welcome to the Terminal Python intro, print(), comments
1 Variables & Data Types int, float, str, bool, type casting
2 All Operators Arithmetic, assignment, comparison, logical, bitwise
3 Strings & Text Manipulation Slicing, f-strings, methods
4 Conditionals if/elif/else, ternary, match-case
5 Loops for, while, range, break/continue
6 Lists Indexing, slicing, comprehensions
7 Tuples & Sets Immutable sequences, set operations
8 Dictionaries CRUD, nested dicts, comprehension
9 Functions args, kwargs, scope, lambda
10 Recursion Recursive thinking, base cases
11 Error Handling try/except, custom exceptions
12 File Handling read/write, JSON I/O
13 Modules & Packages import, stdlib tour
14 OOP I Classes, objects, __init__
15 OOP II Inheritance, polymorphism, dunder methods
16 Iterators & Generators yield, generator expressions
17 Decorators & Closures Function decorators, closures
18 Comprehensions Deep Dive List/dict/set comprehensions
19 Regular Expressions Pattern matching, regex
20 APIs & JSON Working with JSON data
21 Algorithmic Thinking Sorting, searching, complexity
22 Data Structures Stacks, queues, linked lists
23 Mini Projects Capstone Text adventure engine

Tech Stack

Technology Purpose
React 19 UI framework
TypeScript 5.7 Type-safe development
Vite 6 Build tool & dev server
Capacitor 7 Android APK packaging
Pyodide 0.26 In-browser Python execution
Zustand 5 State management
Framer Motion 12 Animations & transitions
CodeMirror 6 Code editor with syntax highlighting
IndexedDB / idb Local data persistence

Getting Started

Prerequisites

Web (Browser)

# Clone the repository
git clone https://github.com/Tauseef666-ctrl/python-learn-app.git

# Navigate to the project
cd python-learn-app/python-learn-app

# Install dependencies
npm install

# Start development server
npm run dev

Open http://localhost:5173 in your browser.

Android (APK)

# Build the web app
npm run build

# Sync with Capacitor
npx cap sync android

# Open in Android Studio
npx cap open android

Then build and sign the APK from Android Studio.


Screenshots

Splash Screen Home Dashboard Code Editor
Terminal boot-up animation XP, streaks, chapter progress Run Python code in-app
Skill Tree Boss Level Profile
Visual learning path Build your own game Badges & certificates

Project Structure

python-learn-app/
├── public/
│   └── logo.png
├── src/
│   ├── components/         # Reusable UI components
│   │   ├── BottomNav.tsx
│   │   ├── ChallengeCard.tsx
│   │   ├── CodeEditor.tsx
│   │   ├── ConfettiBurst.tsx
│   │   ├── FunTaskCard.tsx
│   │   ├── GlassCard.tsx
│   │   ├── MatrixBg.tsx
│   │   ├── OracleMentor.tsx
│   │   ├── ProgressBar.tsx
│   │   ├── QuizQuestion.tsx
│   │   ├── SkillTreeMap.tsx
│   │   └── TerminalText.tsx
│   ├── screens/            # App screens
│   │   ├── Splash.tsx
│   │   ├── Home.tsx
│   │   ├── Chapters.tsx
│   │   ├── ChapterDetail.tsx
│   │   ├── Practice.tsx
│   │   ├── Boss.tsx
│   │   ├── Profile.tsx
│   │   ├── Settings.tsx
│   │   └── SkillTreeMapScreen.tsx
│   ├── data/               # Chapter content & themes
│   │   ├── chapters.ts
│   │   ├── themes.ts
│   │   └── whitehatChallenges.ts
│   ├── store/              # State management
│   │   └── appStore.ts
│   ├── utils/              # Utilities
│   │   ├── certificate.ts
│   │   ├── chapters.ts
│   │   ├── db.ts
│   │   └── pyodide.ts
│   ├── App.tsx
│   └── main.tsx
├── package.json
├── tsconfig.json
├── vite.config.ts
└── README.md

Contributing

Contributions are welcome! Here's how:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Ideas for Contributions

  • Add new chapters or exercises
  • Improve animations and UI
  • Add more quiz question types
  • Translate to other languages
  • Fix bugs or typos

License

This project is licensed under the MIT License — see the LICENSE file for details.


Acknowledgments


Built with Python 💻 — because everyone deserves to learn to code.

If this helped you learn Python, consider giving it a ⭐