A modern, interactive online programming learning platform built with React, TypeScript, and Next.js. BuildIT provides a LeetCode-style interface with resizable panes, Monaco Editor integration, and comprehensive accessibility features.
- Monaco Editor Integration: Full-featured code editor with IntelliSense, syntax highlighting, and bracket pair colorization
- Multi-language Support: Python, Java, C++, JavaScript, Go, and many more to come...
- Resizable Panes: Drag-to-resize interface with localStorage persistence
- Live Preview: Real-time HTML/CSS/JS preview in sandboxed iframe
- Test Case Management: Interactive test case creation and execution
- Progress Tracking: Visual progress bar and step navigation
- Modern Design: Clean, minimalist interface inspired by modern IDEs
- Theme Support: Light, dark, and high-contrast themes
- Responsive Layout: Optimized for desktop use
- Customizable: Adjustable font sizes and editor preferences
- WCAG 2.1 AA Compliant: Full accessibility support
- Keyboard Navigation: Comprehensive keyboard shortcuts
- Screen Reader Support: Proper ARIA labels and live regions
- High Contrast Mode: Enhanced visibility for users with visual impairments
Ctrl+Enter: Run codeCtrl+: Focus console- Standard editor shortcuts (Ctrl+Z, Ctrl+Y, etc.)
- Node.js 18+
- npm or yarn
-
Clone the repository:
git clone <repository-url> cd buildit-coding-environment
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open http://localhost:3000 in your browser
- React Context: Centralized state management with
CodingContext - useReducer: Predictable state updates
- localStorage: Automatic persistence of user preferences
components/
├── CodingEnvironment.tsx # Main container
├── TopBar.tsx # Navigation and controls
├── BottomBar.tsx # Status information
├── ResizablePanes.tsx # Layout management
├── CodeEditor.tsx # Monaco editor wrapper
├── InstructionPane.tsx # Problem description
├── ConsolePane.tsx # Output and test cases
└── ToolsDropdown.tsx # Theme and settings
- React 18: Modern React with hooks and concurrent features
- TypeScript: Type-safe development
- Next.js 14: App Router and server components
- Tailwind CSS: Utility-first styling
- shadcn/ui: High-quality component library
- Monaco Editor: VS Code editor experience
- React Markdown: Markdown rendering with custom components
- Update the language selector in
CodeEditor.tsx - Add language-specific execution logic in
lib/codeRunner.ts - Configure Monaco language workers if needed
- Define new themes in
CodeEditor.tsxMonaco configuration - Add theme options to
ToolsDropdown.tsx - Update the context reducer to handle new theme states
- Extend the
Probleminterface incontexts/CodingContext.tsx - Update
InstructionPane.tsxto render new problem formats - Modify
lib/mockData.tsto include new problem examples
- Multiplayer Support: Real-time collaborative editing with cursor synchronization
- Plugin System: Extensible architecture for custom language support
- Cloud Sync: Cross-device synchronization of code and progress
- Advanced Debugging: Breakpoints and step-through debugging
- Code Analysis: Static analysis and suggestions
- Custom Themes: User-created theme support
The codebase includes several extension points:
- Language Runners:
lib/codeRunner.tscan be extended for new execution environments - Theme System: Monaco themes can be dynamically loaded
- Problem Formats: Markdown renderer supports custom components
- State Persistence: Context system supports additional state properties
Replace mock implementations with real APIs:
runCode(): Connect to code execution servicegetHint(): Integrate with hint generation API- Problem loading: Fetch from problem database
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes following the existing code style
- Add tests for new functionality
- Submit a pull request
This project follows WCAG 2.1 AA guidelines:
- All interactive elements are keyboard accessible
- Proper semantic HTML structure
- ARIA labels and descriptions
- Color contrast ratios meet AA standards
- Screen reader compatibility
- Focus management and visual indicators
MIT License - see LICENSE file for details
For issues and questions:
- Check the GitHub issues page
- Review the documentation
- Create a new issue with detailed reproduction steps
Built with ❤️ using modern web technologies for an exceptional coding experience.