QueryForge is a web-based SQL editor for running and displaying query results. Built with Vue 3, it features a CodeMirror-powered editor, table explorer, query history, and output display. It uses mock JSON data (customer.json, employees.json, etc.) and supports basic SELECT queries, designed for data analysts to manage SQL tasks efficiently.
- Framework: Vue 3 - For its reactivity and lightweight nature.
- Build Tool: Vite - For fast builds and HMR.
- Editor: CodeMirror 6 - With SQL syntax highlighting (
@codemirror/lang-sql) and theming (@uiw/codemirror-theme-okaidia). - UI: Material-UI - For icons (
@mui/icons-material) and styling (@mui/material). - Utilities:
- Lodash - For throttling (
throttle) to optimizelocalStoragewrites. - Vue3-Virtual-Scroll-List - For potential virtual scrolling of large datasets.
- Lodash - For throttling (
Measured using Lighthouse on the deployed app:
- Performance Score: 99/100
- Initial Load Time: ~1.5s on a 4G connection (via Lighthouse’s network throttling).
- CLS: 99/100 - Minimal layout shifts.
- Vite Bundling: Code-splitting and ES modules for faster loads.
- Lazy Loading: Dynamic imports for JSON data to reduce initial payload.
- Throttling: Lodash
throttleforlocalStorageupdates. - Efficient Rendering: Vue reactivity and lightweight output table rendering.
- Supports rendering 10,000+ rows using
vue3-virtual-scroll-list(partially implemented). - Data caching in memory to avoid re-processing.
- Accessibility: Scored 78/100; future improvements include ARIA labels and keyboard navigation.
- Challenges:
- Limited SQL parsing: Built a basic parser; plan to integrate
alasql. - Large data rendering: Added virtual scrolling groundwork.
- Limited SQL parsing: Built a basic parser; plan to integrate

