Skip to content

aditya08deole/PyFlow

Repository files navigation

PyFlow - Visual Python Coding Assistant

🎯 Overview

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.

✨ Features

Core Functionality

  • 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

Learning Features

  • Visual algorithm understanding through flowcharts
  • Plain English error explanations
  • Pythonic code suggestions
  • Progress tracking and analytics
  • Personalized learning roadmaps

πŸ› οΈ Technical Stack

Frontend

  • 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

Backend

  • 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

Database

  • Primary: PostgreSQL
  • Caching: Redis
  • File Storage: AWS S3 (for exports/media)

DevOps

  • Containerization: Docker
  • Orchestration: Docker Compose (development), Kubernetes (production)
  • CI/CD: GitHub Actions
  • Deployment: Cloud provider (AWS/GCP/Azure)

πŸ“ Project Structure

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

πŸš€ Getting Started

Prerequisites

  • Node.js (v18+)
  • Python (3.9+)
  • Docker & Docker Compose
  • Git

Quick Start

  1. Clone the repository

    git clone <repository-url>
    cd PyFlow
  2. Start with Docker Compose

    docker-compose up --build
  3. Access the application

Development Setup

Frontend Development

cd frontend
npm install
npm run dev

Backend Development

cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

πŸ“‹ Development Roadmap

Phase 1: MVP (2-3 months)

  • 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

Phase 2: Advanced Features (3-4 months)

  • AI-powered code explanations
  • Drag-and-drop code snippets
  • Interactive flowchart nodes
  • Code optimization suggestions
  • Export functionality (PDF/PNG)
  • User authentication and profiles

Phase 3: Community & Learning (4-6 months)

  • Gamified coding challenges
  • Progress dashboard and analytics
  • Sharing and collaboration features
  • Mobile-responsive design
  • Performance optimizations

πŸ§ͺ Testing

Frontend Tests

cd frontend
npm run test

Backend Tests

cd backend
pytest

πŸ“– Documentation

🀝 Contributing

Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.

πŸ“„ License

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

πŸ†˜ Support

For support and questions, please open an issue in the GitHub repository or contact the development team.


PyFlow - Making Python learning visual and interactive! 🐍✨

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published