π AI-Powered Document Processing & Intelligent Print Automation
Enterprise-grade document handling with voice control, OCR, and AI-assisted workflows
Transform how you handle documents with voice-controlled, AI-assisted printing and scanning workflows. PrintChakra combines computer vision, OCR, and LLM-powered intelligence for seamless document management.
- Overview
- Project Status
- Key Features
- Implementation Highlights
- Tech Stack
- Quick Start
- Project Structure
- System Architecture
- AI Workflow Documentation
- Configuration
- Usage Guide
- Development
- Deployment
- Contributing
- License & Author
PrintChakra is a comprehensive, full-stack document processing platform that revolutionizes printing and scanning workflows. It seamlessly integrates advanced OCR technology, AI-assisted document understanding, voice-enabled interaction, and intelligent printer management into a unified system.
- π€ Hands-Free Voice Control β Speak commands to configure print/scan jobs, manage queues, and control devices
- π§ AI-Powered Intent Detection β Automatically configures workflows from natural language commands
- πΈ Advanced OCR Pipeline β 12-stage image enhancement and text extraction for maximum accuracy
- β‘ Real-Time Synchronization β WebSocket-powered instant updates across all interfaces
- π§ Modular Architecture β Easy to extend with custom integrations and workflows
Release Date: December 2025 | Status: β Active Development
| Stage | Component | Status | Details |
|---|---|---|---|
| Backend Foundation | Flask API Framework | β Complete | REST API with Socket.IO, error handling, logging |
| Frontend UI | React + TypeScript Interface | β Complete | Responsive dashboard, modals, real-time updates |
| AI Integration | State Machine + Voice Processing | β Complete | Strict workflow state validation, command parsing, voice bridge |
| Orchestration | Print/Scan Workflow Engine | β Complete | Stateful workflow management, intent detection, configuration |
| Document Processing | OCR Pipeline | β Complete | 12-stage enhancement, PaddleOCR integration, format conversion |
| Voice Interface | Whisper + TTS + Ollama | β Complete | STT, LLM intent detection, Coqui TTS responses |
| Printing System | Hardware Integration | β Complete | pywin32 drivers, multi-printer support, queue management |
| Real-Time Communication | WebSocket Sync | β Complete | Socket.IO integration, live status updates |
| AI Workflow Refinements | Response Optimization | β Complete | Concise responses (15-word limit), human-like interactions |
| Comprehensive Documentation | README + Print Commands | β Complete | Full AI workflow docs, command tables, implementation guide |
- REST API endpoints for document management (
/api/documents,/api/print,/api/scan) - Socket.IO event handlers for real-time communication
- Orchestration service with state machine (
WorkflowState,IntentType) - Voice processing pipeline (
voice_prompt.py,voice_bridge.py) - OCR module with image enhancement (12-stage pipeline)
- Print/Scan configuration management
- Error handling & comprehensive logging
- AI Assist hook system (
useAIAssist,useVoiceCommandBridge) - State manager for strict workflow control (
stateManager.ts) - Command parser with confidence scoring (
commandParser.ts) - Action handler with callback integration (
actionHandler.ts) - Real-time settings synchronization
- Document selection with multi-select support
- Voice command bridge for backend/frontend integration
- 3-State Architecture: Dashboard β Print/Scan Mode β Step Progression
- 4-Step Print: Select β Configure β Review β Execute
- 5-Step Scan: Source β Select β Configure β Review β Execute
- "Sorry" Protocol: Safety mechanism for workflow switching
- Command Parsing: Regex-based pattern matching with 50+ command keywords
- State Validation: Contextual command validation per workflow step
- Voice/Text Parity: Identical behavior for voice and text inputs
- Response Optimization: Concise responses (max 15 words, 1 sentence)
| Feature | Frontend | Backend | Status |
|---|---|---|---|
| Document Upload | β Modal UI | β File handling | β Complete |
| Document Selection | β Multi-select | β Indexing | β Complete |
| Print Settings | β All controls | β Config storage | β Complete |
| Scan Settings | β All controls | β Config storage | β Complete |
| Voice Commands | β Whisper STT | β Intent detection | β Complete |
| AI Responses | β TTS playback | β Response generation | β Complete |
| Workflow State | β Validation | β Orchestration | β Complete |
| Real-Time Sync | β Socket.IO | β Event broadcast | β Complete |
| Settings Review | β Display panel | β Summary generation | β Complete |
| Error Handling | β Toast messages | β Error responses | β Complete |
- Multi-Format Support β Process PDFs, images, Word documents, and scanned files
- Intelligent OCR Pipeline β Extract text with 12-stage image enhancement and quality scoring
- Batch Processing β Handle dozens or hundreds of documents with single commands
- Format Conversion β Automatic conversion between PDF, images, and text formats
- Real-Time Processing Status β Monitor document pipeline stages with visual indicators
- Smart Print Configuration β Paper size, orientation, color mode, quality, copy count, duplex
- Advanced Scan Configuration β DPI, color mode, file format, batch scanning, OCR toggle
- Multi-Printer Support β Manage multiple printers simultaneously from unified interface
- Print Queue Management β Real-time monitoring and control of active print jobs
- Printer Feed Tray Support β Direct document feeding from printer hardware
- Continuous Voice Listening β 10-15x faster Whisper transcription with local processing
- Natural Language Commands β Control all functions with voice or text input
- Contextual AI Analysis β Intelligent document understanding and metadata extraction
- Customizable Prompts β Configure AI behavior through simple config files
- Concise Spoken Responses β Max 15 words, human-like interactions with immediate feedback
- Live Dashboard β Real-time document upload and processing status
- Device Status β Printer connectivity, driver availability, system resources
- Connectivity Verification β Backend API health, device connectivity, link establishment
- Process Tracking β Pipeline visualization showing document processing stages
- Workflow Progress β Step-by-step indication of print/scan progress
| Innovation | Benefit | Implementation |
|---|---|---|
| Strict State Machine | Prevents workflow confusion | AppState + WorkflowStep with validated transitions |
| "Sorry" Protocol | Safety for mode switching | Requires keyword before switching print β scan |
| Voice/Text Parity | Unified experience | Identical command parsing + responses for both inputs |
| Real-Time Sync | Live updates across devices | Socket.IO with event broadcasting |
| Intent Detection | Natural language understanding | Ollama LLM with fallback keyword matching |
| Response Optimization | Natural speech | Max 15 words, 1 sentence, context-aware |
Frontend State Management
stateManager.ts: Enforces workflow progression with state validationcommandParser.ts: Parses 50+ command patterns with confidence scoringactionHandler.ts: Routes commands to appropriate handlersuseAIAssist.ts: Main AI interaction hook with callbacksuseVoiceCommandBridge.ts: Bridges backend voice intents to frontend actions
Backend Orchestration
PrintScanOrchestrator: Manages workflow state and transitionsIntentTypeDetection: Print, Scan, Status, Configure, Help, etc.VoicePromptManager: Handles LLM queries and response formattingOCR Pipeline: 12-stage image enhancement with quality scoringConfiguration Manager: Persists user settings across sessions
| Component | Technology | Purpose |
|---|---|---|
| Framework | Flask 3.0 | REST API & real-time coordination |
| Real-Time | Socket.IO 5.3 | WebSocket synchronization |
| OCR | PaddleOCR 2.7 | Advanced text extraction |
| Voice | OpenAI Whisper | Speech-to-text transcription |
| PyMuPDF, Poppler | Document processing | |
| Image | OpenCV, Pillow | Image enhancement |
| Printing | pywin32 | Windows printer communication |
| AI | Ollama Integration | Local LLM for intent detection |
| Component | Technology | Purpose |
|---|---|---|
| Framework | React 19 | UI framework |
| Language | TypeScript 4.9 | Type-safe development |
| UI Library | Chakra UI 2.10 | Accessible components |
| Styling | Emotion | CSS-in-JS styling |
| Communication | Socket.IO Client | Real-time updates |
| HTTP | Axios | API requests |
| Routing | React Router 7 | Page navigation |
| Icons | Iconify, React Icons | Icon system |
| Animations | Framer Motion | Smooth animations |
- Containerization β Docker support for consistent deployments
- Frontend Deployment β Vercel configuration included
- Environment Management β Python dotenv for configuration
- Automation Scripts β PowerShell scripts for setup and management
- Git Workflow β Full version control with documented refactoring history
- Windows 10/11 (due to printer integration)
- Python 3.8+
- Node.js 18+
- npm or yarn
- Git (for version control)
- Ollama (optional, for enhanced AI features)
git clone https://github.com/chaman2003/printchakra.git
cd printchakracd backend
python -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txtcd ../frontend
npm install
# or
yarn installCreate .env file in backend/ directory:
FRONTEND_URL=http://localhost:3000
BACKEND_PUBLIC_URL=http://localhost:5000
API_CORS_ORIGINS=http://localhost:3000
# Ollama Configuration (optional)
OLLAMA_BASE_URL=http://localhost:11434
VOICE_AI_MODEL=smollm2:135m
# Voice Settings
VOICE_SYSTEM_PROMPT_FILE=backend/config/prompts/system_prompt.txt
VOICE_COMMAND_MAPPINGS_FILE=backend/config/prompts/command_mappings.json# Start all services
.\scripts\run-all.ps1
# Or start individually
.\scripts\backend.ps1
.\scripts\frontend.ps1# Terminal 1 - Backend
cd backend
.\venv\Scripts\activate
python app.py
# Terminal 2 - Frontend
cd frontend
npm startAccess the Application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- API Docs: http://localhost:5000/docs (if available)
printchakra/
β
βββ backend/ # Flask backend application
β βββ app.py # Main application entry point
β βββ requirements.txt # Python dependencies
β βββ REFACTORING_PLAN.md # Refactoring documentation
β βββ app/ # Core application module
β β βββ __init__.py
β β βββ api/ # REST API endpoints
β β β βββ __init__.py
β β β βββ document.py # Document management endpoints
β β βββ config/ # Configuration module
β β β βββ __init__.py
β β β βββ settings.py # Configuration management
β β β βββ prompts/ # AI system prompts
β β βββ core/ # Core utilities
β β β βββ __init__.py
β β β βββ config.py
β β β βββ extensions.py # Flask extensions
β β β βββ logging_config.py # Logging configuration
β β β βββ middleware/ # Middleware modules
β β βββ models/ # Data models
β β β βββ __init__.py
β β β βββ document.py # Document model
β β β βββ file_info.py # File information model
β β β βββ print_config.py # Print configuration model
β β β βββ scan_config.py # Scan configuration model
β β βββ middleware/ # Middleware handlers
β β β βββ __init__.py
β β β βββ cors_config.py # CORS configuration
β β β βββ error_handler.py # Error handling
β β β βββ request_logger.py # Request logging
β β βββ features/ # Feature modules
β β β βββ __init__.py
β β β βββ connection/ # Connection management
β β β βββ dashboard/ # Dashboard services
β β β βββ document/ # Document features
β β β βββ orchestration/ # Workflow orchestration
β β β βββ phone/ # Phone integration
β β β βββ print/ # Printing features
β β β βββ voice/ # Voice features
β β βββ modules/ # Processing modules
β β β βββ __init__.py
β β β βββ api_endpoints.py # API endpoint definitions
β β β βββ utility.py # Utility functions
β β β βββ document/ # Document processing
β β β βββ image/ # Image enhancement
β β β βββ ocr/ # OCR pipeline
β β β βββ orchestration/ # Orchestration logic
β β β βββ pipeline/ # Processing pipeline
β β β βββ voice/ # Voice processing
β β βββ sockets/ # WebSocket handlers
β β β βββ __init__.py
β β β βββ handlers.py # Socket.IO event handlers
β β βββ utils/ # Utility functions
β β βββ __init__.py
β β βββ file_utils.py # File operations
β β βββ image_utils.py # Image utilities
β β βββ logger.py # Logging utilities
β β βββ print_scripts/ # Printing utility scripts
β β β βββ print-file.py # File printing script
β β β βββ printer_test.py # Printer testing utility
β β β βββ README.md # Printing scripts documentation
β βββ data/ # Data storage directories
β β βββ uploads/ # User uploaded files
β β βββ processed/ # Processed files
β β βββ converted/ # Format-converted files
β β βββ pdfs/ # Generated PDFs
β β βββ processed_text/ # Extracted text files
β β βββ models/ # Model files
β β βββ ocr_results/ # OCR output
β βββ public/ # Static files and resources
β β βββ blank.pcl # Printer control language file
β β βββ test_print.txt # Test print file
β β βββ data/ # Data subdirectories
β β β βββ converted/
β β β βββ models/
β β β βββ ocr_results/
β β β βββ pdfs/
β β β βββ processed/
β β β βββ processed_text/
β β β βββ uploads/
β β βββ poppler/ # Poppler binary for PDF processing
β β βββ poppler-24.08.0/ # Poppler version
β βββ logs/ # Application logs
β βββ __pycache__/ # Python cache files
β
βββ frontend/ # React + TypeScript frontend
β βββ package.json # Node.js dependencies
β βββ tsconfig.json # TypeScript configuration
β βββ craco.config.js # Create React App config
β βββ vercel.json # Vercel deployment config
β βββ src/ # Source code
β β βββ App.tsx # Main app component
β β βββ App.css # App styles
β β βββ index.tsx # React entry point
β β βββ index.css # Global styles
β β βββ config.ts # Frontend configuration
β β βββ types.ts # TypeScript types
β β βββ theme.ts # Chakra theme configuration
β β βββ apiClient.ts # HTTP API client
β β βββ ocrApi.ts # OCR API interface
β β βββ react-app-env.d.ts # React environment types
β β βββ reportWebVitals.ts # Performance metrics
β β βββ setupWarnings.js # Console warnings setup
β β βββ aiassist/ # AI assistance features
β β β βββ actionHandler.ts # Action handling
β β β βββ commandParser.ts # Command parsing
β β β βββ ... # Other AI features
β β βββ components/ # React components
β β β βββ dashboard/ # Dashboard components
β β β βββ document/ # Document management UI
β β β βββ layout/ # Layout components
β β β βββ orchestration/ # Workflow UI
β β β βββ voice/ # Voice control UI
β β β βββ common/ # Shared components
β β βββ pages/ # Page components
β β βββ context/ # React context (Socket.IO, etc)
β β βββ hooks/ # Custom React hooks
β β βββ utils/ # Frontend utilities
β β βββ styles/ # Global styles
β β βββ ui/ # UI utilities
β βββ public/ # Static assets
β β βββ index.html # HTML entry point
β β βββ manifest.json # PWA manifest
β β βββ robots.txt # SEO robots file
β βββ build/ # Production build output
β β βββ index.html
β β βββ asset-manifest.json
β β βββ manifest.json
β β βββ robots.txt
β β βββ static/ # Built assets
β β βββ css/
β β βββ js/
β β βββ media/
β βββ node_modules/ # Node dependencies (git-ignored)
β
βββ scripts/ # Automation scripts
β βββ backend.ps1 # Backend startup script
β βββ frontend.ps1 # Frontend startup script
β βββ run-all.ps1 # Run all services script
β βββ cleanup.ps1 # Cleanup script
β βββ ngrok.ps1 # Ngrok tunneling script
β βββ install_cuda_pytorch.ps1 # CUDA/PyTorch installation
β
βββ docs/ # Documentation
β βββ outcome.txt # Outcome documentation
β βββ ENHANCEMENTS/ # Enhancement proposals
β βββ pics/ # Documentation images
β βββ TECHNOLOGY_STACK.txt # Technology stack details
β
βββ README.md # This file
βββ prompt.txt # Project prompt
βββ error.txt # Error log
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CLIENT LAYER β
ββββββββββββββββββββ¬βββββββββββββββββββ¬ββββββββββββββββββββββββ€
β Web Dashboard β Mobile Capture β Voice Control Panel β
β (React + TS) β (Responsive) β (Real-time) β
ββββββββββββββ¬ββββββ΄βββββββββ¬ββββββββββ΄βββββββββββ¬βββββββββββββ
β β β
ββββββββββββββββΌβββββββββββββββββββββ
Socket.IO / WebSocket
β
βββββββββββββββββββββΌββββββββββββββββββββ
β COMMUNICATION LAYER β
β - Real-time Updates β
β - Event Broadcasting β
β - Connection Management β
βββββββββββββββββββββ¬ββββββββββββββββββββ
β
βββββββββββββββββββββΌββββββββββββββββββββ
β API LAYER (Flask + REST) β
β - Document endpoints β
β - Print/Scan configuration β
β - File conversion β
β - Device management β
βββββββββββββββββββββ¬ββββββββββββββββββββ
β
βββββββββββββββββββββΌββββββββββββββββββββ
β BUSINESS LOGIC LAYER β
βββββββββββββββββββββββββββββββββββββββ€
β ββββββββββββ ββββββββββββ β
β β Document β β Voice β β
β βProcessingβ β AI/Whisper β
β ββββββββββββ ββββββββββββ β
β ββββββββββββ ββββββββββββ β
β β OCR β β Printing β β
β β Pipeline β β Scanning β β
β ββββββββββββ ββββββββββββ β
β ββββββββββββ ββββββββββββ β
β β Image β βOrchestr. β β
β βEnhancement β β
β ββββββββββββ ββββββββββββ β
βββββββββββββββββββββ¬ββββββββββββββββββββ
β
βββββββββββββββββββββΌββββββββββββββββββββ
β DATA LAYER β
βββββββββββββββββββββββββββββββββββββββ€
β ββββββββββββ ββββββββββββ β
β β File β β Model β β
β β Storage β β Management β
β ββββββββββββ ββββββββββββ β
β ββββββββββββββββββββββββ β
β β Logging & Metrics β β
β ββββββββββββββββββββββββ β
βββββββββββββββββββββ¬ββββββββββββββββββββ
β
βββββββββββββββββββββΌββββββββββββββββββββ
β EXTERNAL INTEGRATIONS β
βββββββββββββββββββββββββββββββββββββββ€
β ββββββββββββ ββββββββββββ β
β β Printers β β Scanners β β
β β (Windows)β β(pywin32) β β
β ββββββββββββ ββββββββββββ β
β ββββββββββββ ββββββββββββ β
β β Ollama β β Poppler β β
β β (LLM) β β(PDF Util)β β
β ββββββββββββ ββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββ
# Application
DEBUG=false
ENV=production
# Frontend & CORS
FRONTEND_URL=http://localhost:3000
BACKEND_PUBLIC_URL=http://localhost:5000
API_CORS_ORIGINS=http://localhost:3000,https://yourapp.com
# Ollama Configuration (Local LLM)
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_CHAT_ENDPOINT=/api/chat
OLLAMA_TAGS_ENDPOINT=/api/tags
OLLAMA_TIMEOUT=60
OLLAMA_VERIFY_SSL=true
# Voice AI Model
VOICE_AI_MODEL=smollm2:135m
VOICE_SYSTEM_PROMPT_FILE=backend/config/prompts/system_prompt.txt
VOICE_COMMAND_MAPPINGS_FILE=backend/config/prompts/command_mappings.json
# Logging
LOG_LEVEL=INFO
LOGS_DIR=backend/logs- Core behavior definition for AI assistant
- Configured with command patterns and response templates
- Plain text format for easy editing
{
"wake_words": [...],
"command_patterns": {...},
"responses": {...},
"ollama_sampling": {...}
}-
Document Management
- Upload and monitor document processing
- View OCR results in real-time
- Browse converted and processed files
- Select and batch process multiple documents
-
Print Configuration
- Choose printer from available devices
- Set paper size, orientation, color mode
- Configure quality, copies, collation
- Preview print layout before sending
-
Scan Configuration
- Customize scan resolution and quality
- Select file format (image/PDF)
- Enable automatic document detection
- Batch scan multiple pages
-
Device Management
- View all connected printers
- Monitor printer status and health
- Access driver downloads
- View system resources and performance
-
Voice Control
- Activate continuous listening
- Issue commands in natural language
- Configure jobs via voice
- Receive voice feedback and confirmations
This document outlines the AI-driven workflow and command structure for PrintChakra. It serves as a reference for both developers and users to understand how the AI assistant interacts with the system across different states and workflows.
PrintChakra uses a strict state-machine-based AI assistant that ensures users follow a logical progression for printing and scanning tasks. The assistant supports both voice and text inputs with identical behavior.
| State | Description | Valid Entry Commands |
|---|---|---|
| DASHBOARD | The default state. AI is ready to start a new workflow. | print, scan, help, status |
| PRINT_WORKFLOW | Active when a user is preparing a print job. | sorry, print (if in Scan mode) |
| SCAN_WORKFLOW | Active when a user is preparing a scan job. | sorry, scan (if in Print mode) |
To prevent accidental workflow interruptions, switching between Print and Scan modes while one is active requires the "sorry" keyword.
| Action | Command Example | AI Response |
|---|---|---|
| Switch to Scan from Print | sorry, scan |
Scan mode. |
| Switch to Print from Scan | sorry, print |
Print mode. |
| Attempt switch without "sorry" | scan (while in Print) |
Say "sorry" first to switch to scan. |
The print workflow follows a 4-step progression: Select -> Configure -> Review -> Execute.
State: PRINT_WORKFLOW | Step: SELECT_DOCUMENT
| Command Type | Patterns | Example | AI Response |
|---|---|---|---|
| Select | select, choose, pick |
select document 1 |
Got it, document 1. |
| Section | converted, uploaded, originals |
switch to converted |
Converted. |
| Navigation | next, previous, back |
next document |
Next. |
| Continue | confirm, proceed, next step |
confirm selection |
Ready. Confirm? |
State: PRINT_WORKFLOW | Step: CONFIGURATION
| Setting | Patterns | Example | AI Response |
|---|---|---|---|
| Layout | portrait, landscape |
set landscape |
Landscape. |
| Color | color, grayscale, bw |
color mode |
Color. |
| Copies | copies, copy |
3 copies |
3 copies. |
| Paper Size | A4, Letter, Legal |
A4 size |
A4. |
| Quality | draft, normal, high |
high quality |
High quality. |
| Duplex | duplex, double sided |
double sided |
Double-sided. |
State: PRINT_WORKFLOW | Step: REVIEW / EXECUTING
| Action | Patterns | Example | AI Response |
|---|---|---|---|
| Execute | confirm, start, print |
confirm print |
Printing now! |
| Cancel | cancel, stop, abort |
cancel print |
Cancelled. |
| Status | status, progress |
what's the status? |
Printing... |
The scan workflow follows a 5-step progression: Source -> Select -> Configure -> Review -> Execute.
State: SCAN_WORKFLOW | Step: SOURCE_SELECTION
| Action | Patterns | Example | AI Response |
|---|---|---|---|
| Feed Tray | feed, tray, insert |
use feed tray |
Feeding documents. |
| Manual Select | select, manual |
select from files |
Opening selection. |
State: SCAN_WORKFLOW | Step: SELECT_DOCUMENT / CONFIGURATION
| Setting | Patterns | Example | AI Response |
|---|---|---|---|
| OCR | ocr, text mode, recognize |
enable ocr |
OCR on. |
| Format | pdf, jpeg, png |
save as pdf |
PDF. |
| Resolution | dpi, resolution |
300 dpi |
300 DPI. |
| Mode | single, multi, batch |
multi page scan |
Multi page. |
These commands are available across most states to control the interface and get information.
| Category | Command | Example | Action |
|---|---|---|---|
| Help | help, commands |
what can you do? |
Shows help dialog |
| Status | status, where are we |
current status |
Reports current mode/step |
| Navigation | scroll up, scroll down |
scroll down |
Scrolls the active panel |
| UI Control | close, exit, back |
close panel |
Closes modals or goes back |
| System | connectivity, device info |
check printer |
Shows device status toast |
- User: "print" -> AI: "Print mode." (Enters
PRINT_WORKFLOW) - User: "select document 3" -> AI: "Got it, document 3."
- User: "landscape, 2 copies" -> AI: "Landscape. 2 copies."
- User: "confirm" -> AI: "Ready. Confirm?" (Moves to
REVIEW) - User: "yes" -> AI: "Printing now!" (Moves to
EXECUTING)
- Command Parsing: Handled by
commandParser.tsusing regex and keyword matching. - State Validation: Enforced by
stateManager.tsto ensure commands are contextually valid. - Action Execution: Dispatched via
actionHandler.tsto the UI and backend. - Voice Bridge:
useVoiceCommandBridge.tssynchronizes backend voice intents with frontend state.
# Clone and setup
git clone https://github.com/chaman2003/printchakra.git
cd printchakra
# Backend development
cd backend
python -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt
pip install -e . # For development mode
# Frontend development
cd ../frontend
npm install
npm run dev # Start with hot reload# Backend tests
cd backend
python -m pytest tests/
# Frontend tests
cd ../frontend
npm test
# Conversion validation
python backend/app/print_scripts/print-file.py <file_path>- Modular Design β Each feature in its own module
- Separation of Concerns β Routes β Services β Utilities
- Error Handling β Comprehensive logging and user feedback
- Type Safety β Full TypeScript coverage in frontend
# Build containers
docker build -t printchakra-backend ./backend
docker build -t printchakra-frontend ./frontend
# Run services
docker-compose up -d# Install Vercel CLI
npm i -g vercel
# Deploy
cd frontend
vercel deploy --prod- Development β Local services, verbose logging
- Staging β Pre-production environment
- Production β Hardened security, performance optimized
We welcome contributions! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit with clear messages (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request with detailed description
- Follow PEP 8 (Python)
- Use ESLint + Prettier (TypeScript/React)
- Include tests with 80%+ coverage
- Update documentation for new features
License: MIT License
Author: Chaman S (GitHub: @chaman2003)
This project is open source and available under the MIT License. See LICENSE file for details.
- Issues β Report bugs on GitHub Issues
- Discussions β Join conversations on GitHub Discussions
- Documentation β Read detailed docs in
docs/folder
- Flask Documentation
- React Documentation
- Socket.IO Guide
- PaddleOCR Documentation
- Chakra UI Components
Made with β€οΈ by Chaman S
If you find this project helpful, please consider giving it a β on GitHub!