PyFlow is a comprehensive web-based platform designed to help new Python programmers learn faster through real-time visual flow diagrams, interactive debugging tools, and AI-assisted coding suggestions.
- Dynamic Code-to-Flowchart Visualizer: Real-time conversion of Python code to interactive flowcharts
- Interactive Debugging Mode: Step-by-step execution with animated flowchart visualization
- AI-Powered Learning Assistant: Intelligent code explanations and suggestions
- Template & Snippet Library: Drag-and-drop code templates for common patterns
- Gamified Challenges: Progressive coding challenges with visual feedback
- Collaboration Tools: Share and collaborate on code with real-time flowchart updates
- Visual algorithm understanding through flowcharts
- Plain English error explanations
- Pythonic code suggestions
- Progress tracking and analytics
- Personalized learning roadmaps
- Framework: React.js with TypeScript
- Code Editor: Monaco Editor (VS Code editor)
- Flowchart Visualization: Mermaid.js / D3.js
- UI Framework: TailwindCSS
- State Management: Redux Toolkit
- Framework: FastAPI (Python)
- AST Parsing: Python AST module for code analysis
- Execution Engine: Sandboxed Python execution
- AI Integration: OpenAI GPT for code explanations
- Authentication: JWT tokens
- Primary: PostgreSQL
- Caching: Redis
- File Storage: AWS S3 (for exports/media)
- Containerization: Docker
- Orchestration: Docker Compose (development), Kubernetes (production)
- CI/CD: GitHub Actions
- Deployment: Cloud provider (AWS/GCP/Azure)
PyFlow/
βββ frontend/ # React.js application
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Application pages
β β βββ hooks/ # Custom React hooks
β β βββ services/ # API services
β β βββ store/ # Redux store
β β βββ utils/ # Utility functions
β β βββ types/ # TypeScript type definitions
β βββ public/ # Static assets
β βββ package.json
βββ backend/ # FastAPI application
β βββ app/
β β βββ api/ # API routes
β β βββ core/ # Core functionality
β β βββ models/ # Database models
β β βββ services/ # Business logic
β β βββ utils/ # Utility functions
β βββ tests/ # Backend tests
β βββ requirements.txt
βββ shared/ # Shared types and utilities
βββ docs/ # Documentation
βββ docker-compose.yml # Development environment
βββ README.md
- Node.js (v18+)
- Python (3.9+)
- Docker & Docker Compose
- Git
-
Clone the repository
git clone <repository-url> cd PyFlow
-
Start with Docker Compose
docker-compose up --build
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
cd frontend
npm install
npm run dev
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
- Project setup and architecture
- Basic code editor with syntax highlighting
- Python AST parser for flowchart generation
- Basic flowchart visualization with Mermaid.js
- Step-by-step execution engine
- Variable state tracking
- Error highlighting and basic explanations
- AI-powered code explanations
- Drag-and-drop code snippets
- Interactive flowchart nodes
- Code optimization suggestions
- Export functionality (PDF/PNG)
- User authentication and profiles
- Gamified coding challenges
- Progress dashboard and analytics
- Sharing and collaboration features
- Mobile-responsive design
- Performance optimizations
cd frontend
npm run test
cd backend
pytest
Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions, please open an issue in the GitHub repository or contact the development team.
PyFlow - Making Python learning visual and interactive! πβ¨