"Built with Vibe Coding via Antigravity"
This project was born from a genuine desire to "Properly Learn Python". Instead of just reading books, I chose to build a learning platform for Python using Python. By collaborating with Antigravity in a "Vibe Coding" workflow, we rapidly prototyped, debugged, and polished a fully functional web application.
- Interactive Playground: Write and execute Python code directly in the browser using PyScript and Ace Editor.
- Real-time Execution: Instant feedback on your code.
- Smart Indentation: Solved complex indentation issues for a seamless coding experience.
- UX Enhancements: Includes "Run" and "Clear Output" controls.
- Dynamic Curriculum:
- Topics like Variables, Data Types, Conditionals, Loops, and Functions.
- Content managed via JSON for easy expansion.
- Integrated Whitepaper:
- A built-in guide ("Python Playground Whitepaper") rendering Markdown directly in the playground to assist learners.
- Modern UI:
- Clean, responsive design using Tailwind CSS.
- Typography plugin enabled for beautiful Markdown rendering.
- Backend: FastAPI (Python)
- Templating: Jinja2
- Frontend: Tailwind CSS (CDN)
- Runtime: PyScript (WebAssembly)
- Editor: Ace Editor
- Utilities:
markdown(for rendering the whitepaper)
- Inception: Set up a lightweight FastAPI + Jinja2 architecture.
- Core Development: Implemented the curriculum viewer and topic detail pages.
- Playground Construction: Integrated PyScript and Ace Editor.
- Challenge: Overcame indentation/formatting bugs in the browser-based editor.
- Solution: Implemented a clean, whitespace-sensitive initialization script.
- Refinement: Added "Clear Output" functionality and improved UI/UX.
- Content Expansion: Deepened the curriculum and added a technical whitepaper.
- Integration: Embedded the extensive whitepaper guide directly into the playground page using Markdown rendering.
- Clone the repository.
- Active your virtual environment:
.\venv\Scripts\Activate.ps1
- Install dependencies:
pip install -r requirements.txt
- Run the server:
uvicorn app.main:app --reload
- Visit
http://127.0.0.1:8000in your browser.