A modern, LeetCode-style SQL learning playground with 30+ interactive lessons
Learn SQL through hands-on practice with real-time query execution and instant feedback.
- 🎓 30+ Structured Lessons - From beginner to advanced
- 💻 Monaco Editor - Professional code editor with SQL syntax highlighting
- 🎯 Task-Focused UI - LeetCode-style problem-solving layout
- ⚡ Instant Feedback - Run queries and see results immediately
- 📊 Real Database - SQLite in-memory for authentic SQL experience
- 🌙 Dark Theme - Optimized for long coding sessions
- ✅ Progress Tracking - Your completed lessons are saved
# Clone the repository
git clone https://github.com/RaghavOG/sql-labs.git
cd sql-labs
# Install dependencies
npm install
# Run development server
npm run devOpen http://localhost:3000 and start learning!
- Querying Data - SELECT, DISTINCT, LIMIT
- Filtering Data - WHERE, AND/OR, BETWEEN, IN, LIKE
- Sorting Data - ORDER BY, ASC/DESC
- Aggregation - COUNT, AVG, GROUP BY, HAVING
- Joins - INNER JOIN, LEFT JOIN, multi-table joins
- Subqueries - Nested queries, IN, EXISTS
- Advanced - UNION, complex queries
Each lesson provides:
- Clear task description
- Sample database schema
- SQL editor with syntax highlighting
- Hint system (optional)
- Instant query results
Write your SQL, press Ctrl+Enter (or click Run), and see the results!
- Framework: Next.js 16 (App Router)
- Language: TypeScript 5
- Editor: Monaco Editor
- Styling: Tailwind CSS 4
- Database: SQLite via better-sqlite3
- Deployment: Vercel
Or manually:
npm run build
npm run startContributions are welcome! See CONTRIBUTING.md for guidelines.
Ways to contribute:
- Add new lessons
- Improve UI/UX
- Fix bugs
- Improve documentation
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by Raghav
- GitHub: @RaghavOG
- LinkedIn: Raghav Singla
- Inspired by LeetCode's problem-solving interface
- Built with modern web technologies
- Community feedback and contributions
Start learning SQL today! 🚀