A powerful desktop application designed to assist developers with technical coding interviews and problem-solving. Features screenshot-based problem analysis, AI-powered solution generation, and real-time speech-to-text capabilities.
- Smart Screenshot Capture: Instantly capture coding problems with global hotkeys
- Multi-Language Support: Support for Python, JavaScript, Java, Go, C++, Swift, Kotlin, Ruby, SQL, and R
- Problem Extraction: AI-powered extraction of problem statements, constraints, and requirements from screenshots
- Intelligent Code Generation: Generate optimized solutions based on problem analysis
- Time & Space Complexity Analysis: Detailed algorithmic complexity breakdowns
- Multiple Solution Approaches: Explore different algorithmic strategies
- Step-by-Step Explanations: Clear reasoning for each solution approach
- Live Transcription: Real-time speech recognition for hands-free interaction
- Voice Activity Detection: Smart detection of speech vs. silence
- WebSocket Integration: Low-latency audio streaming and processing
- Session Management: Persistent transcription sessions with unique identifiers
- Floating Window: Unobtrusive overlay that stays accessible while coding
- Click-Through Transparency: Interact with applications behind the window
- Global Keyboard Shortcuts: Quick access without context switching
- Auto-Updates: Seamless application updates with user notifications
- Queue Management: Organize and process multiple screenshots
- Debug Mode: Advanced analysis and debugging assistance
- Solution History: Track and review previous solutions
- Export Capabilities: Copy code and explanations to clipboard
- Node.js (v16 or higher)
- npm or yarn
- Git
-
Clone the repository
git clone https://github.com/gamidirohan/Code-Assist-Electron-Frontend.git cd Code-Assist-Electron-Frontend -
Install dependencies
npm install # or yarn install -
Start development server
npm run dev # or yarn dev -
Build for production
npm run build # or yarn build
| Shortcut | Action | Description |
|---|---|---|
Ctrl/Cmd + B |
Toggle Window | Show/hide the application window |
Ctrl/Cmd + H |
Take Screenshot | Capture a screenshot of the current problem |
Ctrl/Cmd + Enter |
Process/Solve | Generate solution from captured screenshots |
Ctrl/Cmd + Q |
Quit Application | Close the application |
Arrow Keys + Ctrl/Cmd |
Move Window | Reposition the application window |
- Frontend: React 18, TypeScript, Tailwind CSS
- Desktop Shell: Electron with Node.js backend
- State Management: TanStack Query (React Query)
- UI Components: Radix UI primitives
- Audio Processing: Web Audio API with WebSocket streaming
- Build Tools: Vite, electron-builder
βββ electron/ # Electron main process
β βββ main.ts # Application entry point
β βββ preload.ts # Preload scripts
β βββ ProcessingHelper.ts # Screenshot processing logic
β βββ autoUpdater.ts # Auto-update functionality
βββ src/ # React application
β βββ components/ # Reusable UI components
β βββ pages/ # Application pages/views
β βββ hooks/ # Custom React hooks
β βββ types/ # TypeScript type definitions
β βββ utils/ # Utility functions
βββ dist-electron/ # Compiled Electron files
The application includes sensible defaults and doesn't require extensive configuration for basic usage.
Note: This version includes mock API endpoints. For full functionality, you'll need to implement your own backend service or integrate with existing AI services.
The STT feature connects to a WebSocket server at ws://localhost:3000/ws/jiminy/. To enable this feature:
- Set up a compatible WebSocket server
- Ensure proper audio permissions in your browser/system
- Configure the WebSocket URL in
src/hooks/useRealtimeSTT.ts
- Position your coding problem on screen
- Press
Ctrl/Cmd + Hto capture - The screenshot will appear in the queue
- Ensure you have at least one screenshot captured
- Select your preferred programming language
- Press
Ctrl/Cmd + Enterto process - View the generated solution with complexity analysis
- Click the microphone icon (when available)
- Start speaking your query or problem description
- The application will transcribe in real-time
- Use voice commands for hands-free operation
Access advanced debugging and analysis features:
- Multiple solution approaches
- Detailed step-by-step breakdowns
- Error analysis and suggestions
- Performance optimization tips
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use TypeScript for all new code
- Follow the existing code formatting
- Add tests for new features
- Update documentation as needed
- Screenshot capture and processing
- Multi-language code generation
- Real-time speech-to-text
- Floating window interface
- Auto-updates
- IDE integration plugins
- Team collaboration features
- Custom AI model integration
- Advanced debugging tools
- Mobile companion app
Application won't start
- Ensure Node.js v16+ is installed
- Clear
node_modulesand reinstall dependencies - Check for port conflicts (default: 3000)
Screenshots not working
- Verify screen capture permissions
- Check if other screenshot tools are interfering
- Restart the application
Speech-to-text not responding
- Ensure microphone permissions are granted
- Check WebSocket server connection
- Verify audio input device is working
- π Check the Wiki for detailed guides
- π Report bugs in Issues
- π¬ Join our Discussions for questions
This project is licensed under the ISC License - see the LICENSE file for details.
- Built with Electron
- UI components from Radix UI
- Speech processing powered by Web Audio API
- Icons from Lucide React
Made with β€οΈ for developers, by developers
Star β this repository if you find it helpful!